diff --git a/README.md b/README.md index 585bc34f8..50e069065 100644 --- a/README.md +++ b/README.md @@ -70,10 +70,10 @@ and [Dynamic Color](https://m3.material.io/styles/color/dynamic-color/overview) # Download -| Flavor | Minimum Android Version | Notes | -|-------------|-------------------------|-------------------------------------------| -| Default | 8.0 | Animated WebP support requires Android 9+ | -| Marshmallow | 6.0* | Limited support, no guarantees | +| Flavor | Minimum Android Version | Notes | +|-------------|-------------------------|--------------------------------| +| Default | 8.0 | Full support | +| Marshmallow | 6.0* | Limited support, no guarantees | *Devices running Android 6 need to have the [ISRG Root X1](https://letsencrypt.org/certs/isrgrootx1.pem) certificate installed diff --git a/app/src/main/kotlin/com/hippo/ehviewer/EhApplication.kt b/app/src/main/kotlin/com/hippo/ehviewer/EhApplication.kt index a22249d68..d47769e48 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/EhApplication.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/EhApplication.kt @@ -38,6 +38,7 @@ import coil3.request.crossfade import coil3.serviceLoaderEnabled import coil3.util.DebugLogger import com.hippo.ehviewer.client.EhTagDatabase +import com.hippo.ehviewer.coil.AnimatedWebPDecoder import com.hippo.ehviewer.coil.CropBorderInterceptor import com.hippo.ehviewer.coil.DetectBorderInterceptor import com.hippo.ehviewer.coil.DownloadThumbInterceptor @@ -188,6 +189,7 @@ class EhApplication : add(DetectBorderInterceptor) add(QrCodeInterceptor) add(MapExtraInfoInterceptor) + add(AnimatedWebPDecoder.Factory) if (isAtLeastP) { add(AnimatedImageDecoder.Factory(false)) } else { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt b/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt index 481b5ffb1..47038ada4 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt @@ -127,7 +127,6 @@ object Settings : DataStorePreferences(null) { val animateItems = boolPref("animate_items", true) val enableCronet = boolPref("enable_cronet", true) val enableQuic = boolPref("enable_quic", true) - val webpDecoder = boolPref("webp_decoder", true) val desktopSite = boolPref("desktop_site", true) val displayName = stringOrNullPref("display_name", null) val avatar = stringOrNullPref("avatar", null) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt b/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt index b46e97c5c..6de5149b1 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt @@ -37,7 +37,6 @@ import coil3.size.Precision import coil3.size.Size import coil3.size.SizeResolver import com.hippo.ehviewer.Settings -import com.hippo.ehviewer.coil.AnimatedWebPDecoder import com.hippo.ehviewer.coil.AnimatedWebPDrawable import com.hippo.ehviewer.coil.BitmapImageWithExtraInfo import com.hippo.ehviewer.coil.detectQrCode @@ -106,9 +105,6 @@ class Image private constructor(image: CoilImage, private val src: ImageSource) maybeCropBorder(Settings.cropBorder.value) detectQrCode(checkExtraneousAds) memoryCachePolicy(CachePolicy.DISABLED) - if (Settings.webpDecoder.value) { - decoderFactory(AnimatedWebPDecoder.Factory) - } } } return when (val result = request.execute()) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt index a024400b0..e298bc8fc 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt @@ -223,12 +223,6 @@ fun AnimatedVisibilityScope.AdvancedScreen(navigator: DestinationsNavigator) = S } } } - var webpDecoder by Settings.webpDecoder.asMutableState() - SwitchPref( - checked = webpDecoder, - onMutate = { webpDecoder = !webpDecoder }, - title = "Experimental animated WebP decoder", - ) if (isAtLeastO) { IntSliderPreference( maxValue = 16384, diff --git a/docs/README/ja.md b/docs/README/ja.md index 475f8f16e..9c72ec6ec 100644 --- a/docs/README/ja.md +++ b/docs/README/ja.md @@ -70,10 +70,10 @@ # ダウンロード -| フレーバー | 最小の Android バージョン | 注意事項 | -|-------------|-------------------------|-------------------------------------------| -| Default | 8.0 | アニメーション WebP のサポートは Android 9 以降が必要です | -| Marshmallow | 6.0* | サポートは限定的、保証はできません | +| フレーバー | 最小の Android バージョン | 注意事項 | +|-------------|-------------------|-------------------| +| Default | 8.0 | 完全なサポート | +| Marshmallow | 6.0* | サポートは限定的、保証はできません | *Android 6 のデバイスは [ISRG Root X1](https://letsencrypt.org/certs/isrgrootx1.pem) 証明書のインストールが必要です diff --git a/docs/README/zh-cn.md b/docs/README/zh-cn.md index b310b6811..8ef3c44f5 100644 --- a/docs/README/zh-cn.md +++ b/docs/README/zh-cn.md @@ -69,10 +69,10 @@ # 下载 -| 变种 | 最低 Android 版本 | 备注 | -|-------------|---------------|-------------------------| -| Default | 8.0 | 动画 WebP 支持需要 Android 9+ | -| Marshmallow | 6.0* | 有限支持,无保证 | +| 变种 | 最低 Android 版本 | 备注 | +|-------------|---------------|----------| +| Default | 8.0 | 完全支持 | +| Marshmallow | 6.0* | 有限支持,无保证 | *运行 Android 6 的设备需安装 [ISRG Root X1](https://letsencrypt.org/certs/isrgrootx1.pem) 证书 diff --git a/docs/README/zh-tw.md b/docs/README/zh-tw.md index 2aa542998..3044ad69e 100644 --- a/docs/README/zh-tw.md +++ b/docs/README/zh-tw.md @@ -69,10 +69,10 @@ # 下載 -| 變種 | 最低 Android 版本 | 備註 | -|-------------|---------------|-------------------------| -| Default | 8.0 | 動畫 WebP 支援需要 Android 9+ | -| Marshmallow | 6.0 | 有限支援,無保證 | +| 變種 | 最低 Android 版本 | 備註 | +|-------------|---------------|----------| +| Default | 8.0 | 完全支援 | +| Marshmallow | 6.0 | 有限支援,無保證 | Get it on GitHub