From 47ea44b3ab304ee8828719b2698528fd9d7ac193 Mon Sep 17 00:00:00 2001 From: ag2s20150909 Date: Wed, 25 Jan 2023 13:30:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +++- .../app/java/io/legado/app/lib/cronet/BodyUploadProvider.kt | 1 + .../io/legado/app/lib/cronet/CronetCoroutineInterceptor.kt | 5 ++++- app/src/main/java/io/legado/app/help/config/AppConfig.kt | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 61ba6047a..eb206b920 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -100,11 +100,13 @@ android { app { dimension "mode" manifestPlaceholders.put("APP_CHANNEL_VALUE", "app") + buildConfigField "boolean", "isGoogle", "false" } google { dimension "mode" applicationId "io.legado.play" manifestPlaceholders.put("APP_CHANNEL_VALUE", "google") + buildConfigField "boolean", "isGoogle", "true" } } compileOptions { @@ -130,7 +132,7 @@ android { dependencies { compileOnly "com.android.tools.build:gradle:$agp_version" //noinspection GradleDependency,GradlePackageUpdate - coreLibraryDesugaring('com.android.tools:desugar_jdk_libs:1.2.2') + coreLibraryDesugaring('com.android.tools:desugar_jdk_libs:2.0.0') testImplementation('junit:junit:4.13.2') androidTestImplementation('androidx.test:runner:1.5.2') androidTestImplementation('androidx.test.espresso:espresso-core:3.5.1') diff --git a/app/src/app/java/io/legado/app/lib/cronet/BodyUploadProvider.kt b/app/src/app/java/io/legado/app/lib/cronet/BodyUploadProvider.kt index e62838369..35c804c7d 100644 --- a/app/src/app/java/io/legado/app/lib/cronet/BodyUploadProvider.kt +++ b/app/src/app/java/io/legado/app/lib/cronet/BodyUploadProvider.kt @@ -39,6 +39,7 @@ class BodyUploadProvider(private val body: RequestBody) : UploadDataProvider(), @Throws(IOException::class) override fun rewind(uploadDataSink: UploadDataSink) { + check(body.isOneShot()) { "Okhttp RequestBody is oneShot" } buffer.clear() body.writeTo(buffer) uploadDataSink.onRewindSucceeded() diff --git a/app/src/app/java/io/legado/app/lib/cronet/CronetCoroutineInterceptor.kt b/app/src/app/java/io/legado/app/lib/cronet/CronetCoroutineInterceptor.kt index 5bef442f4..7dcf5e40e 100644 --- a/app/src/app/java/io/legado/app/lib/cronet/CronetCoroutineInterceptor.kt +++ b/app/src/app/java/io/legado/app/lib/cronet/CronetCoroutineInterceptor.kt @@ -92,7 +92,10 @@ class CronetCoroutineInterceptor : Interceptor { } - buildRequest(request, callBack)?.start() + val req = buildRequest(request, callBack)?.also { it.start() } + coroutine.invokeOnCancellation { + req?.cancel() + } } diff --git a/app/src/main/java/io/legado/app/help/config/AppConfig.kt b/app/src/main/java/io/legado/app/help/config/AppConfig.kt index dd281fae7..fec8f47c7 100644 --- a/app/src/main/java/io/legado/app/help/config/AppConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/AppConfig.kt @@ -12,7 +12,7 @@ import splitties.init.appCtx @Suppress("MemberVisibilityCanBePrivate") object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { - val isGooglePlay = appCtx.channel == "google" + const val isGooglePlay = BuildConfig.isGoogle//appCtx.channel == "google" val isCronet = appCtx.getPrefBoolean(PreferKey.cronet) val useAntiAlias = appCtx.getPrefBoolean(PreferKey.antiAlias) var userAgent: String = getPrefUserAgent()