diff --git a/app/src/main/java/org/linphone/activities/main/Navigation.kt b/app/src/main/java/org/linphone/activities/main/Navigation.kt
index 430f405af..4cc2c3587 100644
--- a/app/src/main/java/org/linphone/activities/main/Navigation.kt
+++ b/app/src/main/java/org/linphone/activities/main/Navigation.kt
@@ -34,6 +34,7 @@ import org.linphone.activities.main.contact.fragments.MasterContactsFragment
import org.linphone.activities.main.history.fragments.DetailCallLogFragment
import org.linphone.activities.main.history.fragments.MasterCallLogsFragment
import org.linphone.activities.main.settings.fragments.SettingsFragment
+import org.linphone.activities.main.sidemenu.fragments.SideMenuFragment
import org.linphone.contact.NativeContact
import org.linphone.core.Address
@@ -150,6 +151,18 @@ internal fun DetailCallLogFragment.navigateToFriend(friendAddress: Address) {
/* Settings related */
+internal fun SideMenuFragment.navigateToAccountSettings(identity: String) {
+ if (!resources.getBoolean(R.bool.isTablet)) {
+ // If not a tablet, navigate directly to account settings fragment
+ val deepLink = "linphone-android://account-settings/$identity"
+ findNavController().navigate(Uri.parse(deepLink))
+ } else {
+ // On tablet, to keep the categories list on left side, navigate to settings fragment first
+ val deepLink = "linphone-android://settings/$identity"
+ findNavController().navigate(Uri.parse(deepLink))
+ }
+}
+
internal fun SettingsFragment.navigateToAccountSettings(identity: String) {
val bundle = bundleOf("Identity" to identity)
if (!resources.getBoolean(R.bool.isTablet)) {
diff --git a/app/src/main/java/org/linphone/activities/main/settings/fragments/SettingsFragment.kt b/app/src/main/java/org/linphone/activities/main/settings/fragments/SettingsFragment.kt
index 173cfa178..8bb6441f6 100644
--- a/app/src/main/java/org/linphone/activities/main/settings/fragments/SettingsFragment.kt
+++ b/app/src/main/java/org/linphone/activities/main/settings/fragments/SettingsFragment.kt
@@ -70,9 +70,10 @@ class SettingsFragment : Fragment() {
viewModel.updateAccountsList()
})
- val identity = arguments?.getString("identity")
+ val identity = arguments?.getString("Identity")
if (identity != null) {
Log.i("[Settings] Found identity parameter in arguments: $identity")
+ arguments?.clear()
navigateToAccountSettings(identity)
}
diff --git a/app/src/main/java/org/linphone/activities/main/sidemenu/fragments/SideMenuFragment.kt b/app/src/main/java/org/linphone/activities/main/sidemenu/fragments/SideMenuFragment.kt
index bb0cdb5b9..6e2c729e6 100644
--- a/app/src/main/java/org/linphone/activities/main/sidemenu/fragments/SideMenuFragment.kt
+++ b/app/src/main/java/org/linphone/activities/main/sidemenu/fragments/SideMenuFragment.kt
@@ -20,7 +20,6 @@
package org.linphone.activities.main.sidemenu.fragments
import android.content.Intent
-import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -32,6 +31,7 @@ import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R
import org.linphone.activities.assistant.AssistantActivity
+import org.linphone.activities.main.navigateToAccountSettings
import org.linphone.activities.main.settings.SettingListenerStub
import org.linphone.activities.main.sidemenu.viewmodels.SideMenuViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
@@ -77,8 +77,7 @@ class SideMenuFragment : Fragment() {
Log.i("[Side Menu] Navigation to settings for proxy with identity: $identity")
sharedViewModel.toggleDrawerEvent.value = Event(true)
- val deepLink = "linphone-android://account-settings/$identity"
- findNavController().navigate(Uri.parse(deepLink))
+ navigateToAccountSettings(identity)
}
}
diff --git a/app/src/main/res/navigation/main_nav_graph.xml b/app/src/main/res/navigation/main_nav_graph.xml
index 8268827cb..ba6068643 100644
--- a/app/src/main/res/navigation/main_nav_graph.xml
+++ b/app/src/main/res/navigation/main_nav_graph.xml
@@ -275,7 +275,7 @@
app:popUpToInclusive="false" />
+