From b5a0d65f3c37bfdf2d21fc2834ed65a2b24a96c9 Mon Sep 17 00:00:00 2001 From: jiftechnify Date: Tue, 26 Sep 2023 00:49:00 +0900 Subject: [PATCH] fix contact link in relay information dialog --- .../amethyst/ui/actions/RelayInformationDialog.kt | 10 +++++++++- .../amethyst/ui/components/ClickableEmail.kt | 5 +++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/RelayInformationDialog.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/RelayInformationDialog.kt index ad1f6fde1..63f5f8acf 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/RelayInformationDialog.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/RelayInformationDialog.kt @@ -111,7 +111,15 @@ fun RelayInformationDialog( Section(stringResource(R.string.contact)) Box(modifier = Modifier.padding(start = 10.dp)) { - ClickableEmail(relayInfo.contact ?: "") + relayInfo.contact?.let { + if (it.startsWith("https:")) { + ClickableUrl(urlText = it, url = it) + } else if (it.startsWith("mailto:") || it.contains('@')) { + ClickableEmail(it) + } else { + SectionContent(it) + } + } } Section(stringResource(R.string.supports)) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableEmail.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableEmail.kt index e3d02c040..4b7e7fc45 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableEmail.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableEmail.kt @@ -13,11 +13,12 @@ import androidx.compose.ui.text.AnnotatedString @Composable fun ClickableEmail(email: String) { + val stripped = email.replaceFirst("mailto:", "") val context = LocalContext.current ClickableText( - text = remember { AnnotatedString(email) }, - onClick = { runCatching { context.sendMail(email) } }, + text = remember { AnnotatedString(stripped) }, + onClick = { runCatching { context.sendMail(stripped) } }, style = LocalTextStyle.current.copy(color = MaterialTheme.colors.primary) ) }