From 536bfd0020ab04321c853cd5940d1fe897f9ad19 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 24 Feb 2023 11:26:31 +0100 Subject: [PATCH] Fixed navigating to contact without a native ID --- .../java/org/linphone/activities/Navigation.kt | 14 ++++++++++++-- .../main/chat/fragments/DetailChatRoomFragment.kt | 8 ++++---- .../contact/fragments/MasterContactsFragment.kt | 14 +++++++++----- .../history/fragments/DetailCallLogFragment.kt | 13 ++++++------- .../main/res/layout/history_detail_fragment.xml | 2 +- 5 files changed, 32 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/Navigation.kt b/app/src/main/java/org/linphone/activities/Navigation.kt index d192cae85..f5515890a 100644 --- a/app/src/main/java/org/linphone/activities/Navigation.kt +++ b/app/src/main/java/org/linphone/activities/Navigation.kt @@ -314,11 +314,16 @@ internal fun DetailChatRoomFragment.navigateToContacts(sipUriToAdd: String) { findMasterNavController().navigate(Uri.parse(deepLink)) } -internal fun DetailChatRoomFragment.navigateToContact(id: String) { +internal fun DetailChatRoomFragment.navigateToNativeContact(id: String) { val deepLink = "linphone-android://contact/view/$id" findMasterNavController().navigate(Uri.parse(deepLink)) } +internal fun DetailChatRoomFragment.navigateToFriend(address: String) { + val deepLink = "linphone-android://contact/view-friend/$address" + findMasterNavController().navigate(Uri.parse(deepLink)) +} + internal fun DetailChatRoomFragment.navigateToImdn(args: Bundle?) { if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) { findNavController().navigate( @@ -626,11 +631,16 @@ internal fun DetailCallLogFragment.navigateToContacts(sipUriToAdd: String) { findMasterNavController().navigate(Uri.parse(deepLink)) } -internal fun DetailCallLogFragment.navigateToContact(id: String) { +internal fun DetailCallLogFragment.navigateToNativeContact(id: String) { val deepLink = "linphone-android://contact/view/$id" findMasterNavController().navigate(Uri.parse(deepLink)) } +internal fun DetailCallLogFragment.navigateToFriend(address: String) { + val deepLink = "linphone-android://contact/view-friend/$address" + findMasterNavController().navigate(Uri.parse(deepLink)) +} + internal fun DetailCallLogFragment.navigateToChatRoom(args: Bundle?) { if (findNavController().currentDestination?.id == R.id.detailCallLogFragment) { findMasterNavController().navigate( diff --git a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt index ae83d7405..541ce6475 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt @@ -1061,15 +1061,15 @@ class DetailChatRoomFragment : MasterFragment() { val copy = viewModel.callLog.remoteAddress.clone() copy.clean() val address = copy.asStringUriOnly() - Log.i("[History] Creating contact with SIP URI: $address") + Log.i("[History] Creating contact with SIP URI [$address]") sharedViewModel.updateContactsAnimationsBasedOnDestination.value = Event(R.id.masterCallLogsFragment) navigateToContacts(address) } @@ -71,14 +70,14 @@ class DetailCallLogFragment : GenericFragment() { sharedViewModel.updateContactsAnimationsBasedOnDestination.value = Event(R.id.masterCallLogsFragment) val contactId = viewModel.contact.value?.refKey if (contactId != null) { - Log.i("[History] Displaying contact $contactId") - navigateToContact(contactId) + Log.i("[History] Displaying native contact [$contactId]") + navigateToNativeContact(contactId) } else { val copy = viewModel.callLog.remoteAddress.clone() copy.clean() val address = copy.asStringUriOnly() - Log.i("[History] Displaying friend with address $address") - navigateToContact(address) + Log.i("[History] Displaying friend with address [$address]") + navigateToFriend(address) } } @@ -91,7 +90,7 @@ class DetailCallLogFragment : GenericFragment() { address.clean() if (coreContext.core.callsNb > 0) { - Log.i("[History] Starting dialer with pre-filled URI ${address.asStringUriOnly()}, is transfer? ${sharedViewModel.pendingCallTransfer}") + Log.i("[History] Starting dialer with pre-filled URI [${address.asStringUriOnly()}], is transfer? ${sharedViewModel.pendingCallTransfer}") sharedViewModel.updateDialerAnimationsBasedOnDestination.value = Event(R.id.masterCallLogsFragment) diff --git a/app/src/main/res/layout/history_detail_fragment.xml b/app/src/main/res/layout/history_detail_fragment.xml index 83de8b297..c5295d5ea 100644 --- a/app/src/main/res/layout/history_detail_fragment.xml +++ b/app/src/main/res/layout/history_detail_fragment.xml @@ -59,7 +59,7 @@