diff --git a/changelog.d/1111.bugfix b/changelog.d/1111.bugfix new file mode 100644 index 0000000000..4d1baf87bf --- /dev/null +++ b/changelog.d/1111.bugfix @@ -0,0 +1 @@ +Make links in messages clickable again. diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemTextView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemTextView.kt index bc06afcd61..7b04d60ade 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemTextView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemTextView.kt @@ -66,7 +66,6 @@ fun TimelineItemTextView( } ClickableLinkText( text = textWithPadding, - linkAnnotationTag = "URL", onClick = onTextClicked, onLongClick = onTextLongClicked, interactionSource = interactionSource diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/html/HtmlDocument.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/html/HtmlDocument.kt index 8179f55877..9c2798a638 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/html/HtmlDocument.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/html/HtmlDocument.kt @@ -582,7 +582,6 @@ private fun HtmlText( val inlineContentMap = persistentMapOf() ClickableLinkText( annotatedString = text, - linkAnnotationTag = "URL", style = style, modifier = modifier, inlineContent = inlineContentMap, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt index bd5f393cd2..39838a218a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt @@ -48,13 +48,15 @@ import io.element.android.libraries.theme.LinkColor import kotlinx.collections.immutable.ImmutableMap import kotlinx.collections.immutable.persistentMapOf +const val LINK_TAG = "URL" + @Composable fun ClickableLinkText( text: String, interactionSource: MutableInteractionSource, modifier: Modifier = Modifier, linkify: Boolean = true, - linkAnnotationTag: String = "", + linkAnnotationTag: String = LINK_TAG, onClick: () -> Unit = {}, onLongClick: () -> Unit = {}, style: TextStyle = LocalTextStyle.current, @@ -80,13 +82,14 @@ fun ClickableLinkText( interactionSource: MutableInteractionSource, modifier: Modifier = Modifier, linkify: Boolean = true, - linkAnnotationTag: String = "", + linkAnnotationTag: String = LINK_TAG, onClick: () -> Unit = {}, onLongClick: () -> Unit = {}, style: TextStyle = LocalTextStyle.current, inlineContent: ImmutableMap = persistentMapOf(), ) { - val processedText = remember(annotatedString) { + @Suppress("NAME_SHADOWING") + val annotatedString = remember(annotatedString) { if (linkify) { annotatedString.linkify(SpanStyle(color = LinkColor)) } else { @@ -126,7 +129,7 @@ fun ClickableLinkText( } } Text( - text = processedText, + text = annotatedString, modifier = modifier.then(pressIndicator), style = style, onTextLayout = { @@ -158,7 +161,7 @@ fun AnnotatedString.linkify(linkStyle: SpanStyle): AnnotatedString { style = linkStyle, ) addStringAnnotation( - tag = "URL", + tag = LINK_TAG, annotation = span.url, start = start, end = end