diff --git a/.github/workflows/issue_action.yml b/.github/workflows/issue_action.yml
index 79e7766c..a81c4b42 100644
--- a/.github/workflows/issue_action.yml
+++ b/.github/workflows/issue_action.yml
@@ -18,7 +18,7 @@ jobs:
uses: actions-cool/issues-similarity-analysis@v1
with:
token: ${{ steps.generate_token.outputs.token }}
- filter-threshold: 0.5
+ filter-threshold: 0.60
title-excludes: ''
comment-title: |
### Your issue looks similar to these issues:
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 2debad36..ed2ad5a0 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -47,8 +47,8 @@ android {
minSdk = 21
targetSdk = 30
- versionCode = 51
- versionName = "3.1.5"
+ versionCode = 52
+ versionName = "3.1.6"
resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}")
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d722039a..47676059 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -26,6 +26,7 @@
+
Boolean = { false },
): Pair> {
- return resolveUsingWebView(
- requestCreator(method, url, referer = referer), requestCallBack
- )
+ return try {
+ resolveUsingWebView(
+ requestCreator(method, url, referer = referer), requestCallBack
+ )
+ } catch (e: java.lang.IllegalArgumentException) {
+ logError(e)
+ debugException { "ILLEGAL URL IN resolveUsingWebView!" }
+ return null to emptyList()
+ }
}
/**
@@ -129,7 +137,7 @@ class WebViewResolver(
println("Loading WebView URL: $webViewUrl")
if (interceptUrl.containsMatchIn(webViewUrl)) {
- fixedRequest = request.toRequest().also {
+ fixedRequest = request.toRequest()?.also {
requestCallBack(it)
}
println("Web-view request finished: $webViewUrl")
@@ -138,9 +146,9 @@ class WebViewResolver(
}
if (additionalUrls.any { it.containsMatchIn(webViewUrl) }) {
- extraRequestList.add(request.toRequest().also {
+ request.toRequest()?.also {
if (requestCallBack(it)) destroyWebView()
- })
+ }?.let(extraRequestList::add)
}
// Suppress image requests as we don't display them anywhere
@@ -251,14 +259,19 @@ class WebViewResolver(
}
-fun WebResourceRequest.toRequest(): Request {
+fun WebResourceRequest.toRequest(): Request? {
val webViewUrl = this.url.toString()
- return requestCreator(
- this.method,
- webViewUrl,
- this.requestHeaders,
- )
+ // If invalid url then it can crash with
+ // java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but was 'data'
+ // At Request.Builder().url(addParamsToUrl(url, params))
+ return normalSafeApiCall {
+ requestCreator(
+ this.method,
+ webViewUrl,
+ this.requestHeaders,
+ )
+ }
}
fun Response.toWebResourceResponse(): WebResourceResponse {