From b745a74e1f3bd2a30bba1c5cdf50790aabff0e02 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Thu, 11 Jun 2020 22:43:29 -0400 Subject: [PATCH] Reimplement network helper injector --- .../kanade/tachiyomi/network/NetworkHelper.kt | 8 +++---- .../tachiyomi/source/online/HttpSource.kt | 24 +++++++++++++++++-- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt index 49455ef78..a435eae08 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt @@ -6,22 +6,22 @@ import java.util.concurrent.TimeUnit import okhttp3.Cache import okhttp3.OkHttpClient -class NetworkHelper(context: Context) { +open class NetworkHelper(context: Context) { private val cacheDir = File(context.cacheDir, "network_cache") private val cacheSize = 5L * 1024 * 1024 // 5 MiB - val cookieManager = AndroidCookieJar() + open val cookieManager = AndroidCookieJar() - val client = OkHttpClient.Builder() + open val client = OkHttpClient.Builder() .cookieJar(cookieManager) .cache(Cache(cacheDir, cacheSize)) .connectTimeout(30, TimeUnit.SECONDS) .readTimeout(30, TimeUnit.SECONDS) .build() - val cloudflareClient = client.newBuilder() + open val cloudflareClient = client.newBuilder() .addInterceptor(UserAgentInterceptor()) .addInterceptor(CloudflareInterceptor(context)) .build() diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt index cf1429018..236e8551d 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt @@ -1,6 +1,8 @@ package eu.kanade.tachiyomi.source.online +import android.app.Application import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.network.AndroidCookieJar import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.NetworkHelper import eu.kanade.tachiyomi.network.asObservableSuccess @@ -11,6 +13,7 @@ import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga +import exh.patch.injectPatches import exh.source.DelegatedHttpSource import java.net.URI import java.net.URISyntaxException @@ -22,7 +25,6 @@ import okhttp3.Response import rx.Observable import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -import uy.kohesive.injekt.injectLazy /** * A simple implementation for sources from a website. @@ -32,7 +34,25 @@ abstract class HttpSource : CatalogueSource { /** * Network service. */ - protected val network: NetworkHelper by injectLazy() + protected val network: NetworkHelper by lazy { + val original = Injekt.get() + object : NetworkHelper(Injekt.get()) { + override val client: OkHttpClient + get() = delegate?.networkHttpClient ?: original.client + .newBuilder() + .injectPatches { id } + .build() + + override val cloudflareClient: OkHttpClient + get() = delegate?.networkCloudflareClient ?: original.cloudflareClient + .newBuilder() + .injectPatches { id } + .build() + + override val cookieManager: AndroidCookieJar + get() = original.cookieManager + } + } // /** // * Preferences that a source may need.