Make links in messages clickable again (#1115)
This commit is contained in:
committed by
GitHub
parent
3a476f5130
commit
e45b15165a
1
changelog.d/1111.bugfix
Normal file
1
changelog.d/1111.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
Make links in messages clickable again.
|
||||
@@ -66,7 +66,6 @@ fun TimelineItemTextView(
|
||||
}
|
||||
ClickableLinkText(
|
||||
text = textWithPadding,
|
||||
linkAnnotationTag = "URL",
|
||||
onClick = onTextClicked,
|
||||
onLongClick = onTextLongClicked,
|
||||
interactionSource = interactionSource
|
||||
|
||||
@@ -582,7 +582,6 @@ private fun HtmlText(
|
||||
val inlineContentMap = persistentMapOf<String, InlineTextContent>()
|
||||
ClickableLinkText(
|
||||
annotatedString = text,
|
||||
linkAnnotationTag = "URL",
|
||||
style = style,
|
||||
modifier = modifier,
|
||||
inlineContent = inlineContentMap,
|
||||
|
||||
@@ -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<String, InlineTextContent> = 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
|
||||
|
||||
Reference in New Issue
Block a user