From 35a7cc20678515227600bd053c2d6f19578656fa Mon Sep 17 00:00:00 2001 From: tarsin Date: Mon, 3 Jul 2023 08:09:37 +0800 Subject: [PATCH] Unify isCronetSupported --- app/src/main/java/com/hippo/ehviewer/EhApplication.kt | 7 +++---- app/src/main/java/com/hippo/ehviewer/cronet/CronetUtils.kt | 7 +++++++ app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt | 5 ++--- 3 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/com/hippo/ehviewer/cronet/CronetUtils.kt diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt index f87b81cd3..f9ec38345 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt +++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt @@ -33,6 +33,7 @@ import com.hippo.ehviewer.client.data.GalleryDetail import com.hippo.ehviewer.coil.MergeInterceptor import com.hippo.ehviewer.coil.diskCache import com.hippo.ehviewer.coil.imageLoader +import com.hippo.ehviewer.cronet.isCronetSupported import com.hippo.ehviewer.dailycheck.checkDawn import com.hippo.ehviewer.dao.EhDatabase import com.hippo.ehviewer.download.DownloadManager @@ -163,13 +164,11 @@ class EhApplication : Application(), ImageLoaderFactory { if (Settings.bypassCloudflare) addInterceptor(CloudflareInterceptor(appCtx)) // TODO: Rewrite CronetInterceptor to use android.net.http.HttpEngine and make it Android 14 only when released - if (Settings.enableQuic) { + if (isCronetSupported) { addInterceptor { chain -> val request = chain.request() val url = request.url - val newRequest = request.newBuilder() - .addHeader("Cookie", EhCookieStore.getCookieHeader(url)) - .build() + val newRequest = request.newBuilder().addHeader("Cookie", EhCookieStore.getCookieHeader(url)).build() val response = chain.proceed(newRequest) EhCookieStore.saveFromResponse(url, Cookie.parseAll(url, response.headers)) response diff --git a/app/src/main/java/com/hippo/ehviewer/cronet/CronetUtils.kt b/app/src/main/java/com/hippo/ehviewer/cronet/CronetUtils.kt new file mode 100644 index 000000000..fdfed208a --- /dev/null +++ b/app/src/main/java/com/hippo/ehviewer/cronet/CronetUtils.kt @@ -0,0 +1,7 @@ +package com.hippo.ehviewer.cronet + +import android.os.Build +import com.hippo.ehviewer.Settings + +val isCronetSupported: Boolean + get() = Settings.enableQuic && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q diff --git a/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt b/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt index cb6a4e157..7b2e39f3b 100644 --- a/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt +++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt @@ -16,11 +16,9 @@ package com.hippo.ehviewer.spider import android.graphics.ImageDecoder -import android.os.Build import android.os.ParcelFileDescriptor import android.os.ParcelFileDescriptor.MODE_READ_WRITE import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhUtils.getSuitableTitle import com.hippo.ehviewer.client.data.GalleryInfo import com.hippo.ehviewer.client.ehRequest @@ -28,6 +26,7 @@ import com.hippo.ehviewer.client.executeNonCache import com.hippo.ehviewer.client.getImageKey import com.hippo.ehviewer.coil.read import com.hippo.ehviewer.coil.suspendEdit +import com.hippo.ehviewer.cronet.isCronetSupported import com.hippo.ehviewer.download.downloadLocation import com.hippo.ehviewer.gallery.SUPPORT_IMAGE_EXTENSIONS import com.hippo.ehviewer.image.Image.CloseableSource @@ -130,7 +129,7 @@ class SpiderDen(private val mGalleryInfo: GalleryInfo) { referer: String?, notifyProgress: (Long, Long, Int) -> Unit, ): Boolean { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && Settings.enableQuic) { + return if (isCronetSupported) { cronetRequest(url, referer) { disableCache() }.execute { info ->