From d897a83cd5cfcef74dd136d76a087d06c828ab07 Mon Sep 17 00:00:00 2001 From: ThomasSession Date: Wed, 11 Sep 2024 16:57:09 +1000 Subject: [PATCH] Tweaking debug menu --- .../securesms/debugmenu/DebugMenu.kt | 6 ++- .../{Html.kt => AnnotatedString.kt} | 46 +++++-------------- 2 files changed, 16 insertions(+), 36 deletions(-) rename app/src/main/java/org/thoughtcrime/securesms/ui/components/{Html.kt => AnnotatedString.kt} (81%) diff --git a/app/src/main/java/org/thoughtcrime/securesms/debugmenu/DebugMenu.kt b/app/src/main/java/org/thoughtcrime/securesms/debugmenu/DebugMenu.kt index f277d1f40b..38a01a9db4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/debugmenu/DebugMenu.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/debugmenu/DebugMenu.kt @@ -149,9 +149,11 @@ fun ColumnScope.DebugCell( ) { Spacer(modifier = Modifier.height(LocalDimensions.current.smallSpacing)) - Cell { + Cell( + modifier = modifier + ) { Column( - modifier = modifier.padding(LocalDimensions.current.spacing) + modifier = Modifier.padding(LocalDimensions.current.spacing) ) { Text( text = title, diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/components/Html.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/components/AnnotatedString.kt similarity index 81% rename from app/src/main/java/org/thoughtcrime/securesms/ui/components/Html.kt rename to app/src/main/java/org/thoughtcrime/securesms/ui/components/AnnotatedString.kt index 15f0292853..68587bc9e1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/components/Html.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/components/AnnotatedString.kt @@ -3,8 +3,16 @@ package org.thoughtcrime.securesms.ui.components import android.content.res.Resources import android.graphics.Typeface import android.text.Spanned -import android.text.SpannedString -import android.text.style.* +import android.text.style.AbsoluteSizeSpan +import android.text.style.BulletSpan +import android.text.style.ForegroundColorSpan +import android.text.style.RelativeSizeSpan +import android.text.style.StrikethroughSpan +import android.text.style.StyleSpan +import android.text.style.SubscriptSpan +import android.text.style.SuperscriptSpan +import android.text.style.TypefaceSpan +import android.text.style.UnderlineSpan import android.util.Log import androidx.annotation.StringRes import androidx.compose.runtime.Composable @@ -14,7 +22,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.buildAnnotatedString @@ -26,13 +33,9 @@ import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.em -import androidx.core.text.HtmlCompat -import com.squareup.phrase.Phrase -import network.loki.messenger.R -import org.session.libsession.utilities.StringSubstitutionConstants.URL_KEY -// TODO Remove this file once we update to composeVersion=1.7.0-alpha06 fixes https://issuetracker.google.com/issues/139320238?pli=1 -// which allows Stylized string in string resources +// Utilities for AnnotatedStrings, +// like converting the old view system's SpannableString to AnnotatedString @Composable @ReadOnlyComposable private fun resources(): Resources { @@ -40,31 +43,6 @@ private fun resources(): Resources { return LocalContext.current.resources } -fun Spanned.toHtmlWithoutParagraphs(): String { - return HtmlCompat.toHtml(this, HtmlCompat.TO_HTML_PARAGRAPH_LINES_CONSECUTIVE) - .substringAfter("

").substringBeforeLast("

") -} - -fun Resources.getText(@StringRes id: Int, vararg args: Any): CharSequence { - val escapedArgs = args.map { - if (it is Spanned) it.toHtmlWithoutParagraphs() else it - }.toTypedArray() - val resource = SpannedString(getText(id)) - val htmlResource = resource.toHtmlWithoutParagraphs() - val formattedHtml = String.format(htmlResource, *escapedArgs) - return HtmlCompat.fromHtml(formattedHtml, HtmlCompat.FROM_HTML_MODE_LEGACY) -} - -@Composable -fun annotatedStringResource(@StringRes id: Int, vararg formatArgs: Any): AnnotatedString { - val resources = resources() - val density = LocalDensity.current - return remember(id, formatArgs) { - val text = resources.getText(id, *formatArgs) - spannableStringToAnnotatedString(text, density) - } -} - @Composable fun annotatedStringResource(@StringRes id: Int): AnnotatedString { val resources = resources()