diff --git a/app/src/main/java/com/hippo/ehviewer/ui/settings/AboutScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/settings/AboutScreen.kt index e7367e47d..16398220a 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/settings/AboutScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/settings/AboutScreen.kt @@ -1,8 +1,6 @@ package com.hippo.ehviewer.ui.settings import android.text.Html -import android.text.Spanned -import android.text.style.StrikethroughSpan import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons @@ -18,10 +16,6 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.AnnotatedString -import androidx.compose.ui.text.SpanStyle -import androidx.compose.ui.text.buildAnnotatedString -import androidx.compose.ui.text.style.TextDecoration import com.hippo.ehviewer.BuildConfig import com.hippo.ehviewer.R import com.hippo.ehviewer.ui.login.LocalNavController @@ -46,17 +40,6 @@ fun AboutScreen() { Column(modifier = Modifier.padding(it).nestedScroll(scrollBehavior.nestedScrollConnection)) { Preference(title = stringResource(id = R.string.settings_about_declaration), summary = stringResource(id = R.string.settings_about_declaration_summary)) val author = stringResource(R.string.settings_about_author_summary).replace('$', '@').let { - fun Spanned.toAnnotatedString(): AnnotatedString = buildAnnotatedString { - val spanned = this@toAnnotatedString - append(spanned.toString()) - getSpans(0, spanned.length, Any::class.java).forEach { span -> - val start = getSpanStart(span) - val end = getSpanEnd(span) - when (span) { - is StrikethroughSpan -> addStyle(SpanStyle(textDecoration = TextDecoration.LineThrough), start, end) - } - } - } remember { Html.fromHtml(it, Html.FROM_HTML_MODE_LEGACY).toAnnotatedString() } } HtmlPreference(title = stringResource(id = R.string.settings_about_author), summary = author) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/settings/SpannedHelper.kt b/app/src/main/java/com/hippo/ehviewer/ui/settings/SpannedHelper.kt new file mode 100644 index 000000000..837179de2 --- /dev/null +++ b/app/src/main/java/com/hippo/ehviewer/ui/settings/SpannedHelper.kt @@ -0,0 +1,20 @@ +package com.hippo.ehviewer.ui.settings + +import android.text.Spanned +import android.text.style.StrikethroughSpan +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.style.TextDecoration + +fun Spanned.toAnnotatedString(): AnnotatedString = buildAnnotatedString { + val spanned = this@toAnnotatedString + append(spanned.toString()) + getSpans(0, spanned.length, Any::class.java).forEach { span -> + val start = getSpanStart(span) + val end = getSpanEnd(span) + when (span) { + is StrikethroughSpan -> addStyle(SpanStyle(textDecoration = TextDecoration.LineThrough), start, end) + } + } +}