diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8fbe86829..0aec13a95 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -81,6 +81,16 @@
+
+
+
+
+
+
+
+
+
+
{
+ Intent.ACTION_SEND, Intent.ACTION_SENDTO -> {
lifecycleScope.launch {
handleSendImage(intent)
}
@@ -238,11 +238,9 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
}
}
sharedViewModel.filesToShare.value = list
-
- val deepLink = "linphone-android://chat/"
- Log.i("[Main Activity] Starting deep link: $deepLink")
- findNavController(R.id.nav_host_fragment).navigate(Uri.parse(deepLink))
}
+
+ handleSendChatRoom(intent)
}
private suspend fun handleSendMultipleImages(intent: Intent) {
@@ -261,7 +259,40 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
}
}
sharedViewModel.filesToShare.value = list
+ }
+ handleSendChatRoom(intent)
+ }
+
+ private suspend fun handleSendChatRoom(intent: Intent) {
+ val uri = intent.data
+ if (uri != null) {
+ Log.i("[Main Activity] Found uri: $uri to send a message to")
+ val stringUri = uri.toString()
+ var addressToIM: String = stringUri
+ try {
+ addressToIM = URLDecoder.decode(stringUri, "UTF-8")
+ } catch (e: UnsupportedEncodingException) {
+ }
+
+ when {
+ addressToIM.startsWith("sms:") ->
+ addressToIM = addressToIM.substring("sms:".length)
+ addressToIM.startsWith("smsto:") ->
+ addressToIM = addressToIM.substring("smsto:".length)
+ addressToIM.startsWith("mms:") ->
+ addressToIM = addressToIM.substring("mms:".length)
+ addressToIM.startsWith("mmsto:") ->
+ addressToIM = addressToIM.substring("mmsto:".length)
+ }
+
+ val peerAddress = coreContext.core.interpretUrl(addressToIM)?.asStringUriOnly()
+ val localAddress =
+ coreContext.core.defaultProxyConfig?.identityAddress?.asStringUriOnly()
+ val deepLink = "linphone-android://chat-room/$localAddress/$peerAddress"
+ Log.i("[Main Activity] Starting deep link: $deepLink")
+ findNavController(R.id.nav_host_fragment).navigate(Uri.parse(deepLink))
+ } else {
val deepLink = "linphone-android://chat/"
Log.i("[Main Activity] Starting deep link: $deepLink")
findNavController(R.id.nav_host_fragment).navigate(Uri.parse(deepLink))