diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 700a9a7754..8120e8c86e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -275,6 +275,7 @@ dependencies { implementation(deps.reKotlin) implementation(deps.zxing.qrCore) implementation(deps.coil) + implementation(deps.coil.gif) implementation(deps.amplitude) implementation(deps.kotsonGson) implementation(deps.spongecastle.core) diff --git a/app/src/main/java/com/tangem/tap/common/images/Coil.kt b/app/src/main/java/com/tangem/tap/common/images/Coil.kt index 4b269bdca4..28336b233f 100644 --- a/app/src/main/java/com/tangem/tap/common/images/Coil.kt +++ b/app/src/main/java/com/tangem/tap/common/images/Coil.kt @@ -1,8 +1,11 @@ package com.tangem.tap.common.images import android.content.Context +import android.os.Build import android.util.Log import coil.ImageLoader +import coil.decode.GifDecoder +import coil.decode.ImageDecoderDecoder import coil.memory.MemoryCache import coil.request.CachePolicy import coil.util.Logger @@ -25,6 +28,15 @@ fun createCoilImageLoader(context: Context, logEnabled: Boolean = false): ImageL .build() } } + .components { + // According to Coil ImageDecoder API is faster and supports animated WebP and HEIF + // https://coil-kt.github.io/coil/gifs/ + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + add(ImageDecoderDecoder.Factory()) + } else { + add(GifDecoder.Factory()) + } + } .memoryCachePolicy(CachePolicy.ENABLED) .memoryCache { MemoryCache.Builder(context) diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 3f1defd17d..2353d61b82 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -214,6 +214,7 @@ test-hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", versi amplitude = { module = "com.amplitude:android-sdk", version.ref = "amplitude" } armadillo = { module = "at.favre.lib:armadillo", version.ref = "armadillo" } coil = { module = "io.coil-kt:coil", version.ref = "coil" } +coil-gif = { module = "io.coil-kt:coil-gif", version.ref = "coil" } kotlin-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutine" } kotlin-coroutines-rx2 = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-rx2", version.ref = "coroutine" } kotlin-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "coroutine" }