Clean up NetworkHelper
(cherry picked from commit e0733c1a4cef28cf413ca79597ba5ad739b5328a) # Conflicts: # core/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt
This commit is contained in:
parent
ef343107fe
commit
8062cb8f6f
@ -13,62 +13,55 @@ import java.util.concurrent.TimeUnit
|
|||||||
|
|
||||||
/* SY --> */
|
/* SY --> */
|
||||||
open /* SY <-- */ class NetworkHelper(
|
open /* SY <-- */ class NetworkHelper(
|
||||||
context: Context,
|
private val context: Context,
|
||||||
private val preferences: NetworkPreferences,
|
private val preferences: NetworkPreferences,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
private val cacheDir = File(context.cacheDir, "network_cache")
|
/* SY --> */
|
||||||
private val cacheSize = 5L * 1024 * 1024 // 5 MiB
|
open /* SY <-- */val cookieJar by lazy { AndroidCookieJar() }
|
||||||
|
|
||||||
/* SY --> */
|
/* SY --> */
|
||||||
open /* SY <-- */val cookieJar = AndroidCookieJar()
|
open /* SY <-- */val client by lazy {
|
||||||
|
val builder = OkHttpClient.Builder()
|
||||||
|
.cookieJar(cookieJar)
|
||||||
|
.connectTimeout(30, TimeUnit.SECONDS)
|
||||||
|
.readTimeout(30, TimeUnit.SECONDS)
|
||||||
|
.callTimeout(2, TimeUnit.MINUTES)
|
||||||
|
.cache(
|
||||||
|
Cache(
|
||||||
|
directory = File(context.cacheDir, "network_cache"),
|
||||||
|
maxSize = 5L * 1024 * 1024, // 5 MiB
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.addInterceptor(UncaughtExceptionInterceptor())
|
||||||
|
.addInterceptor(UserAgentInterceptor(::defaultUserAgentProvider))
|
||||||
|
|
||||||
private val userAgentInterceptor by lazy {
|
if (BuildConfig.DEBUG) {
|
||||||
UserAgentInterceptor(::defaultUserAgentProvider)
|
val httpLoggingInterceptor = HttpLoggingInterceptor().apply {
|
||||||
}
|
level = HttpLoggingInterceptor.Level.HEADERS
|
||||||
private val cloudflareInterceptor by lazy {
|
|
||||||
CloudflareInterceptor(context, cookieJar, ::defaultUserAgentProvider)
|
|
||||||
}
|
|
||||||
|
|
||||||
private val baseClientBuilder: OkHttpClient.Builder
|
|
||||||
get() {
|
|
||||||
val builder = OkHttpClient.Builder()
|
|
||||||
.cookieJar(cookieJar)
|
|
||||||
.connectTimeout(30, TimeUnit.SECONDS)
|
|
||||||
.readTimeout(30, TimeUnit.SECONDS)
|
|
||||||
.callTimeout(2, TimeUnit.MINUTES)
|
|
||||||
.addInterceptor(UncaughtExceptionInterceptor())
|
|
||||||
.addInterceptor(userAgentInterceptor)
|
|
||||||
|
|
||||||
if (BuildConfig.DEBUG) {
|
|
||||||
val httpLoggingInterceptor = HttpLoggingInterceptor().apply {
|
|
||||||
level = HttpLoggingInterceptor.Level.HEADERS
|
|
||||||
}
|
|
||||||
builder.addNetworkInterceptor(httpLoggingInterceptor)
|
|
||||||
}
|
}
|
||||||
|
builder.addNetworkInterceptor(httpLoggingInterceptor)
|
||||||
builder.addInterceptor(cloudflareInterceptor)
|
|
||||||
|
|
||||||
when (preferences.dohProvider().get()) {
|
|
||||||
PREF_DOH_CLOUDFLARE -> builder.dohCloudflare()
|
|
||||||
PREF_DOH_GOOGLE -> builder.dohGoogle()
|
|
||||||
PREF_DOH_ADGUARD -> builder.dohAdGuard()
|
|
||||||
PREF_DOH_QUAD9 -> builder.dohQuad9()
|
|
||||||
PREF_DOH_ALIDNS -> builder.dohAliDNS()
|
|
||||||
PREF_DOH_DNSPOD -> builder.dohDNSPod()
|
|
||||||
PREF_DOH_360 -> builder.doh360()
|
|
||||||
PREF_DOH_QUAD101 -> builder.dohQuad101()
|
|
||||||
PREF_DOH_MULLVAD -> builder.dohMullvad()
|
|
||||||
PREF_DOH_CONTROLD -> builder.dohControlD()
|
|
||||||
PREF_DOH_NJALLA -> builder.dohNajalla()
|
|
||||||
PREF_DOH_SHECAN -> builder.dohShecan()
|
|
||||||
}
|
|
||||||
|
|
||||||
return builder
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SY --> */
|
builder.addInterceptor(CloudflareInterceptor(context, cookieJar, ::defaultUserAgentProvider))
|
||||||
open /* SY <-- */val client by lazy { baseClientBuilder.cache(Cache(cacheDir, cacheSize)).build() }
|
|
||||||
|
when (preferences.dohProvider().get()) {
|
||||||
|
PREF_DOH_CLOUDFLARE -> builder.dohCloudflare()
|
||||||
|
PREF_DOH_GOOGLE -> builder.dohGoogle()
|
||||||
|
PREF_DOH_ADGUARD -> builder.dohAdGuard()
|
||||||
|
PREF_DOH_QUAD9 -> builder.dohQuad9()
|
||||||
|
PREF_DOH_ALIDNS -> builder.dohAliDNS()
|
||||||
|
PREF_DOH_DNSPOD -> builder.dohDNSPod()
|
||||||
|
PREF_DOH_360 -> builder.doh360()
|
||||||
|
PREF_DOH_QUAD101 -> builder.dohQuad101()
|
||||||
|
PREF_DOH_MULLVAD -> builder.dohMullvad()
|
||||||
|
PREF_DOH_CONTROLD -> builder.dohControlD()
|
||||||
|
PREF_DOH_NJALLA -> builder.dohNajalla()
|
||||||
|
PREF_DOH_SHECAN -> builder.dohShecan()
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.build()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated Since extension-lib 1.5
|
* @deprecated Since extension-lib 1.5
|
||||||
@ -76,9 +69,7 @@ open /* SY <-- */ class NetworkHelper(
|
|||||||
@Deprecated("The regular client handles Cloudflare by default")
|
@Deprecated("The regular client handles Cloudflare by default")
|
||||||
@Suppress("UNUSED")
|
@Suppress("UNUSED")
|
||||||
/* SY --> */
|
/* SY --> */
|
||||||
open /* SY <-- */val cloudflareClient by lazy {
|
open /* SY <-- */val cloudflareClient by lazy { client }
|
||||||
client
|
|
||||||
}
|
|
||||||
|
|
||||||
fun defaultUserAgentProvider() = preferences.defaultUserAgent().get().trim()
|
fun defaultUserAgentProvider() = preferences.defaultUserAgent().get().trim()
|
||||||
}
|
}
|
||||||
|
@ -45,11 +45,9 @@ abstract class HttpSource : CatalogueSource {
|
|||||||
.maybeInjectEHLogger()
|
.maybeInjectEHLogger()
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
|
@Deprecated("The regular client handles Cloudflare by default")
|
||||||
override val cloudflareClient: OkHttpClient
|
override val cloudflareClient: OkHttpClient
|
||||||
get() = delegate?.networkCloudflareClient ?: network.cloudflareClient
|
get() = delegate?.networkHttpClient ?: client
|
||||||
.newBuilder()
|
|
||||||
.maybeInjectEHLogger()
|
|
||||||
.build()
|
|
||||||
|
|
||||||
override val cookieJar: AndroidCookieJar
|
override val cookieJar: AndroidCookieJar
|
||||||
get() = network.cookieJar
|
get() = network.cookieJar
|
||||||
|
@ -134,7 +134,6 @@ abstract class DelegatedHttpSource(val delegate: HttpSource) : HttpSource() {
|
|||||||
*/
|
*/
|
||||||
open val baseHttpClient: OkHttpClient? = null
|
open val baseHttpClient: OkHttpClient? = null
|
||||||
open val networkHttpClient: OkHttpClient get() = network.client
|
open val networkHttpClient: OkHttpClient get() = network.client
|
||||||
open val networkCloudflareClient: OkHttpClient get() = network.cloudflareClient
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Visible name of the source.
|
* Visible name of the source.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user