cancel handler if page success loaded

This commit is contained in:
Vladimir Danshin 2021-09-24 14:48:37 +03:00
parent 64ee4be35d
commit 014ca85eeb
1 changed files with 4 additions and 2 deletions

View File

@ -20,6 +20,7 @@ open class BaseWebViewClient(private val callback: WebViewCallback, private val
private var isError = false
private var isTimeout = true
private var handler: Handler? = null
override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
@ -27,8 +28,8 @@ open class BaseWebViewClient(private val callback: WebViewCallback, private val
callback.onStateChanged(WebViewLoadingState.LOADING)
Looper.myLooper()?.let { looper ->
val handler = Handler(looper)
handler.postDelayed(WEB_VIEW_TIMEOUT_MS) {
handler = Handler(looper)
handler?.postDelayed(WEB_VIEW_TIMEOUT_MS) {
if (isTimeout) {
isError = true
pageFinished()
@ -45,6 +46,7 @@ open class BaseWebViewClient(private val callback: WebViewCallback, private val
override fun onPageFinished(view: WebView, url: String) {
super.onPageFinished(view, url)
isTimeout = false
handler?.removeCallbacksAndMessages(null)
if (url == "about:blank") {
isError = true
}