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 975c6c474..e5cde22c9 100644
--- a/app/src/main/java/org/linphone/ui/main/MainActivity.kt
+++ b/app/src/main/java/org/linphone/ui/main/MainActivity.kt
@@ -52,7 +52,7 @@ import org.linphone.core.tools.Log
import org.linphone.databinding.MainActivityBinding
import org.linphone.ui.GenericActivity
import org.linphone.ui.assistant.AssistantActivity
-import org.linphone.ui.main.help.fragment.DebugFragmentDirections
+import org.linphone.ui.main.chat.fragment.ConversationsListFragmentDirections
import org.linphone.ui.main.viewmodel.MainViewModel
import org.linphone.ui.main.viewmodel.SharedMainViewModel
import org.linphone.ui.welcome.WelcomeActivity
@@ -347,7 +347,20 @@ class MainActivity : GenericActivity() {
try {
Log.i("$TAG Trying to go to Conversations fragment")
val args = intent.extras
- findNavController().navigate(R.id.conversationsListFragment, args)
+ val localSipUri = args?.getString("LocalSipUri", "")
+ val remoteSipUri = args?.getString("RemoteSipUri", "")
+ if (remoteSipUri.isNullOrEmpty() || localSipUri.isNullOrEmpty()) {
+ Log.w("$TAG Found [Chat] extra but no local and/or remote SIP URI!")
+ } else {
+ Log.i(
+ "$TAG Found [Chat] extra with local [$localSipUri] and peer [$remoteSipUri] addresses"
+ )
+ val pair = Pair(localSipUri, remoteSipUri)
+ sharedViewModel.showConversationEvent.value = Event(pair)
+ }
+
+ val action = ConversationsListFragmentDirections.actionGlobalConversationsListFragment()
+ findNavController().navigate(action)
} catch (ise: IllegalStateException) {
Log.e("$TAG Can't navigate to Conversations fragment: $ise")
}
@@ -362,10 +375,15 @@ class MainActivity : GenericActivity() {
try {
val navOptionsBuilder = NavOptions.Builder()
navOptionsBuilder.setPopUpTo(R.id.contactsListFragment, true)
+ navOptionsBuilder.setLaunchSingleTop(true)
val navOptions = navOptionsBuilder.build()
when (defaultFragmentId) {
HISTORY_FRAGMENT_ID -> {
- findNavController().navigate(R.id.historyListFragment, args, navOptions)
+ findNavController().navigate(
+ R.id.historyListFragment,
+ args,
+ navOptions
+ )
}
CHAT_FRAGMENT_ID -> {
findNavController().navigate(
@@ -458,9 +476,6 @@ class MainActivity : GenericActivity() {
)
sharedViewModel.showConversationEvent.value = Event(pair)
}
-
- val action = DebugFragmentDirections.actionDebugFragmentToConversationsListFragment()
- findNavController().navigate(action)
} else {
val pair = parseShortcutIfAny(intent)
if (pair != null) {
@@ -469,11 +484,12 @@ class MainActivity : GenericActivity() {
Log.i(
"$TAG Navigating to conversation with local [$localSipUri] and peer [$remoteSipUri] addresses, computed from shortcut ID"
)
- intent.putExtra("LocalSipUri", localSipUri)
- intent.putExtra("RemoteSipUri", remoteSipUri)
+ sharedViewModel.showConversationEvent.value = Event(pair)
}
- findNavController().navigate(R.id.conversationsListFragment)
}
+
+ val action = ConversationsListFragmentDirections.actionGlobalConversationsListFragment()
+ findNavController().navigate(action)
}
}
diff --git a/app/src/main/res/layout/call_active_conference_fragment.xml b/app/src/main/res/layout/call_active_conference_fragment.xml
index 4a3f190ca..70cd20abb 100644
--- a/app/src/main/res/layout/call_active_conference_fragment.xml
+++ b/app/src/main/res/layout/call_active_conference_fragment.xml
@@ -46,59 +46,6 @@
android:layout_height="match_parent"
android:background="@color/gray_900">
-
-
-
-
-
-
+
+
+
+
+
+