diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index e54f28457..801afb29b 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -19,6 +19,8 @@ import coil3.ImageLoader import coil3.SingletonImageLoader import coil3.disk.DiskCache import coil3.disk.directory +import coil3.gif.AnimatedImageDecoder +import coil3.gif.GifDecoder import coil3.network.okhttp.OkHttpNetworkFetcherFactory import coil3.request.allowRgb565 import coil3.request.crossfade @@ -182,6 +184,11 @@ class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factor val callFactoryLazy = lazy { Injekt.get().client } val diskCacheLazy = lazy { CoilDiskCache.get(this@App) } components { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + add(AnimatedImageDecoder.Factory()) + } else { + add(GifDecoder.Factory()) + } add(OkHttpNetworkFetcherFactory(callFactoryLazy::value)) add(TachiyomiImageDecoder.Factory()) add(MangaCoverFetcher.MangaFactory(callFactoryLazy, diskCacheLazy)) diff --git a/core/common/src/main/kotlin/tachiyomi/core/common/util/system/ImageUtil.kt b/core/common/src/main/kotlin/tachiyomi/core/common/util/system/ImageUtil.kt index 053a54b41..b642113c3 100644 --- a/core/common/src/main/kotlin/tachiyomi/core/common/util/system/ImageUtil.kt +++ b/core/common/src/main/kotlin/tachiyomi/core/common/util/system/ImageUtil.kt @@ -91,6 +91,9 @@ object ImageUtil { // Coil supports animated WebP on Android 9.0+ // https://coil-kt.github.io/coil/getting_started/#supported-image-formats Format.Webp -> type.isAnimated && Build.VERSION.SDK_INT >= Build.VERSION_CODES.P + // Coil supports animated Heif on Android 11+ + // https://coil-kt.github.io/coil/getting_started/#supported-image-formats + Format.Heif -> type.isAnimated && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R else -> false } } catch (e: Exception) {