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