refactor: migrate to Coil3

This commit is contained in:
Harsh Shandilya 2024-11-05 13:09:47 +05:30
parent e7e060e324
commit b24a180780
4 changed files with 19 additions and 14 deletions

View file

@ -52,8 +52,8 @@ dependencies {
implementation(libs.androidx.compose.runtime) implementation(libs.androidx.compose.runtime)
implementation(libs.androidx.compose.ui.text) implementation(libs.androidx.compose.ui.text)
implementation(libs.androidx.core) implementation(libs.androidx.core)
implementation(libs.coil) implementation(libs.coil3.compose)
implementation(libs.coil.compose) implementation(libs.coil3.network.okhttp)
implementation(libs.compose.richtext.markdown) implementation(libs.compose.richtext.markdown)
implementation(libs.compose.richtext.material3) implementation(libs.compose.richtext.material3)
implementation(libs.compose.richtext.ui) implementation(libs.compose.richtext.ui)

View file

@ -1,5 +1,5 @@
/* /*
* Copyright © 2022 Harsh Shandilya. * Copyright © 2022-2024 Harsh Shandilya.
* Use of this source code is governed by an MIT-style * Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
@ -7,10 +7,12 @@
package dev.msfjarvis.claw.common.injection package dev.msfjarvis.claw.common.injection
import android.app.Application import android.app.Application
import coil.Coil import coil3.ImageLoader
import coil.ImageLoader import coil3.SingletonImageLoader
import coil.disk.DiskCache import coil3.disk.DiskCache
import coil.memory.MemoryCache import coil3.disk.directory
import coil3.memory.MemoryCache
import coil3.request.crossfade
import com.deliveryhero.whetstone.app.ApplicationScope import com.deliveryhero.whetstone.app.ApplicationScope
import com.squareup.anvil.annotations.ContributesMultibinding import com.squareup.anvil.annotations.ContributesMultibinding
import dev.msfjarvis.claw.core.injection.AppPlugin import dev.msfjarvis.claw.core.injection.AppPlugin
@ -19,9 +21,11 @@ import javax.inject.Inject
@ContributesMultibinding(ApplicationScope::class) @ContributesMultibinding(ApplicationScope::class)
class CoilAppPlugin @Inject constructor() : AppPlugin { class CoilAppPlugin @Inject constructor() : AppPlugin {
override fun apply(application: Application) { override fun apply(application: Application) {
Coil.setImageLoader { SingletonImageLoader.setSafe {
ImageLoader.Builder(application) ImageLoader.Builder(application)
.memoryCache { MemoryCache.Builder(application).maxSizePercent(MEMORY_CACHE_RATIO).build() } .memoryCache {
MemoryCache.Builder().maxSizePercent(application, MEMORY_CACHE_RATIO).build()
}
.diskCache { .diskCache {
DiskCache.Builder() DiskCache.Builder()
.directory(application.cacheDir.resolve("image_cache")) .directory(application.cacheDir.resolve("image_cache"))

View file

@ -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 * Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * 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.ImageVector
import androidx.compose.ui.graphics.vector.RenderVectorGroup import androidx.compose.ui.graphics.vector.RenderVectorGroup
import androidx.compose.ui.graphics.vector.rememberVectorPainter import androidx.compose.ui.graphics.vector.rememberVectorPainter
import coil.compose.AsyncImage import coil3.compose.AsyncImage
@Composable @Composable
internal fun NetworkImage( internal fun NetworkImage(

View file

@ -4,7 +4,7 @@ agp = "8.7.2"
android-junit5 = "1.11.2.0" android-junit5 = "1.11.2.0"
androidx-test = "1.6.1" androidx-test = "1.6.1"
benchmark = "1.4.0-alpha04" benchmark = "1.4.0-alpha04"
coil = "2.7.0" coil3 = "3.0.0"
coroutines = "1.9.0" coroutines = "1.9.0"
dagger = "2.52" dagger = "2.52"
glance = "1.0.0" 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-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-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" 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" } coil3 = { module = "io.coil-kt.coil3:coil", version.ref = "coil3" }
coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } 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-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-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" } compose-richtext-ui = { module = "com.halilibo.compose-richtext:richtext-ui", version.ref = "richtext" }