Clean up NetworkHelper

This commit is contained in:
arkon 2023-07-15 13:05:25 -04:00
parent 1cf7f9be54
commit e0733c1a4c

View File

@ -11,31 +11,26 @@ import java.io.File
import java.util.concurrent.TimeUnit
class NetworkHelper(
context: Context,
private val context: Context,
private val preferences: NetworkPreferences,
) {
private val cacheDir = File(context.cacheDir, "network_cache")
private val cacheSize = 5L * 1024 * 1024 // 5 MiB
val cookieJar by lazy { AndroidCookieJar() }
val cookieJar = AndroidCookieJar()
private val userAgentInterceptor by lazy {
UserAgentInterceptor(::defaultUserAgentProvider)
}
private val cloudflareInterceptor by lazy {
CloudflareInterceptor(context, cookieJar, ::defaultUserAgentProvider)
}
private val baseClientBuilder: OkHttpClient.Builder
get() {
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)
.addInterceptor(UserAgentInterceptor(::defaultUserAgentProvider))
if (preferences.verboseLogging().get()) {
val httpLoggingInterceptor = HttpLoggingInterceptor().apply {
@ -44,7 +39,7 @@ class NetworkHelper(
builder.addNetworkInterceptor(httpLoggingInterceptor)
}
builder.addInterceptor(cloudflareInterceptor)
builder.addInterceptor(CloudflareInterceptor(context, cookieJar, ::defaultUserAgentProvider))
when (preferences.dohProvider().get()) {
PREF_DOH_CLOUDFLARE -> builder.dohCloudflare()
@ -61,17 +56,15 @@ class NetworkHelper(
PREF_DOH_SHECAN -> builder.dohShecan()
}
return builder
builder.build()
}
val client by lazy { baseClientBuilder.cache(Cache(cacheDir, cacheSize)).build() }
/**
* @deprecated Since extension-lib 1.5
*/
@Deprecated("The regular client handles Cloudflare by default")
@Suppress("UNUSED")
val cloudflareClient = client
val cloudflareClient by lazy { client }
fun defaultUserAgentProvider() = preferences.defaultUserAgent().get().trim()
}