From 09df7cc39bf38714e487e3832cfa1b1a3fb0a8a8 Mon Sep 17 00:00:00 2001 From: tarsin Date: Wed, 12 Jul 2023 08:27:33 +0800 Subject: [PATCH] Cleanup kt style builder --- .../main/java/com/hippo/ehviewer/EhApplication.kt | 13 ++++--------- .../java/com/hippo/ehviewer/ktbuilder/Okhttp.kt | 7 +++++++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt index 737a6d2fb..c93c37158 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt +++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt @@ -26,8 +26,6 @@ import androidx.lifecycle.coroutineScope import coil.ImageLoaderFactory import coil.decode.ImageDecoderDecoder import coil.util.DebugLogger -import com.chuckerteam.chucker.api.ChuckerInterceptor -import com.google.net.cronet.okhttptransport.CronetInterceptor import com.hippo.ehviewer.client.EhCookieStore import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.client.data.GalleryDetail @@ -37,6 +35,8 @@ import com.hippo.ehviewer.dailycheck.checkDawn import com.hippo.ehviewer.dao.EhDatabase import com.hippo.ehviewer.download.DownloadManager import com.hippo.ehviewer.ktbuilder.cache +import com.hippo.ehviewer.ktbuilder.chunker +import com.hippo.ehviewer.ktbuilder.cronet import com.hippo.ehviewer.ktbuilder.diskCache import com.hippo.ehviewer.ktbuilder.httpClient import com.hippo.ehviewer.ktbuilder.imageLoader @@ -161,12 +161,7 @@ class EhApplication : Application(), ImageLoaderFactory { httpClient { cookieJar(EhCookieStore) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) dns(AsyncDns.toDns(AndroidAsyncDns.IPv4, AndroidAsyncDns.IPv6)) - addInterceptor( - ChuckerInterceptor.Builder(appCtx).apply { - alwaysReadResponseBody(false) - }.build(), - ) - + chunker { alwaysReadResponseBody(false) } if (Settings.bypassCloudflare) addInterceptor(CloudflareInterceptor(appCtx)) // TODO: Rewrite CronetInterceptor to use android.net.http.HttpEngine and make it Android 14 only when released @@ -179,7 +174,7 @@ class EhApplication : Application(), ImageLoaderFactory { EhCookieStore.saveFromResponse(url, Cookie.parseAll(url, response.headers)) response } - addInterceptor(CronetInterceptor.newBuilder(cronetHttpClient).build()) + cronet(cronetHttpClient) } } } diff --git a/app/src/main/java/com/hippo/ehviewer/ktbuilder/Okhttp.kt b/app/src/main/java/com/hippo/ehviewer/ktbuilder/Okhttp.kt index ac8d46393..60671f61b 100644 --- a/app/src/main/java/com/hippo/ehviewer/ktbuilder/Okhttp.kt +++ b/app/src/main/java/com/hippo/ehviewer/ktbuilder/Okhttp.kt @@ -1,10 +1,17 @@ package com.hippo.ehviewer.ktbuilder +import com.chuckerteam.chucker.api.ChuckerInterceptor +import com.google.net.cronet.okhttptransport.CronetInterceptor import okhttp3.Cache import okhttp3.OkHttpClient import okio.FileSystem import okio.Path +import org.chromium.net.CronetEngine +import splitties.init.appCtx inline fun httpClient(builder: OkHttpClient.Builder.() -> Unit): OkHttpClient = OkHttpClient.Builder().apply(builder).build() inline fun httpClient(client: OkHttpClient, builder: OkHttpClient.Builder.() -> Unit): OkHttpClient = client.newBuilder().apply(builder).build() fun OkHttpClient.Builder.cache(directory: Path, maxSize: Long, fileSystem: FileSystem = FileSystem.SYSTEM) = cache(Cache(directory, maxSize, fileSystem)) + +inline fun OkHttpClient.Builder.chunker(builder: ChuckerInterceptor.Builder.() -> Unit) = addInterceptor(ChuckerInterceptor.Builder(appCtx).apply(builder).build()) +inline fun OkHttpClient.Builder.cronet(client: CronetEngine, builder: CronetInterceptor.Builder.() -> Unit = {}) = addInterceptor(CronetInterceptor.newBuilder(client).apply(builder).build())