diff --git a/app/build.gradle b/app/build.gradle
index 6d2a2dd79..e12ebdbc8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -185,7 +185,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.media:media:1.2.0'
implementation 'androidx.fragment:fragment-ktx:1.2.5'
- implementation 'androidx.core:core-ktx:1.3.2'
+ implementation 'androidx.core:core-ktx:1.5.0-beta01'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.2'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.2'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
@@ -199,8 +199,8 @@ dependencies {
implementation 'androidx.emoji:emoji:1.1.0'
implementation 'androidx.emoji:emoji-bundled:1.1.0'
- implementation 'com.github.bumptech.glide:glide:4.11.0'
- kapt 'com.github.bumptech.glide:compiler:4.11.0'
+ implementation 'com.github.bumptech.glide:glide:4.12.0'
+ kapt 'com.github.bumptech.glide:compiler:4.12.0'
if (firebaseEnabled()) {
implementation 'com.google.firebase:firebase-messaging:19.0.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index aa31d6ff7..1cb580d2a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -52,6 +52,10 @@
android:windowSoftInputMode="adjustResize">
+
+
+
+
diff --git a/app/src/main/java/org/linphone/activities/main/MainActivity.kt b/app/src/main/java/org/linphone/activities/main/MainActivity.kt
index c83af23cd..3f3f44d19 100644
--- a/app/src/main/java/org/linphone/activities/main/MainActivity.kt
+++ b/app/src/main/java/org/linphone/activities/main/MainActivity.kt
@@ -211,6 +211,11 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
handleTelOrSipUri(uri)
}
}
+ Intent.ACTION_VIEW_LOCUS -> {
+ if (corePreferences.disableChat) return
+ val locus = Compatibility.extractLocusIdFromIntent(intent)
+ if (locus != null) handleLocus(locus)
+ }
else -> {
when {
intent.hasExtra("ContactId") -> {
@@ -365,4 +370,17 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
findNavController(R.id.nav_host_fragment).navigate(Uri.parse(deepLink))
}
}
+
+ private fun handleLocus(id: String) {
+ Log.i("[Main Activity] Found chat room locus intent extra: $id")
+ val split = id.split("~")
+ if (split.size == 2) {
+ val localAddress = split[0]
+ val peerAddress = split[1]
+ val deepLink = "linphone-android://chat-room/$localAddress/$peerAddress"
+ findNavController(R.id.nav_host_fragment).navigate(Uri.parse(deepLink))
+ } else {
+ Log.e("[Main Activity] Failed to parse locus id: $id")
+ }
+ }
}
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 1a2f7386e..dbd28774d 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
@@ -50,6 +50,7 @@ import org.linphone.activities.main.chat.viewmodels.*
import org.linphone.activities.main.fragments.MasterFragment
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
+import org.linphone.compatibility.Compatibility
import org.linphone.core.*
import org.linphone.core.tools.Log
import org.linphone.databinding.ChatRoomDetailFragmentBinding
@@ -118,6 +119,8 @@ class DetailChatRoomFragment : MasterFragment