From e37e43bf7904db6e8d8d194cef4f88bd89aa2598 Mon Sep 17 00:00:00 2001 From: Colin S <3526918+cbs228@users.noreply.github.com> Date: Sat, 25 Jan 2025 21:07:22 -0600 Subject: [PATCH] messages: open web links in full web browser In [1], all hyperlinks within `MessagesNode` switched to using activity.openUrlInChromeCustomTab() instead of with `openUrlInExternalApp()`. This causes web links in chat messages to open in an "in-app" Chrome Custom Tab [2] instead of the user's configured "full" web browser. This is a UX nuisance. Open web links in a full browser instead. Closes #3885 [3]. [1]: 57e45aa834f1810483827bd7700952cceb3c56c9 (Identity change: handle click on "learn more") [2]: https://developer.chrome.com/docs/android/custom-tabs/guide-get-started#opening_a_custom_tab [3]: https://github.com/element-hq/element-x-android/issues/3885 --- .../element/android/features/messages/impl/MessagesNode.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt index 2ab3bbbc86..2f439e6a87 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt @@ -40,6 +40,7 @@ import io.element.android.features.messages.impl.timeline.di.LocalTimelineItemPr import io.element.android.features.messages.impl.timeline.di.TimelineItemPresenterFactories import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.libraries.androidutils.browser.openUrlInChromeCustomTab +import io.element.android.libraries.androidutils.system.openUrlInExternalApp import io.element.android.libraries.androidutils.system.toast import io.element.android.libraries.architecture.NodeInputs import io.element.android.libraries.architecture.inputs @@ -148,7 +149,9 @@ class MessagesNode @AssistedInject constructor( is PermalinkData.RoomLink -> { handleRoomLinkClick(activity, permalink, eventSink) } - is PermalinkData.FallbackLink, + is PermalinkData.FallbackLink -> { + activity.openUrlInExternalApp(url) + } is PermalinkData.RoomEmailInviteLink -> { activity.openUrlInChromeCustomTab(null, darkTheme, url) }