Reimplement network helper injector

This commit is contained in:
Jobobby04 2020-06-11 22:43:29 -04:00
parent b90a2ab22d
commit b745a74e1f
2 changed files with 26 additions and 6 deletions

View File

@ -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()

View File

@ -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<NetworkHelper>()
object : NetworkHelper(Injekt.get<Application>()) {
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.