diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 33177705..4529a90e 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -52,8 +52,8 @@ dependencies { implementation(libs.androidx.compose.runtime) implementation(libs.androidx.compose.ui.text) implementation(libs.androidx.core) - implementation(libs.coil) - implementation(libs.coil.compose) + implementation(libs.coil3.compose) + implementation(libs.coil3.network.okhttp) implementation(libs.compose.richtext.markdown) implementation(libs.compose.richtext.material3) implementation(libs.compose.richtext.ui) diff --git a/common/src/main/kotlin/dev/msfjarvis/claw/common/injection/CoilAppPlugin.kt b/common/src/main/kotlin/dev/msfjarvis/claw/common/injection/CoilAppPlugin.kt index fef80828..a8d7d06b 100644 --- a/common/src/main/kotlin/dev/msfjarvis/claw/common/injection/CoilAppPlugin.kt +++ b/common/src/main/kotlin/dev/msfjarvis/claw/common/injection/CoilAppPlugin.kt @@ -1,5 +1,5 @@ /* - * Copyright © 2022 Harsh Shandilya. + * Copyright © 2022-2024 Harsh Shandilya. * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE file or at * https://opensource.org/licenses/MIT. @@ -7,10 +7,12 @@ package dev.msfjarvis.claw.common.injection import android.app.Application -import coil.Coil -import coil.ImageLoader -import coil.disk.DiskCache -import coil.memory.MemoryCache +import coil3.ImageLoader +import coil3.SingletonImageLoader +import coil3.disk.DiskCache +import coil3.disk.directory +import coil3.memory.MemoryCache +import coil3.request.crossfade import com.deliveryhero.whetstone.app.ApplicationScope import com.squareup.anvil.annotations.ContributesMultibinding import dev.msfjarvis.claw.core.injection.AppPlugin @@ -19,9 +21,11 @@ import javax.inject.Inject @ContributesMultibinding(ApplicationScope::class) class CoilAppPlugin @Inject constructor() : AppPlugin { override fun apply(application: Application) { - Coil.setImageLoader { + SingletonImageLoader.setSafe { ImageLoader.Builder(application) - .memoryCache { MemoryCache.Builder(application).maxSizePercent(MEMORY_CACHE_RATIO).build() } + .memoryCache { + MemoryCache.Builder().maxSizePercent(application, MEMORY_CACHE_RATIO).build() + } .diskCache { DiskCache.Builder() .directory(application.cacheDir.resolve("image_cache")) diff --git a/common/src/main/kotlin/dev/msfjarvis/claw/common/ui/NetworkImage.kt b/common/src/main/kotlin/dev/msfjarvis/claw/common/ui/NetworkImage.kt index b4b7d5a0..99a3ff75 100644 --- a/common/src/main/kotlin/dev/msfjarvis/claw/common/ui/NetworkImage.kt +++ b/common/src/main/kotlin/dev/msfjarvis/claw/common/ui/NetworkImage.kt @@ -1,5 +1,5 @@ /* - * Copyright © 2021-2023 Harsh Shandilya. + * Copyright © 2021-2024 Harsh Shandilya. * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE file or at * https://opensource.org/licenses/MIT. @@ -12,7 +12,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.RenderVectorGroup import androidx.compose.ui.graphics.vector.rememberVectorPainter -import coil.compose.AsyncImage +import coil3.compose.AsyncImage @Composable internal fun NetworkImage( diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1cb9761e..de77e4e4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,7 +4,7 @@ agp = "8.7.2" android-junit5 = "1.11.2.0" androidx-test = "1.6.1" benchmark = "1.4.0-alpha04" -coil = "2.7.0" +coil3 = "3.0.0" coroutines = "1.9.0" dagger = "2.52" glance = "1.0.0" @@ -69,8 +69,9 @@ build-semver = "com.github.zafarkhaja:java-semver:0.10.2" build-sentry = "io.sentry.android.gradle:io.sentry.android.gradle.gradle.plugin:4.13.0" build-spotless = "com.diffplug.spotless:spotless-plugin-gradle:7.0.0.BETA4" build-vcu = "nl.littlerobots.version-catalog-update:nl.littlerobots.version-catalog-update.gradle.plugin:0.8.5" -coil = { module = "io.coil-kt:coil", version.ref = "coil" } -coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } +coil3 = { module = "io.coil-kt.coil3:coil", version.ref = "coil3" } +coil3-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil3" } +coil3-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil3" } compose-richtext-markdown = { module = "com.halilibo.compose-richtext:richtext-commonmark", version.ref = "richtext" } compose-richtext-material3 = { module = "com.halilibo.compose-richtext:richtext-ui-material3", version.ref = "richtext" } compose-richtext-ui = { module = "com.halilibo.compose-richtext:richtext-ui", version.ref = "richtext" }