diff --git a/app/build.gradle b/app/build.gradle index cb87e74..2d278bd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -94,6 +94,7 @@ dependencies { implementation libs.androidx.room.paging implementation libs.androidx.room.runtime implementation libs.coil.svg + implementation libs.coil.network.okhttp implementation libs.dagger.hiltAndroid implementation libs.gson implementation libs.okhttp.loggingIntercepter diff --git a/app/src/main/java/com/navi/uitron/demo/MainApplication.kt b/app/src/main/java/com/navi/uitron/demo/MainApplication.kt index 0584779..39e80d3 100644 --- a/app/src/main/java/com/navi/uitron/demo/MainApplication.kt +++ b/app/src/main/java/com/navi/uitron/demo/MainApplication.kt @@ -11,16 +11,18 @@ import android.app.Application import androidx.media3.database.StandaloneDatabaseProvider import androidx.media3.datasource.cache.LeastRecentlyUsedCacheEvictor import androidx.media3.datasource.cache.SimpleCache -import coil.ImageLoader -import coil.ImageLoaderFactory -import coil.decode.SvgDecoder +import coil3.ImageLoader +import coil3.PlatformContext +import coil3.SingletonImageLoader +import coil3.request.allowHardware +import coil3.svg.SvgDecoder import com.navi.uitron.UiTronSdkManager import com.navi.uitron.demo.dazzledesignsystem.db.SharedPreferences import dagger.hilt.android.HiltAndroidApp import java.io.File @HiltAndroidApp -class MainApplication : Application(), ImageLoaderFactory { +class MainApplication : Application(), SingletonImageLoader.Factory { internal val media3SimpleCache by lazy { val downloadContentDirectory = File(this.getExternalFilesDir(null), "downloads") @@ -42,7 +44,7 @@ class MainApplication : Application(), ImageLoaderFactory { lateinit var instance: MainApplication } - override fun newImageLoader(): ImageLoader { + override fun newImageLoader(context: PlatformContext): ImageLoader { return ImageLoader.Builder(this.applicationContext) .components { add(SvgDecoder.Factory()) } .allowHardware(false) diff --git a/app/src/main/java/com/navi/uitron/demo/designsystem/ui/DesignSystemScreen.kt b/app/src/main/java/com/navi/uitron/demo/designsystem/ui/DesignSystemScreen.kt index d2453d1..732fa94 100644 --- a/app/src/main/java/com/navi/uitron/demo/designsystem/ui/DesignSystemScreen.kt +++ b/app/src/main/java/com/navi/uitron/demo/designsystem/ui/DesignSystemScreen.kt @@ -24,8 +24,8 @@ import androidx.compose.ui.unit.sp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension import androidx.navigation.NavHostController -import coil.compose.AsyncImage -import coil.request.ImageRequest +import coil3.compose.AsyncImage +import coil3.request.ImageRequest import com.navi.uitron.demo.designsystem.model.DesignItem import com.navi.uitron.demo.designsystem.viewmodel.DesignSystemVM import com.navi.uitron.demo.font.naviFontFamily diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 15247eb..dc870bb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -accompanist-pager = "0.28.0" +accompanist-pager = "0.36.0" androidGradlePlugin = "8.10.1" android-material = "1.9.0" androidx-activityCompose = "1.10.0" @@ -14,7 +14,7 @@ androidx-pagingRuntimeKtx = "3.3.5" androidx-profileinstaller = "1.3.1" androidx-test-espresso = "3.5.1" androidx-test-junit = "1.1.5" -coil = "2.5.0" +coil = "3.2.0" compose-bom = "2025.05.01" firebase-bom = "33.15.0" gson = "2.11.0" @@ -77,8 +77,9 @@ androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = " androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-test-espresso" } androidx-test-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-test-junit" } -coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } -coil-svg = { module = "io.coil-kt:coil-svg", version.ref = "coil" } +coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" } +coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" } +coil-svg = { module = "io.coil-kt.coil3:coil-svg", version.ref = "coil" } dagger-hiltAndroid = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } dagger-hiltCompiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } diff --git a/navi-uitron/build.gradle b/navi-uitron/build.gradle index 3a28c05..a04f4d2 100644 --- a/navi-uitron/build.gradle +++ b/navi-uitron/build.gradle @@ -89,6 +89,7 @@ dependencies { api libs.androidx.media3.exoplayer api libs.androidx.media3.ui api libs.coil.compose + api libs.coil.network.okhttp api libs.guava implementation platform(libs.androidx.compose.bom) diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/ImageRenderer.kt b/navi-uitron/src/main/java/com/navi/uitron/render/ImageRenderer.kt index 609dd55..0abf7de 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/ImageRenderer.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/ImageRenderer.kt @@ -23,9 +23,10 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.layoutId import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.painterResource -import coil.compose.AsyncImage -import coil.compose.AsyncImagePainter -import coil.request.ImageRequest +import coil3.compose.AsyncImage +import coil3.compose.AsyncImagePainter +import coil3.request.ImageRequest +import coil3.request.allowHardware import com.navi.uitron.UiTronSdkManager import com.navi.uitron.helpers.animationHelper.createAnimationProperty import com.navi.uitron.model.action.MvelAction diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/ScratchCardRenderer.kt b/navi-uitron/src/main/java/com/navi/uitron/render/ScratchCardRenderer.kt index 134c026..5570852 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/ScratchCardRenderer.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/ScratchCardRenderer.kt @@ -45,10 +45,11 @@ import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.IntSize import androidx.core.graphics.drawable.toBitmap -import coil.compose.AsyncImagePainter -import coil.compose.rememberAsyncImagePainter -import coil.request.ImageRequest -import coil.size.Size +import coil3.compose.AsyncImagePainter +import coil3.compose.rememberAsyncImagePainter +import coil3.request.ImageRequest +import coil3.size.Size +import coil3.toBitmap import com.navi.uitron.UiTronSdkManager import com.navi.uitron.model.action.MvelAction import com.navi.uitron.model.data.ScratchCardData @@ -175,7 +176,7 @@ class ScratchCardRenderer( job?.cancel() if (showingPlaceHolderImage.not()) { overlayImage = - state.result.drawable + state.result.image .toBitmap() .copy(Bitmap.Config.ARGB_8888, true) .asImageBitmap()