From 014ca85eeb008d8ea67cf71f68e023961d03fa66 Mon Sep 17 00:00:00 2001 From: Vladimir Danshin Date: Fri, 24 Sep 2021 14:48:37 +0300 Subject: [PATCH] cancel handler if page success loaded --- .../touchin/roboswag/webview/web_view/BaseWebViewClient.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/webview/src/main/java/ru/touchin/roboswag/webview/web_view/BaseWebViewClient.kt b/webview/src/main/java/ru/touchin/roboswag/webview/web_view/BaseWebViewClient.kt index 5c1e8a9..2debc4b 100644 --- a/webview/src/main/java/ru/touchin/roboswag/webview/web_view/BaseWebViewClient.kt +++ b/webview/src/main/java/ru/touchin/roboswag/webview/web_view/BaseWebViewClient.kt @@ -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 }