improve clarity of logic

This commit is contained in:
sousnein 2021-06-10 16:02:13 +03:00
parent d2ed615be1
commit 3d52013995
2 changed files with 13 additions and 5 deletions

View File

@ -44,7 +44,7 @@ open class BaseWebView @JvmOverloads constructor(
var isRedirectEnable = false
/**
* If you need to do some action on url click inside WebView, just assign this parameter.
* If you need to do some action on url click inside WebView, just assign this parameter and disable isRedirectEnable
**/
var openBrowserOnRedirectInsideWebView: ((String?, WebView) -> Unit)? = null

View File

@ -4,7 +4,12 @@ import android.graphics.Bitmap
import android.net.http.SslError
import android.os.Handler
import android.os.Looper
import android.webkit.*
import android.webkit.CookieManager
import android.webkit.SslErrorHandler
import android.webkit.WebView
import android.webkit.WebViewClient
import android.webkit.WebResourceRequest
import android.webkit.WebResourceError
import androidx.core.os.postDelayed
open class BaseWebViewClient(private val callback: WebViewCallback, private val isSslPinningEnable: Boolean) : WebViewClient() {
@ -50,9 +55,12 @@ open class BaseWebViewClient(private val callback: WebViewCallback, private val
}
override fun shouldOverrideUrlLoading(view: WebView, url: String?): Boolean {
return !callback.onOverrideUrlLoading(url)
&& view.originalUrl != null
&& callback.actionOnRedirectInsideWebView(webView = view, url = url) != null
return if (!callback.onOverrideUrlLoading(url) && view.originalUrl != null) {
callback.actionOnRedirectInsideWebView(webView = view, url = url)
true
} else {
false
}
}
override fun onReceivedSslError(view: WebView, handler: SslErrorHandler, error: SslError) {