Fix crashes

pull/488/head
Koitharu 3 years ago
parent ea34abb1d7
commit 8df7fa2729
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -12,7 +12,12 @@ import androidx.core.net.toUri
import androidx.core.view.isInvisible import androidx.core.view.isInvisible
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.runInterruptible
import kotlinx.coroutines.yield
import okhttp3.Headers import okhttp3.Headers
import okhttp3.HttpUrl import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
@ -118,12 +123,15 @@ class CloudFlareActivity : BaseActivity<ActivityBrowserBinding>(), CloudFlareCal
} }
R.id.action_retry -> { R.id.action_retry -> {
lifecycleScope.launch {
viewBinding.webView.stopLoading() viewBinding.webView.stopLoading()
yield()
val targetUrl = intent?.dataString?.toHttpUrlOrNull() val targetUrl = intent?.dataString?.toHttpUrlOrNull()
if (targetUrl != null) { if (targetUrl != null) {
clearCfCookies(targetUrl) clearCfCookies(targetUrl)
viewBinding.webView.loadUrl(targetUrl.toString()) viewBinding.webView.loadUrl(targetUrl.toString())
} }
}
true true
} }
@ -168,7 +176,7 @@ class CloudFlareActivity : BaseActivity<ActivityBrowserBinding>(), CloudFlareCal
subtitle?.toString()?.toHttpUrlOrNull()?.topPrivateDomain() ?: subtitle subtitle?.toString()?.toHttpUrlOrNull()?.topPrivateDomain() ?: subtitle
} }
private fun clearCfCookies(url: HttpUrl) { private suspend fun clearCfCookies(url: HttpUrl) = runInterruptible(Dispatchers.Default) {
cookieJar.removeCookies(url) { cookie -> cookieJar.removeCookies(url) { cookie ->
val name = cookie.name val name = cookie.name
name.startsWith("cf_") || name.startsWith("_cf") || name.startsWith("__cf") name.startsWith("cf_") || name.startsWith("_cf") || name.startsWith("__cf")

@ -47,7 +47,6 @@ class AndroidCookieJar : MutableCookieJar {
.build() .build()
cookieManager.setCookie(urlString, nc.toString()) cookieManager.setCookie(urlString, nc.toString())
} }
check(loadForRequest(url).isEmpty())
} }
override suspend fun clear() = suspendCoroutine<Boolean> { continuation -> override suspend fun clear() = suspendCoroutine<Boolean> { continuation ->

@ -5,6 +5,7 @@ import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.view.MotionEvent import android.view.MotionEvent
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
class EnhancedViewPager @JvmOverloads constructor( class EnhancedViewPager @JvmOverloads constructor(
@ -25,6 +26,11 @@ class EnhancedViewPager @JvmOverloads constructor(
} }
override fun onInterceptTouchEvent(event: MotionEvent): Boolean { override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
return isUserInputEnabled && super.onInterceptTouchEvent(event) return try {
isUserInputEnabled && super.onInterceptTouchEvent(event)
} catch (e: IllegalArgumentException) {
e.printStackTraceDebug()
false
}
} }
} }

Loading…
Cancel
Save