diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0b4cca7b4..cb7cda66e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,8 +22,11 @@ This version is a full rewrite of the app in kotlin, using modern Android compon
- Improved preview when sharing video files through the chat
- Android 11 people & conversation compliant
- New animations between fragments and for unread chat messages / missed calls counters (can be disabled)
+- Bubble & conversation support for chat message notifications
+- Direct share support for chat room shortcuts
- Option to mark messages as read when dismissing the notification
- More settings are available
+- Call view can be displayed in full-screen
### Changed
@@ -32,6 +35,7 @@ This version is a full rewrite of the app in kotlin, using modern Android compon
- Improved how Android native contacts are used
- Switched to material design for text input fields & switches
- Launcher shortcuts can be to either contacts or chat rooms
+- UI changes
### Removed
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0cfbf1359..72797fc85 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,6 +45,9 @@
+
{
if (corePreferences.disableChat) return
val locus = Compatibility.extractLocusIdFromIntent(intent)
- if (locus != null) handleLocus(locus)
+ if (locus != null) {
+ Log.i("[Main Activity] Found chat room locus intent extra: $locus")
+ handleLocusOrShortcut(locus)
+ }
}
else -> {
when {
@@ -365,14 +368,19 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
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))
+ val shortcutId = intent.getStringExtra("android.intent.extra.shortcut.ID") // Intent.EXTRA_SHORTCUT_ID
+ if (shortcutId != null) {
+ Log.i("[Main Activity] Found shortcut ID: $shortcutId")
+ handleLocusOrShortcut(shortcutId)
+ } else {
+ val deepLink = "linphone-android://chat/"
+ Log.i("[Main Activity] Starting deep link: $deepLink")
+ 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")
+ private fun handleLocusOrShortcut(id: String) {
val split = id.split("~")
if (split.size == 2) {
val localAddress = split[0]
@@ -380,7 +388,7 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
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")
+ Log.e("[Main Activity] Failed to parse shortcut/locus id: $id")
}
}
}
diff --git a/app/src/main/res/layout/settings_chat_fragment.xml b/app/src/main/res/layout/settings_chat_fragment.xml
index ed59d1d7a..b3a6aefd8 100644
--- a/app/src/main/res/layout/settings_chat_fragment.xml
+++ b/app/src/main/res/layout/settings_chat_fragment.xml
@@ -107,6 +107,7 @@
+
+
+
+
+
+
+
+
+