From 9a07dd0036d4621a307ce816ff488b34035d7ea8 Mon Sep 17 00:00:00 2001 From: jakeroseman Date: Tue, 5 Nov 2024 11:48:28 +0000 Subject: [PATCH 1/3] Add basic HTML text styling example --- .../compose/snippets/text/HtmlStyling.kt | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt b/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt new file mode 100644 index 00000000..1bba5ec0 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt @@ -0,0 +1,46 @@ +package com.example.compose.snippets.text + +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.TextLinkStyles +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.fromHtml +import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.tooling.preview.Preview + +@Composable +fun AnnotatedHtmlStringWithLink( + modifier: Modifier = Modifier, + htmlText: String = """ +

Jetpack Compose

+

+ Build better apps faster with Jetpack Compose +

+ """.trimIndent() +) { + Text( + AnnotatedString.fromHtml( + htmlText, + linkStyles = TextLinkStyles( + style = SpanStyle( + textDecoration = TextDecoration.Underline, + fontStyle = FontStyle.Italic, + color = Color.Blue + ) + ) + ), + modifier + ) +} + + +@Preview(showBackground = true) +@Composable +private fun AnnotatedHtmlStringWithLinkPreview() { + AnnotatedHtmlStringWithLink() +} From f2ecccb4e943fcfc46d708c6fcfb4f30011d6320 Mon Sep 17 00:00:00 2001 From: jakeroseman Date: Tue, 5 Nov 2024 11:51:47 +0000 Subject: [PATCH 2/3] Apply Spotless --- .../compose/snippets/text/HtmlStyling.kt | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt b/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt index 1bba5ec0..f717f832 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt @@ -1,10 +1,25 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.example.compose.snippets.text import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.TextLinkStyles @@ -21,7 +36,7 @@ fun AnnotatedHtmlStringWithLink(

Build better apps faster with Jetpack Compose

- """.trimIndent() + """.trimIndent() ) { Text( AnnotatedString.fromHtml( @@ -38,7 +53,6 @@ fun AnnotatedHtmlStringWithLink( ) } - @Preview(showBackground = true) @Composable private fun AnnotatedHtmlStringWithLinkPreview() { From 3ebabfdc5c45627a05d21c2571a7f6cb0d4784e1 Mon Sep 17 00:00:00 2001 From: jakeroseman Date: Tue, 5 Nov 2024 12:15:31 +0000 Subject: [PATCH 3/3] Add region tags --- .../main/java/com/example/compose/snippets/text/HtmlStyling.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt b/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt index f717f832..607fdf46 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt @@ -28,6 +28,7 @@ import androidx.compose.ui.text.fromHtml import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.tooling.preview.Preview +// [START android_compose_text_annotatedhtmlstringwithlink] @Composable fun AnnotatedHtmlStringWithLink( modifier: Modifier = Modifier, @@ -52,6 +53,7 @@ fun AnnotatedHtmlStringWithLink( modifier ) } +// [END android_compose_text_annotatedhtmlstringwithlink] @Preview(showBackground = true) @Composable