X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Ffragments%2FAboutWebViewFragment.kt;h=3b516ec546d53b5824f51f3ffdc4a1348999f611;hp=054d200e0236e2320aa43f8ac87d57f868a4bcbf;hb=9338dfa2f8a295736d35e4f468f0c0ba573a1b58;hpb=031def95c6d9bfc14113fe86b4a5690233d93ce2 diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.kt b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.kt index 054d200e..3b516ec5 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.kt @@ -1,20 +1,20 @@ /* - * Copyright © 2016-2021 Soren Stoutner . + * Copyright © 2016-2022 Soren Stoutner . * - * This file is part of Privacy Browser . + * This file is part of Privacy Browser Android . * - * Privacy Browser is free software: you can redistribute it and/or modify + * Privacy Browser Android is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Privacy Browser is distributed in the hope that it will be useful, + * Privacy Browser Android is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Privacy Browser. If not, see . + * along with Privacy Browser Android. If not, see . */ package com.stoutner.privacybrowser.fragments @@ -26,6 +26,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.webkit.WebResourceRequest import android.webkit.WebResourceResponse import android.webkit.WebView import android.webkit.WebViewClient @@ -40,6 +41,8 @@ import com.stoutner.privacybrowser.R // Define the class constants. private const val TAB_NUMBER = "tab_number" +private const val SCROLL_X = "scroll_x" +private const val SCROLL_Y = "scroll_y" class AboutWebViewFragment : Fragment() { // Define the class variables. @@ -87,7 +90,8 @@ class AboutWebViewFragment : Fragment() { // Set a WebView client. tabWebView.webViewClient = object : WebViewClient() { - // `shouldOverrideUrlLoading` allows the sending of external links back to the main Privacy Browser WebView. The deprecated `shouldOverrideUrlLoading` must be used until API >= 24. + // // Send external links back to the main Privacy Browser WebView. The deprecated `shouldOverrideUrlLoading` must be used until API >= 24. + @Deprecated("Deprecated in Java") override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean { // Create an intent to view the URL. val urlIntent = Intent(Intent.ACTION_VIEW) @@ -97,12 +101,15 @@ class AboutWebViewFragment : Fragment() { // Make it so. startActivity(urlIntent) + + // Consume the click. return true } - - override fun shouldInterceptRequest(webView: WebView, url: String): WebResourceResponse? { - // Have the WebView asset loader process the request. This allows the loading of SVG files, which otherwise is prevented by the CORS policy. - return webViewAssetLoader.shouldInterceptRequest(Uri.parse(url)) + + // Process asset requests with the asset loader. + override fun shouldInterceptRequest(webView: WebView, webResourceRequest: WebResourceRequest): WebResourceResponse? { + // This allows using the `appassets.androidplatform.net` URL, which handles the loading of SVG files, which otherwise is prevented by the CORS policy. + return webViewAssetLoader.shouldInterceptRequest(webResourceRequest.url) } } @@ -128,8 +135,8 @@ class AboutWebViewFragment : Fragment() { // Scroll the tab if the saved instance state is not null. if (savedInstanceState != null) { tabWebView.post { - tabWebView.scrollX = savedInstanceState.getInt("scroll_x") - tabWebView.scrollY = savedInstanceState.getInt("scroll_y") + tabWebView.scrollX = savedInstanceState.getInt(SCROLL_X) + tabWebView.scrollY = savedInstanceState.getInt(SCROLL_Y) } } @@ -146,8 +153,8 @@ class AboutWebViewFragment : Fragment() { // Save the scroll positions if the layout is not null, which can happen if a tab is not currently selected. if (tabWebView != null) { - savedInstanceState.putInt("scroll_x", tabWebView.scrollX) - savedInstanceState.putInt("scroll_y", tabWebView.scrollY) + savedInstanceState.putInt(SCROLL_X, tabWebView.scrollX) + savedInstanceState.putInt(SCROLL_Y, tabWebView.scrollY) } } -} \ No newline at end of file +}