From 91e3511cb05686d30bb882851977cd2cd1325ee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20Mart=C3=ADn?= Date: Wed, 31 May 2023 16:46:58 +0200 Subject: [PATCH] Enable gif support for Coil --- gradle/libs.versions.toml | 1 + libraries/matrixui/build.gradle.kts | 1 + .../libraries/matrix/ui/media/ImageLoaderFactories.kt | 9 +++++++++ 3 files changed, 11 insertions(+) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 150f35c885..7663a06c78 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -127,6 +127,7 @@ test_appyx_junit = { module = "com.bumble.appyx:testing-junit4", version.ref = " # Others coil = { module = "io.coil-kt:coil", version.ref = "coil" } coil_compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } +coil_gif = { module = "io.coil-kt:coil-gif", version.ref = "coil" } datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "datetime" } serialization_json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization_json" } showkase = { module = "com.airbnb.android:showkase", version.ref = "showkase" } diff --git a/libraries/matrixui/build.gradle.kts b/libraries/matrixui/build.gradle.kts index 380f19f792..7302eeddfb 100644 --- a/libraries/matrixui/build.gradle.kts +++ b/libraries/matrixui/build.gradle.kts @@ -39,6 +39,7 @@ dependencies { implementation(projects.libraries.core) implementation(projects.libraries.uiStrings) implementation(libs.coil.compose) + implementation(libs.coil.gif) ksp(libs.showkase.processor) } diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderFactories.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderFactories.kt index d1fab05544..9038e03611 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderFactories.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderFactories.kt @@ -17,8 +17,11 @@ package io.element.android.libraries.matrix.ui.media import android.content.Context +import android.os.Build import coil.ImageLoader import coil.ImageLoaderFactory +import coil.decode.GifDecoder +import coil.decode.ImageDecoderDecoder import io.element.android.libraries.di.ApplicationContext import io.element.android.libraries.matrix.api.MatrixClient import okhttp3.OkHttpClient @@ -34,6 +37,12 @@ class LoggedInImageLoaderFactory @Inject constructor( .Builder(context) .okHttpClient(okHttpClient) .components { + // Add gif support + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + add(ImageDecoderDecoder.Factory()) + } else { + add(GifDecoder.Factory()) + } add(AvatarDataKeyer()) add(MediaRequestDataKeyer()) add(CoilMediaFetcher.AvatarFactory(matrixClient))