diff --git a/app/build.gradle b/app/build.gradle index 9da2a38065..35be4d0ed7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -269,6 +269,7 @@ dependencies { //Compose Coil implementation("io.coil-kt:coil-compose:2.6.0") + implementation("io.coil-kt:coil-gif:2.6.0") // Firebase implementation platform('com.google.firebase:firebase-bom:32.8.1') diff --git a/app/src/main/java/com/kickstarter/ui/views/ImageWithCaptionView.kt b/app/src/main/java/com/kickstarter/ui/views/ImageWithCaptionView.kt index 2d7430a482..889365cae1 100644 --- a/app/src/main/java/com/kickstarter/ui/views/ImageWithCaptionView.kt +++ b/app/src/main/java/com/kickstarter/ui/views/ImageWithCaptionView.kt @@ -2,6 +2,7 @@ package com.kickstarter.ui.views import android.annotation.SuppressLint import android.content.Context +import android.os.Build.VERSION.SDK_INT import android.util.AttributeSet import android.view.LayoutInflater import android.view.View @@ -13,9 +14,15 @@ import androidx.compose.material.LinearProgressIndicator import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale.Companion.FillWidth import androidx.core.view.isVisible +import coil.ImageLoader import coil.compose.AsyncImagePainter import coil.compose.SubcomposeAsyncImage import coil.compose.SubcomposeAsyncImageContent +import coil.decode.GifDecoder +import coil.decode.ImageDecoderDecoder + +import coil.load + import com.kickstarter.R import com.kickstarter.databinding.ViewImageWithCaptionBinding import com.kickstarter.libs.utils.extensions.isGif @@ -46,7 +53,16 @@ class ImageWithCaptionView @JvmOverloads constructor( } else { when { src.isWebp() -> { - binding.imageView.loadWebp(src, context) + val gifEnabledLoader = ImageLoader.Builder(context) + .components { + if (SDK_INT >= 28) { + add(ImageDecoderDecoder.Factory()) + } else { + add(GifDecoder.Factory()) + } + } + .build() + binding.imageView.load(src, gifEnabledLoader) binding.imageView.visibility = VISIBLE binding.composeViewImage.visibility = GONE }