diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt index a6a91248a..718b39a8b 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt @@ -64,6 +64,7 @@ import androidx.compose.ui.platform.LocalTextToolbar import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.TextFieldValue +import androidx.compose.ui.text.parseAsHtml import androidx.compose.ui.unit.Constraints import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.max @@ -90,7 +91,6 @@ import com.hippo.ehviewer.ui.tools.animateFloatMergePredictiveBackAsState import com.hippo.ehviewer.ui.tools.normalizeSpan import com.hippo.ehviewer.ui.tools.rememberBBCodeTextToolbar import com.hippo.ehviewer.ui.tools.snackBarPadding -import com.hippo.ehviewer.ui.tools.toAnnotatedString import com.hippo.ehviewer.ui.tools.toBBCode import com.hippo.ehviewer.ui.tools.updateSpan import com.hippo.ehviewer.util.ReadableTime @@ -335,7 +335,7 @@ fun GalleryCommentsScreen(gid: Long, navigator: DestinationsNavigator) = composi } if (comment.editable) { onSelect(editComment) { - userComment = TextFieldValue(comment.comment.parseAsHtml().toAnnotatedString()) + userComment = TextFieldValue(comment.comment.parseAsHtml()) commentId = comment.id commenting = true } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt index 8db93f1e7..022e89313 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt @@ -26,8 +26,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.parseAsHtml import androidx.compose.ui.unit.dp -import androidx.core.text.parseAsHtml import com.hippo.ehviewer.BuildConfig import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings @@ -35,7 +35,6 @@ import com.hippo.ehviewer.ui.destinations.LicenseScreenDestination import com.hippo.ehviewer.ui.tools.DialogState import com.hippo.ehviewer.ui.tools.LocalDialogState import com.hippo.ehviewer.ui.tools.observed -import com.hippo.ehviewer.ui.tools.toAnnotatedString import com.hippo.ehviewer.updater.AppUpdater import com.hippo.ehviewer.updater.Release import com.hippo.ehviewer.util.AppConfig @@ -58,7 +57,7 @@ private fun versionCode() = "${BuildConfig.VERSION_NAME} (${BuildConfig.COMMIT_S @Composable @Stable -private fun author() = stringResource(R.string.settings_about_author_summary).replace('$', '@').parseAsHtml().toAnnotatedString() +private fun author() = stringResource(R.string.settings_about_author_summary).replace('$', '@').parseAsHtml() @Destination @Composable diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt index 136ba7926..ef5aa0f34 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt @@ -37,7 +37,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringArrayResource import androidx.compose.ui.res.stringResource -import androidx.core.text.parseAsHtml +import androidx.compose.ui.text.parseAsHtml import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState @@ -54,7 +54,6 @@ import com.hippo.ehviewer.ui.screen.popNavigate import com.hippo.ehviewer.ui.tools.LocalDialogState import com.hippo.ehviewer.ui.tools.observed import com.hippo.ehviewer.ui.tools.rememberedAccessor -import com.hippo.ehviewer.ui.tools.toAnnotatedString import com.hippo.ehviewer.util.copyTextToClipboard import com.hippo.ehviewer.util.displayString import com.hippo.ehviewer.util.isAtLeastT @@ -116,7 +115,7 @@ fun EhScreen(navigator: DestinationsNavigator) { Column { val warning = stringResource(id = R.string.settings_eh_identity_cookies_signed) val str = cookies.joinToString("\n") { (k, v) -> "$k: $v" } - Text(text = warning.parseAsHtml().toAnnotatedString()) + Text(text = warning.parseAsHtml()) Spacer(modifier = Modifier.size(dimensionResource(id = R.dimen.keyline_margin))) OutlinedTextField( value = str, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/BBCodeTextToolbar.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/BBCodeTextToolbar.kt index dbb603133..29f5fe6e1 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/BBCodeTextToolbar.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/BBCodeTextToolbar.kt @@ -1,10 +1,5 @@ package com.hippo.ehviewer.ui.tools -import android.graphics.Typeface -import android.text.Spanned -import android.text.style.StrikethroughSpan -import android.text.style.StyleSpan -import android.text.style.UnderlineSpan import android.view.ActionMode import android.view.Menu import android.view.MenuItem @@ -146,25 +141,6 @@ fun AnnotatedString.toBBCode() = buildString { } } -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) - fun addStyle(spanStyle: SpanStyle) = addStyle(spanStyle, start, end) - when (span) { - is StrikethroughSpan -> addStyle(SpanStyle(textDecoration = TextDecoration.LineThrough)) - is UnderlineSpan -> addStyle(SpanStyle(textDecoration = TextDecoration.Underline)) - is StyleSpan -> { - val s = span.style - if (s and Typeface.BOLD != 0) addStyle(SpanStyle(fontWeight = FontWeight.Bold)) - if (s and Typeface.ITALIC != 0) addStyle(SpanStyle(fontStyle = FontStyle.Italic)) - } - } - } -} - @Composable fun rememberBBCodeTextToolbar(textFieldValue: MutableState): TextToolbar { var tfv by textFieldValue