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 @@ + + + + + + + + +