From 0d784ed55bb833d5eb7542bb02210e0e0079ee55 Mon Sep 17 00:00:00 2001 From: oxmc <67136658+oxmc@users.noreply.github.com> Date: Wed, 15 Jul 2026 15:54:10 -0700 Subject: [PATCH] Migrate to Coil 3.5.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The tree pins prebuilt_libs_coil at 3.5.0 (coil3.* packages); move the three image-loading screens to coil3.compose and add coil-network-okhttp — Coil 3 core ships no network fetcher, so http(s) image URLs need it (it self-registers through ServiceLoader). Gradle catalog bumped to the matching io.coil-kt.coil3 coordinates. --- Android.bp | 7 +++++-- app/build.gradle.kts | 3 ++- .../dev/oxmc/setupwizard/ui/screens/DeviceInfoScreen.kt | 4 ++-- .../oxmc/setupwizard/ui/screens/DeviceInfoScreenDebug.kt | 4 ++-- .../oxmc/setupwizard/ui/screens/wizard/OTAUpdateScreen.kt | 4 ++-- gradle/libs.versions.toml | 7 ++++--- 6 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Android.bp b/Android.bp index 286a78f..2d96c31 100644 --- a/Android.bp +++ b/Android.bp @@ -64,8 +64,11 @@ android_app { // Gradle-only; defining an import here would collide with that module) "android-device-info", - // Images — prebuilts/application_libs/coil (pulls okhttp3/okio/ - // coroutines transitively via the import's static_libs) + // Images — Coil 3 from prebuilts/application_libs/coil. The network + // module is mandatory for http(s) image URLs (Coil 3 core ships no + // fetcher; the okhttp one self-registers via ServiceLoader) and pulls + // okhttp3/okio/coroutines transitively via the import's static_libs. "coil-compose", + "coil-network-okhttp", ], } diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 56e9378..1a692ca 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -55,9 +55,10 @@ dependencies { implementation(libs.androidx.material3) implementation(libs.androidx.appcompat) - // Coil (images) + // Coil 3 (images) — the network module is required for http(s) URLs implementation(libs.coil.compose) implementation(libs.coil.svg) + implementation(libs.coil.network.okhttp) // OkHttp (networking) implementation(libs.okhttp) diff --git a/app/src/main/java/dev/oxmc/setupwizard/ui/screens/DeviceInfoScreen.kt b/app/src/main/java/dev/oxmc/setupwizard/ui/screens/DeviceInfoScreen.kt index 1e06b4d..faf873f 100644 --- a/app/src/main/java/dev/oxmc/setupwizard/ui/screens/DeviceInfoScreen.kt +++ b/app/src/main/java/dev/oxmc/setupwizard/ui/screens/DeviceInfoScreen.kt @@ -42,8 +42,8 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import coil.compose.AsyncImage -import coil.compose.rememberAsyncImagePainter +import coil3.compose.AsyncImage +import coil3.compose.rememberAsyncImagePainter import dev.oxmc.androiddeviceinfo.AndroidInfo import me.pawlet.setupwizard.ui.theme.BrandColors diff --git a/app/src/main/java/dev/oxmc/setupwizard/ui/screens/DeviceInfoScreenDebug.kt b/app/src/main/java/dev/oxmc/setupwizard/ui/screens/DeviceInfoScreenDebug.kt index 289133d..4eddc2f 100644 --- a/app/src/main/java/dev/oxmc/setupwizard/ui/screens/DeviceInfoScreenDebug.kt +++ b/app/src/main/java/dev/oxmc/setupwizard/ui/screens/DeviceInfoScreenDebug.kt @@ -39,8 +39,8 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import coil.compose.AsyncImagePainter -import coil.compose.rememberAsyncImagePainter +import coil3.compose.AsyncImagePainter +import coil3.compose.rememberAsyncImagePainter import dev.oxmc.androiddeviceinfo.AndroidInfo import dev.oxmc.androiddeviceinfo.DeviceInfo import me.pawlet.setupwizard.R diff --git a/app/src/main/java/dev/oxmc/setupwizard/ui/screens/wizard/OTAUpdateScreen.kt b/app/src/main/java/dev/oxmc/setupwizard/ui/screens/wizard/OTAUpdateScreen.kt index 28c28eb..2c87112 100644 --- a/app/src/main/java/dev/oxmc/setupwizard/ui/screens/wizard/OTAUpdateScreen.kt +++ b/app/src/main/java/dev/oxmc/setupwizard/ui/screens/wizard/OTAUpdateScreen.kt @@ -44,8 +44,8 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import coil.compose.AsyncImage -import coil.compose.rememberAsyncImagePainter +import coil3.compose.AsyncImage +import coil3.compose.rememberAsyncImagePainter import me.pawlet.setupwizard.lib.OTAInfoCard import me.pawlet.setupwizard.lib.OTAUpdateInfo diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f8490a6..3802a95 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ coreKtx = "1.17.0" lifecycleRuntimeKtx = "2.6.1" activityCompose = "1.8.0" composeBom = "2024.09.00" -coil = "2.7.0" +coil = "3.5.0" okhttp = "4.12.0" splashscreen = "1.0.1" gson = "2.11.0" @@ -26,8 +26,9 @@ androidx-material3 = { group = "androidx.compose.material3", name = "material3" androidx-material = { group = "com.google.android.material", name = "material", version.ref = "material" } androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } -coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" } -coil-svg = { group = "io.coil-kt", name = "coil-svg", version.ref = "coil" } +coil-compose = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil" } +coil-svg = { group = "io.coil-kt.coil3", name = "coil-svg", version.ref = "coil" } +coil-network-okhttp = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coil" } okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" } okhttp-logging = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp" } androidx-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "splashscreen" }