Remove experimental animated WebP decoder option

This commit is contained in:
FooIbar committed 2025-06-30 17:09:28 +08:00
1 parent 231afd3e71
commit 6156b30a36
8 files changed
+18 -27

No files matched your search

+4 -4
View File
@@ -70,10 +70,10 @@ and [Dynamic Color](https://m3.material.io/styles/color/dynamic-color/overview)
# Download # Download
| Flavor | Minimum Android Version | Notes | | Flavor | Minimum Android Version | Notes |
|-------------|-------------------------|-------------------------------------------| |-------------|-------------------------|--------------------------------|
| Default | 8.0 | Animated WebP support requires Android 9+ | | Default | 8.0 | Full support |
| Marshmallow | 6.0* | Limited support, no guarantees | | 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 *Devices running Android 6 need to have the [ISRG Root X1](https://letsencrypt.org/certs/isrgrootx1.pem) certificate installed
@@ -38,6 +38,7 @@ import coil3.request.crossfade
import coil3.serviceLoaderEnabled import coil3.serviceLoaderEnabled
import coil3.util.DebugLogger import coil3.util.DebugLogger
import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.client.EhTagDatabase
import com.hippo.ehviewer.coil.AnimatedWebPDecoder
import com.hippo.ehviewer.coil.CropBorderInterceptor import com.hippo.ehviewer.coil.CropBorderInterceptor
import com.hippo.ehviewer.coil.DetectBorderInterceptor import com.hippo.ehviewer.coil.DetectBorderInterceptor
import com.hippo.ehviewer.coil.DownloadThumbInterceptor import com.hippo.ehviewer.coil.DownloadThumbInterceptor
@@ -188,6 +189,7 @@ class EhApplication :
add(DetectBorderInterceptor) add(DetectBorderInterceptor)
add(QrCodeInterceptor) add(QrCodeInterceptor)
add(MapExtraInfoInterceptor) add(MapExtraInfoInterceptor)
add(AnimatedWebPDecoder.Factory)
if (isAtLeastP) { if (isAtLeastP) {
add(AnimatedImageDecoder.Factory(false)) add(AnimatedImageDecoder.Factory(false))
} else { } else {
@@ -127,7 +127,6 @@ object Settings : DataStorePreferences(null) {
val animateItems = boolPref("animate_items", true) val animateItems = boolPref("animate_items", true)
val enableCronet = boolPref("enable_cronet", true) val enableCronet = boolPref("enable_cronet", true)
val enableQuic = boolPref("enable_quic", true) val enableQuic = boolPref("enable_quic", true)
val webpDecoder = boolPref("webp_decoder", true)
val desktopSite = boolPref("desktop_site", true) val desktopSite = boolPref("desktop_site", true)
val displayName = stringOrNullPref("display_name", null) val displayName = stringOrNullPref("display_name", null)
val avatar = stringOrNullPref("avatar", null) val avatar = stringOrNullPref("avatar", null)
@@ -37,7 +37,6 @@ import coil3.size.Precision
import coil3.size.Size import coil3.size.Size
import coil3.size.SizeResolver import coil3.size.SizeResolver
import com.hippo.ehviewer.Settings import com.hippo.ehviewer.Settings
import com.hippo.ehviewer.coil.AnimatedWebPDecoder
import com.hippo.ehviewer.coil.AnimatedWebPDrawable import com.hippo.ehviewer.coil.AnimatedWebPDrawable
import com.hippo.ehviewer.coil.BitmapImageWithExtraInfo import com.hippo.ehviewer.coil.BitmapImageWithExtraInfo
import com.hippo.ehviewer.coil.detectQrCode import com.hippo.ehviewer.coil.detectQrCode
@@ -106,9 +105,6 @@ class Image private constructor(image: CoilImage, private val src: ImageSource)
maybeCropBorder(Settings.cropBorder.value) maybeCropBorder(Settings.cropBorder.value)
detectQrCode(checkExtraneousAds) detectQrCode(checkExtraneousAds)
memoryCachePolicy(CachePolicy.DISABLED) memoryCachePolicy(CachePolicy.DISABLED)
if (Settings.webpDecoder.value) {
decoderFactory(AnimatedWebPDecoder.Factory)
}
} }
} }
return when (val result = request.execute()) { return when (val result = request.execute()) {
@@ -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) { if (isAtLeastO) {
IntSliderPreference( IntSliderPreference(
maxValue = 16384, maxValue = 16384,
+4 -4
View File
@@ -70,10 +70,10 @@
# ダウンロード # ダウンロード
| フレーバー | 最小の Android バージョン | 注意事項 | | フレーバー | 最小の Android バージョン | 注意事項 |
|-------------|-------------------------|-------------------------------------------| |-------------|-------------------|-------------------|
| Default | 8.0 | アニメーション WebP のサポートは Android 9 以降が必要です | | Default | 8.0 | 完全なサポート |
| Marshmallow | 6.0* | サポートは限定的、保証はできません | | Marshmallow | 6.0* | サポートは限定的、保証はできません |
*Android 6 のデバイスは [ISRG Root X1](https://letsencrypt.org/certs/isrgrootx1.pem) 証明書のインストールが必要です *Android 6 のデバイスは [ISRG Root X1](https://letsencrypt.org/certs/isrgrootx1.pem) 証明書のインストールが必要です
+4 -4
View File
@@ -69,10 +69,10 @@
# 下载 # 下载
| 变种 | 最低 Android 版本 | 备注 | | 变种 | 最低 Android 版本 | 备注 |
|-------------|---------------|-------------------------| |-------------|---------------|----------|
| Default | 8.0 | 动画 WebP 支持需要 Android 9+ | | Default | 8.0 | 完全支持 |
| Marshmallow | 6.0* | 有限支持,无保证 | | Marshmallow | 6.0* | 有限支持,无保证 |
*运行 Android 6 的设备需安装 [ISRG Root X1](https://letsencrypt.org/certs/isrgrootx1.pem) 证书 *运行 Android 6 的设备需安装 [ISRG Root X1](https://letsencrypt.org/certs/isrgrootx1.pem) 证书
+4 -4
View File
@@ -69,10 +69,10 @@
# 下載 # 下載
| 變種 | 最低 Android 版本 | 備註 | | 變種 | 最低 Android 版本 | 備註 |
|-------------|---------------|-------------------------| |-------------|---------------|----------|
| Default | 8.0 | 動畫 WebP 支援需要 Android 9+ | | Default | 8.0 | 完全支援 |
| Marshmallow | 6.0 | 有限支援,無保證 | | Marshmallow | 6.0 | 有限支援,無保證 |
<a href="https://github.com/FooIbar/EhViewer/releases"> <a href="https://github.com/FooIbar/EhViewer/releases">
<img alt="Get it on GitHub" src="https://github.com/Ehviewer-Overhauled/Art/blob/master/get-it-on-github.svg" width="200px"/> <img alt="Get it on GitHub" src="https://github.com/Ehviewer-Overhauled/Art/blob/master/get-it-on-github.svg" width="200px"/>