diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/AndroidCookieJar.kt b/app/src/main/java/eu/kanade/tachiyomi/network/AndroidCookieJar.kt index 8430b9cd00..0795b5e5d6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/network/AndroidCookieJar.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/network/AndroidCookieJar.kt @@ -14,6 +14,13 @@ class AndroidCookieJar(context: Context) : CookieJar { private val syncManager by lazy { CookieSyncManager.createInstance(context) } + init { + // Init sync manager when using anything below L + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + syncManager + } + } + override fun saveFromResponse(url: HttpUrl, cookies: MutableList) { val urlString = url.toString() diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt b/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt index d955b9ae3d..a3f4283a11 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt @@ -101,11 +101,12 @@ class CloudflareInterceptor(private val context: Context) : Interceptor { } override fun onPageFinished(view: WebView, url: String) { - if (url == origRequestUrl) { + // Http error codes are only received since M + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && + url == origRequestUrl && !challengeFound + ) { // The first request didn't return the challenge, abort. - if (!challengeFound) { - latch.countDown() - } + latch.countDown() } } @@ -125,11 +126,6 @@ class CloudflareInterceptor(private val context: Context) : Interceptor { latch.countDown() } } - // Any error on the main frame that isn't the Cloudflare check should unlock - // OkHttp's thread. - if (errorCode != 503 && isMainFrame) { - latch.countDown() - } } } webView?.loadUrl(origRequestUrl, headers)