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 96193fe45f7..b6870900e0b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/ImageModuleCoil.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/ImageModuleCoil.kt @@ -19,7 +19,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 @@ -29,7 +29,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 com.lagradost.cloudstream3.network.buildDefaultKtorClient import okio.Path.Companion.toOkioPath import java.io.File import java.nio.ByteBuffer @@ -57,17 +57,10 @@ object ImageLoader { } /** Pass interceptors with care, unnecessary passing tokens to servers or image hosting services causes unauthorized exceptions **/ - .components { - add(OkHttpNetworkFetcherFactory(callFactory = { buildDefaultClient(context) })) - if (isBrokenHardware) { - add(BitmapFactoryDecoder.Factory()) - } // sw decoder - } - .apply { - if (isBrokenHardware) { // coil will auto choose optimal config on modern device - bitmapConfig(Bitmap.Config.ARGB_8888) - } - setupCoilLogger() + .components { add(KtorNetworkFetcherFactory(httpClient = { buildDefaultKtorClient(context) })) } + .also { + it.setupCoilLogger() + Log.d(TAG, "buildImageLoader: Setting COIL Image Loader.") } .build() } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8f25aabb476..e1375e4ae6e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -71,7 +71,7 @@ appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" biometric = { module = "androidx.biometric:biometric", version.ref = "biometric" } classgraph = { group = "io.github.classgraph", name = "classgraph", version.ref = "classgraph" } 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" } @@ -140,7 +140,7 @@ kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", 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"]