Add IgnoredUrlsHolder

This commit is contained in:
Grigorii 2022-12-27 13:22:22 +04:00
parent ea5320e57e
commit 4ebe674620
2 changed files with 18 additions and 0 deletions

View File

@ -11,9 +11,11 @@ import android.webkit.WebResourceRequest
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.core.os.postDelayed
import ru.touchin.roboswag.webview.web_view.redirection.IgnoredUrlsHolder
open class BaseWebViewClient(
private val callback: WebViewCallback,
private val ignoredUrlsHolder: IgnoredUrlsHolder = IgnoredUrlsHolder(),
private val isSslPinningEnable: Boolean = true
) : WebViewClient() {
@ -81,6 +83,7 @@ open class BaseWebViewClient(
* onReceivedError isn't called when url is "about:blank" (url string isBlank)
*/
override fun onReceivedError(view: WebView, request: WebResourceRequest, error: WebResourceError) {
if (ignoredUrlsHolder.shouldIgnoreError(request.url.toString())) return
isError = true
}

View File

@ -0,0 +1,15 @@
package ru.touchin.roboswag.webview.web_view.redirection
/**
* Define some urls here which errors should be ignored while redirection to prevent show error screen
*/
class IgnoredUrlsHolder(
private val ignoredUrlsList: List<String> = listOf(
"https://stats.g.doubleclick.net/"
)
) {
constructor(vararg urls: String) : this(urls.toList())
fun shouldIgnoreError(url: String) = ignoredUrlsList.any { url in it }
}