From 96a0062ff3b6be13220d21dac87f00901111e05a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 13 May 2026 15:59:05 -0600 Subject: [PATCH 1/2] Test coil with ktor --- .../cloudstream3/utils/ImageModuleCoil.kt | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/ImageModuleCoil.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/ImageModuleCoil.kt index 9d5c75289c8..670801dd877 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/ImageModuleCoil.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/ImageModuleCoil.kt @@ -17,7 +17,7 @@ import coil3.load import coil3.memory.MemoryCache import coil3.network.NetworkHeaders import coil3.network.httpHeaders -import coil3.network.okhttp.OkHttpNetworkFetcherFactory +import coil3.network.ktor3.KtorNetworkFetcherFactory import coil3.request.CachePolicy import coil3.request.ErrorResult import coil3.request.ImageRequest @@ -26,8 +26,7 @@ import coil3.request.crossfade import coil3.util.DebugLogger import com.lagradost.cloudstream3.BuildConfig import com.lagradost.cloudstream3.USER_AGENT -import com.lagradost.cloudstream3.network.buildDefaultClient -import okhttp3.HttpUrl +import com.lagradost.cloudstream3.network.buildDefaultKtorClient import okio.Path.Companion.toOkioPath import java.io.File import java.nio.ByteBuffer @@ -54,7 +53,7 @@ object ImageLoader { } /** Pass interceptors with care, unnecessary passing tokens to servers or image hosting services causes unauthorized exceptions **/ - .components { add(OkHttpNetworkFetcherFactory(callFactory = { buildDefaultClient(context) })) } + .components { add(KtorNetworkFetcherFactory(httpClient = { buildDefaultKtorClient(context) })) } .also { it.setupCoilLogger() Log.d(TAG, "buildImageLoader: Setting COIL Image Loader.") @@ -138,12 +137,6 @@ object ImageLoader { builder: ImageRequest.Builder.() -> Unit = {} ) = loadImageInternal(imageData = imageData, headers = headers, builder = builder) - fun ImageView.loadImage( - imageData: HttpUrl?, - headers: Map? = null, - builder: ImageRequest.Builder.() -> Unit = {} - ) = loadImageInternal(imageData = imageData, headers = headers, builder = builder) - fun ImageView.loadImage( imageData: File?, builder: ImageRequest.Builder.() -> Unit = {} @@ -173,4 +166,4 @@ object ImageLoader { imageData: ByteBuffer?, builder: ImageRequest.Builder.() -> Unit = {} ) = loadImageInternal(imageData = imageData, builder = builder) -} \ No newline at end of file +} From 0fbb83e6da2548744b326a749d4e43d1afc9ef68 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 13 May 2026 16:00:28 -0600 Subject: [PATCH 2/2] Update --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2857464a6d9..f1ff5ede09d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -64,7 +64,7 @@ annotation = { module = "androidx.annotation:annotation", version.ref = "annotat appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } biometric = { module = "androidx.biometric:biometric", version.ref = "biometric" } coil = { module = "io.coil-kt.coil3:coil", version.ref = "coil" } -coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" } +coil-network-ktor3 = { module = "io.coil-kt.coil3:coil-network-ktor3", version.ref = "coil" } colorpicker = { module = "com.github.recloudstream:color-picker-android", version.ref = "colorpicker" } conscrypt-android = { module = "org.conscrypt:conscrypt-android", version.ref = "conscryptAndroid" } constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" } @@ -129,7 +129,7 @@ kotlin-jvm = { id = "org.jetbrains.kotlin.jvm" , version.ref = "kotlinGradlePlug kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlinGradlePlugin" } [bundles] -coil = ["coil", "coil-network-okhttp"] +coil = ["coil", "coil-network-ktor3"] lifecycle = ["lifecycle-livedata-ktx", "lifecycle-viewmodel-ktx"] media3 = ["media3-cast", "media3-common", "media3-container", "media3-datasource-cronet", "media3-datasource-okhttp", "media3-exoplayer", "media3-exoplayer-dash", "media3-exoplayer-hls", "media3-session", "media3-ui"] navigation = ["navigation-fragment-ktx", "navigation-ui-ktx"]