diff --git a/app/build.gradle b/app/build.gradle index 1389cdc06..aad6b34d1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -262,6 +262,7 @@ dependencies { // Image loading implementation libs.coil.compose + implementation libs.coil.network.okhttp // Markdown library for Android implementation libs.markwon.core diff --git a/app/src/main/java/org/schabi/newpipe/App.kt b/app/src/main/java/org/schabi/newpipe/App.kt index 0c065f491..8501cee09 100644 --- a/app/src/main/java/org/schabi/newpipe/App.kt +++ b/app/src/main/java/org/schabi/newpipe/App.kt @@ -10,6 +10,7 @@ import androidx.core.content.getSystemService import androidx.preference.PreferenceManager import coil3.ImageLoader import coil3.SingletonImageLoader +import coil3.network.okhttp.OkHttpNetworkFetcherFactory import coil3.request.allowRgb565 import coil3.request.crossfade import coil3.util.DebugLogger @@ -123,7 +124,9 @@ open class App : .logger(if (BuildConfig.DEBUG) DebugLogger() else null) .allowRgb565(getSystemService()!!.isLowRamDevice) .crossfade(true) - .build() + .components { + add(OkHttpNetworkFetcherFactory(callFactory = DownloaderImpl.getInstance().client)) + }.build() protected open fun getDownloader(): Downloader { val downloader = DownloaderImpl.init(null) diff --git a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java index 9ddbe96df..ee5450a62 100644 --- a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java +++ b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java @@ -48,6 +48,11 @@ public final class DownloaderImpl extends Downloader { this.mCookies = new HashMap<>(); } + @NonNull + public OkHttpClient getClient() { + return client; + } + /** * It's recommended to call exactly once in the entire lifetime of the application. * diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8ff497d92..c39beb6e5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ auto-service = "1.1.1" bridge = "2.0.2" cardview = "1.0.0" checkstyle = "10.12.1" -coil = "3.0.3" +coil = "3.0.4" constraintlayout = "2.1.4" core-ktx = "1.12.0" desugar-jdk-libs-nio = "2.0.4" @@ -114,6 +114,7 @@ assertj-core = { group = "org.assertj", name = "assertj-core", version.ref = "as auto-service = { group = "com.google.auto.service", name = "auto-service-annotations", version.ref = "auto-service" } auto-service-kapt = { group = "com.google.auto.service", name = "auto-service", version.ref = "auto-service" } coil-compose = { group = "io.coil-kt.coil3", name = 'coil-compose', version.ref = "coil" } +coil-network-okhttp = { group = "io.coil-kt.coil3", name = 'coil-network-okhttp', version.ref = "coil" } desugar-jdk-libs-nio = { group = "com.android.tools", name = "desugar_jdk_libs_nio", version.ref = "desugar-jdk-libs-nio" } exoplayer-core = { group = "com.google.android.exoplayer", name = "exoplayer-core", version.ref = "exoplayer" } exoplayer-dash = { module = "com.google.android.exoplayer:exoplayer-dash", version.ref = "exoplayer" }