diff --git a/app/src/main/java/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt b/app/src/main/java/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt index 988c6007d..b26b346dc 100644 --- a/app/src/main/java/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt +++ b/app/src/main/java/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt @@ -4,13 +4,13 @@ import android.annotation.SuppressLint import android.content.Context import android.content.Intent import android.net.Uri -import android.text.Html import android.text.style.URLSpan import androidx.core.app.NotificationChannelCompat import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.core.app.PendingIntentCompat import androidx.core.text.getSpans +import androidx.core.text.parseAsHtml import androidx.work.Constraints import androidx.work.CoroutineWorker import androidx.work.ExistingPeriodicWorkPolicy @@ -109,7 +109,7 @@ fun showEventNotification(html: String) { .setName(CHANNEL_ID) .build() notificationManager.createNotificationChannel(chan) - val text = Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY) + val text = html.parseAsHtml() val msg = NotificationCompat.Builder(appCtx, CHANNEL_ID) .setAutoCancel(true) .setSmallIcon(R.drawable.ic_launcher_monochrome) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt index a04474e37..f5e308bee 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt @@ -23,7 +23,6 @@ import android.graphics.Typeface import android.graphics.drawable.Drawable import android.os.Bundle import android.os.Looper -import android.text.Html import android.text.Spannable import android.text.SpannableStringBuilder import android.text.style.CharacterStyle @@ -45,6 +44,7 @@ import androidx.activity.OnBackPressedCallback import androidx.core.content.ContextCompat import androidx.core.text.getSpans import androidx.core.text.inSpans +import androidx.core.text.parseAsHtml import androidx.core.text.set import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsAnimationCompat @@ -767,12 +767,7 @@ class GalleryCommentsScene : BaseToolbarScene(), View.OnClickListener, OnRefresh textView: ObservedTextView, comment: GalleryComment, ): CharSequence { - sp = Html.fromHtml( - comment.comment, - Html.FROM_HTML_MODE_LEGACY, - URLImageGetter(textView), - null, - ) + sp = comment.comment.orEmpty().parseAsHtml(imageGetter = URLImageGetter(textView)) val ssb = SpannableStringBuilder(sp) if (0L != comment.id && 0 != comment.score) { val score = comment.score diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt index 16edad9e7..8c52473d9 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt @@ -27,7 +27,6 @@ import android.net.Uri import android.os.Build import android.os.Bundle import android.os.Environment -import android.text.Html import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -104,6 +103,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.core.content.ContextCompat +import androidx.core.text.parseAsHtml import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import arrow.core.partially1 @@ -1109,12 +1109,7 @@ class GalleryDetailScene : BaseScene(), DownloadInfoListener { user.setBackgroundColor(Color.TRANSPARENT) time.text = ReadableTime.getTimeAgo(comment.time) this.comment.maxLines = 5 - this.comment.text = Html.fromHtml( - comment.comment, - Html.FROM_HTML_MODE_LEGACY, - URLImageGetter(this.comment), - null, - ) + this.comment.text = comment.comment.orEmpty().parseAsHtml(imageGetter = URLImageGetter(this.comment)) }.root }) } 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 95f927388..04ffaa482 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,6 +1,5 @@ package com.hippo.ehviewer.ui.settings -import android.text.Html import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons @@ -16,6 +15,7 @@ import androidx.compose.runtime.Stable import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource +import androidx.core.text.parseAsHtml import com.hippo.ehviewer.BuildConfig import com.hippo.ehviewer.R import com.hippo.ehviewer.ui.LICENSE_SCREEN @@ -31,7 +31,7 @@ private fun versionCode() = "${BuildConfig.VERSION_NAME} (${BuildConfig.COMMIT_S @Composable @Stable -private fun author() = stringResource(R.string.settings_about_author_summary).replace('$', '@').let { Html.fromHtml(it, Html.FROM_HTML_MODE_LEGACY).toAnnotatedString() } +private fun author() = stringResource(R.string.settings_about_author_summary).replace('$', '@').parseAsHtml().toAnnotatedString() @Composable fun AboutScreen() { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt index 5d7d5495e..27ace6b81 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt @@ -2,7 +2,6 @@ package com.hippo.ehviewer.ui.settings import android.content.DialogInterface import android.os.Build -import android.text.Html import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -34,6 +33,7 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringArrayResource import androidx.compose.ui.res.stringResource +import androidx.core.text.parseAsHtml import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhCookieStore @@ -107,7 +107,7 @@ fun EhScreen() { BaseDialogBuilder(context).apply { if (ipbMemberId != null || ipbPassHash != null || igneous != null) { val str = EhCookieStore.KEY_IPB_MEMBER_ID + ": " + ipbMemberId + "
" + EhCookieStore.KEY_IPB_PASS_HASH + ": " + ipbPassHash + "
" + EhCookieStore.KEY_IGNEOUS + ": " + igneous - val spanned = Html.fromHtml(context.getString(R.string.settings_eh_identity_cookies_signed, str), Html.FROM_HTML_MODE_LEGACY) + val spanned = context.getString(R.string.settings_eh_identity_cookies_signed, str).parseAsHtml() setMessage(spanned) setNeutralButton(R.string.settings_eh_identity_cookies_copy) { _, _ -> context whisperClipboard str.replace("
", "\n") diff --git a/app/src/main/java/com/mikepenz/aboutlibraries/ui/compose/SharedLibraries.kt b/app/src/main/java/com/mikepenz/aboutlibraries/ui/compose/SharedLibraries.kt index 5f6f69480..84e37bbf0 100644 --- a/app/src/main/java/com/mikepenz/aboutlibraries/ui/compose/SharedLibraries.kt +++ b/app/src/main/java/com/mikepenz/aboutlibraries/ui/compose/SharedLibraries.kt @@ -37,6 +37,7 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.core.text.HtmlCompat +import androidx.core.text.parseAsHtml import com.mikepenz.aboutlibraries.entity.Library import com.mikepenz.aboutlibraries.ui.compose.util.author import com.mikepenz.aboutlibraries.ui.compose.util.htmlReadyLicenseContent @@ -190,7 +191,7 @@ fun HtmlText( AndroidView( modifier = modifier, factory = { context -> TextView(context) }, - update = { it.text = HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_COMPACT) }, + update = { it.text = html.parseAsHtml(flags = HtmlCompat.FROM_HTML_MODE_COMPACT) }, ) }