From 9e4c71a3f0c5ee0a96f6b231ea70d6dc725d12f5 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Sun, 20 Aug 2023 18:31:56 +0200 Subject: [PATCH] Removed parenthesis after phone number if no label + added missing fragments (empty) --- .../java/org/linphone/ui/main/MainActivity.kt | 30 ++++++++++++- .../ui/main/recordings/RecordingsFragment.kt | 25 +++++++++++ .../fragment/AcocuntProfileFragment.kt | 26 +++++++++++ .../ui/main/settings/fragment/HelpFragment.kt | 26 +++++++++++ .../settings/fragment/SettingsFragment.kt | 26 +++++++++++ .../res/layout/account_profile_fragment.xml | 17 +++++++ .../contact_number_address_list_cell.xml | 2 +- .../dialog_number_address_list_cell.xml | 2 +- app/src/main/res/layout/drawer_menu.xml | 16 ++++++- app/src/main/res/layout/help_fragment.xml | 17 +++++++ app/src/main/res/layout/main_activity.xml | 13 ++++++ .../main/res/layout/recordings_fragment.xml | 17 +++++++ app/src/main/res/layout/settings_fragment.xml | 17 +++++++ .../main/res/navigation/main_nav_graph.xml | 44 +++++++++++++++++++ 14 files changed, 274 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/org/linphone/ui/main/recordings/RecordingsFragment.kt create mode 100644 app/src/main/java/org/linphone/ui/main/settings/fragment/AcocuntProfileFragment.kt create mode 100644 app/src/main/java/org/linphone/ui/main/settings/fragment/HelpFragment.kt create mode 100644 app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsFragment.kt create mode 100644 app/src/main/res/layout/account_profile_fragment.xml create mode 100644 app/src/main/res/layout/help_fragment.xml create mode 100644 app/src/main/res/layout/recordings_fragment.xml create mode 100644 app/src/main/res/layout/settings_fragment.xml diff --git a/app/src/main/java/org/linphone/ui/main/MainActivity.kt b/app/src/main/java/org/linphone/ui/main/MainActivity.kt index 40a5a01dd..95fafda02 100644 --- a/app/src/main/java/org/linphone/ui/main/MainActivity.kt +++ b/app/src/main/java/org/linphone/ui/main/MainActivity.kt @@ -20,6 +20,7 @@ package org.linphone.ui.main import android.Manifest +import android.annotation.SuppressLint import android.content.Intent import android.content.pm.PackageManager import android.os.Bundle @@ -36,12 +37,14 @@ import androidx.core.view.WindowCompat import androidx.databinding.DataBindingUtil import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope +import androidx.navigation.findNavController import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.R import org.linphone.core.Account import org.linphone.databinding.AccountPopupMenuBinding import org.linphone.databinding.MainActivityBinding import org.linphone.ui.assistant.AssistantActivity +import org.linphone.ui.main.settings.fragment.AcocuntProfileFragmentDirections import org.linphone.ui.main.viewmodel.DrawerMenuViewModel import org.linphone.utils.slideInToastFromTopForDuration @@ -73,6 +76,24 @@ class MainActivity : AppCompatActivity() { binding = DataBindingUtil.setContentView(this, R.layout.main_activity) binding.lifecycleOwner = this + binding.setSettingsClickedListener { + val navController = findNavController(R.id.main_nav_host_fragment) + navController.navigate(R.id.action_global_settingsFragment) + binding.drawerMenu.close() + } + + binding.setRecordingsClickListener { + val navController = findNavController(R.id.main_nav_host_fragment) + navController.navigate(R.id.action_global_recordingsFragment) + binding.drawerMenu.close() + } + + binding.setHelpClickedListener { + val navController = findNavController(R.id.main_nav_host_fragment) + navController.navigate(R.id.action_global_helpFragment) + binding.drawerMenu.close() + } + drawerMenuViewModel = run { ViewModelProvider(this)[DrawerMenuViewModel::class.java] } @@ -133,6 +154,7 @@ class MainActivity : AppCompatActivity() { super.onRequestPermissionsResult(requestCode, permissions, grantResults) } + @SuppressLint("RtlHardcoded") fun toggleDrawerMenu() { if (binding.drawerMenu.isDrawerOpen(Gravity.LEFT)) { binding.drawerMenu.closeDrawer(binding.drawerMenuContent, true) @@ -189,8 +211,14 @@ class MainActivity : AppCompatActivity() { ) popupView.setManageProfileClickListener { - // TODO: navigate to profile + val navController = findNavController(R.id.main_nav_host_fragment) + val identity = account.params.identityAddress?.asString().orEmpty() + val action = AcocuntProfileFragmentDirections.actionGlobalAcocuntProfileFragment( + identity + ) + navController.navigate(action) popupWindow.dismiss() + binding.drawerMenu.close() } // Elevation is for showing a shadow around the popup diff --git a/app/src/main/java/org/linphone/ui/main/recordings/RecordingsFragment.kt b/app/src/main/java/org/linphone/ui/main/recordings/RecordingsFragment.kt new file mode 100644 index 000000000..614f97cc2 --- /dev/null +++ b/app/src/main/java/org/linphone/ui/main/recordings/RecordingsFragment.kt @@ -0,0 +1,25 @@ +package org.linphone.ui.main.recordings + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import org.linphone.databinding.RecordingsFragmentBinding +import org.linphone.ui.main.fragment.GenericFragment + +class RecordingsFragment : GenericFragment() { + private lateinit var binding: RecordingsFragmentBinding + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = RecordingsFragmentBinding.inflate(layoutInflater) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + binding.lifecycleOwner = viewLifecycleOwner + } +} diff --git a/app/src/main/java/org/linphone/ui/main/settings/fragment/AcocuntProfileFragment.kt b/app/src/main/java/org/linphone/ui/main/settings/fragment/AcocuntProfileFragment.kt new file mode 100644 index 000000000..c8d04fc25 --- /dev/null +++ b/app/src/main/java/org/linphone/ui/main/settings/fragment/AcocuntProfileFragment.kt @@ -0,0 +1,26 @@ +package org.linphone.ui.main.settings.fragment + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import org.linphone.databinding.AccountProfileFragmentBinding +import org.linphone.ui.main.fragment.GenericFragment + +class AcocuntProfileFragment : GenericFragment() { + private lateinit var binding: AccountProfileFragmentBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = AccountProfileFragmentBinding.inflate(layoutInflater) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + binding.lifecycleOwner = viewLifecycleOwner + } +} diff --git a/app/src/main/java/org/linphone/ui/main/settings/fragment/HelpFragment.kt b/app/src/main/java/org/linphone/ui/main/settings/fragment/HelpFragment.kt new file mode 100644 index 000000000..36c97107d --- /dev/null +++ b/app/src/main/java/org/linphone/ui/main/settings/fragment/HelpFragment.kt @@ -0,0 +1,26 @@ +package org.linphone.ui.main.settings.fragment + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import org.linphone.databinding.HelpFragmentBinding +import org.linphone.ui.main.fragment.GenericFragment + +class HelpFragment : GenericFragment() { + private lateinit var binding: HelpFragmentBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = HelpFragmentBinding.inflate(layoutInflater) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + binding.lifecycleOwner = viewLifecycleOwner + } +} diff --git a/app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsFragment.kt b/app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsFragment.kt new file mode 100644 index 000000000..b647dc2bd --- /dev/null +++ b/app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsFragment.kt @@ -0,0 +1,26 @@ +package org.linphone.ui.main.settings.fragment + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import org.linphone.databinding.SettingsFragmentBinding +import org.linphone.ui.main.fragment.GenericFragment + +class SettingsFragment : GenericFragment() { + private lateinit var binding: SettingsFragmentBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = SettingsFragmentBinding.inflate(layoutInflater) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + binding.lifecycleOwner = viewLifecycleOwner + } +} diff --git a/app/src/main/res/layout/account_profile_fragment.xml b/app/src/main/res/layout/account_profile_fragment.xml new file mode 100644 index 000000000..f1e8f3c96 --- /dev/null +++ b/app/src/main/res/layout/account_profile_fragment.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/contact_number_address_list_cell.xml b/app/src/main/res/layout/contact_number_address_list_cell.xml index ccd169aaa..f1e2ceb54 100644 --- a/app/src/main/res/layout/contact_number_address_list_cell.xml +++ b/app/src/main/res/layout/contact_number_address_list_cell.xml @@ -26,7 +26,7 @@ android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginStart="10dp" - android:text="@{model.sip ? `SIP address` : `Phone (` + model.label + `)`, default=`Phone (Home)`}" + android:text="@{model.sip ? `SIP address` : model.label.length() > 0 ? `Phone (` + model.label + `)` : `Phone`, default=`Phone (Home)`}" android:textSize="14sp" android:maxLines="1" android:ellipsize="end" diff --git a/app/src/main/res/layout/dialog_number_address_list_cell.xml b/app/src/main/res/layout/dialog_number_address_list_cell.xml index 73511af17..15de1bcb2 100644 --- a/app/src/main/res/layout/dialog_number_address_list_cell.xml +++ b/app/src/main/res/layout/dialog_number_address_list_cell.xml @@ -25,7 +25,7 @@ android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginStart="10dp" - android:text="@{model.sip ? `SIP address` : `Phone (` + model.label + `)`, default=`Phone (Home)`}" + android:text="@{model.sip ? `SIP address` : model.label.length() > 0 ? `Phone (` + model.label + `)` : `Phone`, default=`Phone (Home)`}" android:textSize="14sp" android:maxLines="1" android:ellipsize="end" diff --git a/app/src/main/res/layout/drawer_menu.xml b/app/src/main/res/layout/drawer_menu.xml index f828d6b66..7e02eee54 100644 --- a/app/src/main/res/layout/drawer_menu.xml +++ b/app/src/main/res/layout/drawer_menu.xml @@ -5,6 +5,15 @@ + + + @@ -12,7 +21,9 @@ + android:layout_height="match_parent" + android:clickable="true" + android:focusable="true"> + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/main_activity.xml b/app/src/main/res/layout/main_activity.xml index de059cdcb..ba88f6fe7 100644 --- a/app/src/main/res/layout/main_activity.xml +++ b/app/src/main/res/layout/main_activity.xml @@ -4,6 +4,16 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> + + + + @@ -57,6 +67,9 @@ android:layout_gravity="start"> diff --git a/app/src/main/res/layout/recordings_fragment.xml b/app/src/main/res/layout/recordings_fragment.xml new file mode 100644 index 000000000..f1e8f3c96 --- /dev/null +++ b/app/src/main/res/layout/recordings_fragment.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/settings_fragment.xml b/app/src/main/res/layout/settings_fragment.xml new file mode 100644 index 000000000..f1e8f3c96 --- /dev/null +++ b/app/src/main/res/layout/settings_fragment.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/main_nav_graph.xml b/app/src/main/res/navigation/main_nav_graph.xml index a65c42c1f..542a3335b 100644 --- a/app/src/main/res/navigation/main_nav_graph.xml +++ b/app/src/main/res/navigation/main_nav_graph.xml @@ -90,4 +90,48 @@ app:destination="@id/conversationsFragment" /> + + + + + + + + + + + + + + + + + + \ No newline at end of file