Skip to content

Commit

Permalink
Register coil components manually and update to coil 3.0.0-alpha03
Browse files Browse the repository at this point in the history
  • Loading branch information
DRSchlaubi committed Jan 31, 2024
1 parent 5a12d8d commit 143ad49
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

package dev.schlaubi.tonbrett.app

import android.os.Build
import coil3.ComponentRegistry
import coil3.decode.BitmapFactoryDecoder
import coil3.gif.GifDecoder
import coil3.svg.SvgDecoder

internal actual fun ComponentRegistry.Builder.addPlatformComponents() {}
internal actual fun ComponentRegistry.Builder.addPlatformComponents() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
add(BitmapFactoryDecoder.Factory())
} else {
add(GifDecoder.Factory())
}
add(SvgDecoder.Factory())
}
3 changes: 2 additions & 1 deletion app/shared/src/commonMain/kotlin/ImageLoader.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.Modifier
import coil3.ComponentRegistry
import coil3.ImageLoader
import coil3.annotation.ExperimentalCoilApi
import coil3.compose.AsyncImagePainter
import coil3.compose.LocalPlatformContext
import coil3.compose.rememberAsyncImagePainter
import coil3.disk.DiskCache
import coil3.memory.MemoryCache
import coil3.network.ktor.KtorNetworkFetcherFactory
import coil3.request.ImageRequest
import coil3.request.crossfade
import dev.schlaubi.tonbrett.app.api.AppContext
Expand Down Expand Up @@ -57,6 +57,7 @@ private fun OptionalWebImageInternal(url: String?, contentDescription: String?,
}

fun newImageLoader(appContext: AppContext): ImageLoader = ImageLoader.Builder(appContext.platformContext).components {
add(KtorNetworkFetcherFactory())
addPlatformComponents()
}.memoryCache {
MemoryCache.Builder()
Expand Down
5 changes: 4 additions & 1 deletion app/shared/src/skiaMain/kotlin/ImageLoader.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
package dev.schlaubi.tonbrett.app

import coil3.ComponentRegistry
import coil3.decode.SkiaImageDecoder
import kotlin.jvm.JvmName

internal actual fun ComponentRegistry.Builder.addPlatformComponents() {}
internal actual fun ComponentRegistry.Builder.addPlatformComponents() {
add(SkiaImageDecoder.Factory())
}
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ plugins {

allprojects {
group = "dev.schlaubi.tonbrett"
version = "1.18.8"
version = "1.18.9"

repositories {
mavenCentral()
Expand Down
4 changes: 2 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ play-services-wearable = "18.1.0"
horologist = "0.5.10"
protobuf = "3.19.4"
compose-compiler = "1.5.8-dev-k2.0.0-Beta2-99ed868a0f8"
coil = "3.0.0-alpha02"
coil = "3.0.0-alpha03"

[libraries]
kotlinx-serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version = "1.6.2" }
Expand Down Expand Up @@ -88,7 +88,7 @@ horologist-datalayer = { group = "com.google.android.horologist", name = "horolo
coil-compose = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil" }
coil-gif = { group = "io.coil-kt.coil3", name = "coil-gif", version.ref = "coil" }
coil-svg = { group = "io.coil-kt.coil3", name = "coil-svg", version.ref = "coil" }
coil-network = { group = "io.coil-kt.coil3", name = "coil-network", version.ref = "coil" }
coil-network = { group = "io.coil-kt.coil3", name = "coil-network-ktor", version.ref = "coil" }

kotlin-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }

Expand Down

0 comments on commit 143ad49

Please sign in to comment.