From b62a09b5b331edc0f66607591affd44ceda42518 Mon Sep 17 00:00:00 2001 From: Stypox Date: Tue, 4 Feb 2025 21:50:10 +0100 Subject: [PATCH] Use WebSettingsCompat.setSafeBrowsingEnabled --- app/build.gradle | 1 + .../schabi/newpipe/util/potoken/PoTokenWebView.kt | 15 ++++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 92983b4a0f5..dc16efe9738 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -241,6 +241,7 @@ dependencies { implementation "androidx.work:work-runtime-ktx:${androidxWorkVersion}" implementation "androidx.work:work-rxjava3:${androidxWorkVersion}" implementation 'com.google.android.material:material:1.11.0' + implementation "androidx.webkit:webkit:1.9.0" /** Third-party libraries **/ // Instance state boilerplate elimination diff --git a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt index 37c2730b5d9..9b4b500f09d 100644 --- a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt +++ b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt @@ -1,7 +1,6 @@ package org.schabi.newpipe.util.potoken import android.content.Context -import android.os.Build import android.os.Handler import android.os.Looper import android.util.Log @@ -10,6 +9,8 @@ import android.webkit.JavascriptInterface import android.webkit.WebChromeClient import android.webkit.WebView import androidx.annotation.MainThread +import androidx.webkit.WebSettingsCompat +import androidx.webkit.WebViewFeature import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.core.SingleEmitter @@ -31,14 +32,14 @@ class PoTokenWebView private constructor( //region Initialization init { - val webviewSettings = webView.settings + val webViewSettings = webView.settings //noinspection SetJavaScriptEnabled we want to use JavaScript! - webviewSettings.javaScriptEnabled = true - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - webviewSettings.safeBrowsingEnabled = false + webViewSettings.javaScriptEnabled = true + if (WebViewFeature.isFeatureSupported(WebViewFeature.SAFE_BROWSING_ENABLE)) { + WebSettingsCompat.setSafeBrowsingEnabled(webViewSettings, false) } - webviewSettings.userAgentString = USER_AGENT - webviewSettings.blockNetworkLoads = true // the WebView does not need internet access + webViewSettings.userAgentString = USER_AGENT + webViewSettings.blockNetworkLoads = true // the WebView does not need internet access // so that we can run async functions and get back the result webView.addJavascriptInterface(this, JS_INTERFACE)