From e69fd44108a7094eaf959e420ce9f37e6db9dff1 Mon Sep 17 00:00:00 2001 From: Infi Date: Thu, 7 Mar 2024 21:30:36 +0100 Subject: [PATCH] fix: issue in which exotic links can cause a crash Signed-off-by: Infi --- .../chat/revolt/components/markdown/MarkdownText.kt | 13 ++++++++++++- app/src/main/res/values/strings.xml | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/chat/revolt/components/markdown/MarkdownText.kt b/app/src/main/java/chat/revolt/components/markdown/MarkdownText.kt index 3211ebe8..d71b7596 100644 --- a/app/src/main/java/chat/revolt/components/markdown/MarkdownText.kt +++ b/app/src/main/java/chat/revolt/components/markdown/MarkdownText.kt @@ -1,5 +1,6 @@ package chat.revolt.components.markdown +import android.widget.Toast import androidx.browser.customtabs.CustomTabColorSchemeParams import androidx.browser.customtabs.CustomTabsIntent import androidx.compose.foundation.layout.height @@ -33,6 +34,7 @@ import androidx.compose.ui.text.font.FontSynthesis import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.core.net.toUri +import chat.revolt.R import chat.revolt.api.REVOLT_FILES import chat.revolt.api.RevoltAPI import chat.revolt.api.routes.custom.fetchEmoji @@ -292,7 +294,16 @@ fun MarkdownText(textNode: AstNode, modifier: Modifier = Modifier) { .build() ) .build() - customTab.launchUrl(context, url.toUri()) + + try { + customTab.launchUrl(context, url.toUri()) + } catch (e: Exception) { + Toast.makeText( + context, + context.getString(R.string.link_type_no_intent), + Toast.LENGTH_SHORT + ).show() + } return@handler true } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3285f940..9d397dc9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -410,6 +410,8 @@ Block Don\'t block + No app found to handle this link + You\'ve been invited to join this server. Would you like to join? Join Cancel