]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.kt
Fix WebView's dark mode on API 29-32. https://redmine.stoutner.com/issues/927
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / fragments / DomainSettingsFragment.kt
index 52739a4a5a074e906e3de8141f505d1fa246be2d..0e351b94c092d38ad16038c41842048d579f414c 100644 (file)
@@ -94,7 +94,6 @@ class DomainSettingsFragment : Fragment() {
         // Store the default settings.
         val defaultUserAgentName = sharedPreferences.getString(getString(R.string.user_agent_key), getString(R.string.user_agent_default_value))
         val defaultCustomUserAgentString = sharedPreferences.getString(getString(R.string.custom_user_agent_key), getString(R.string.custom_user_agent_default_value))
-        val defaultXRequestedWithHeader = sharedPreferences.getBoolean(getString(R.string.x_requested_with_header_key), true)
         val defaultFontSizeString = sharedPreferences.getString(getString(R.string.font_size_key), getString(R.string.font_size_default_value))
         val defaultSwipeToRefresh = sharedPreferences.getBoolean(getString(R.string.swipe_to_refresh_key), true)
         val defaultWebViewTheme = sharedPreferences.getString(getString(R.string.webview_theme_key), getString(R.string.webview_theme_default_value))
@@ -129,16 +128,13 @@ class DomainSettingsFragment : Fragment() {
         val userAgentSpinner = domainSettingsView.findViewById<Spinner>(R.id.user_agent_spinner)
         val userAgentTextView = domainSettingsView.findViewById<TextView>(R.id.user_agent_textview)
         val customUserAgentEditText = domainSettingsView.findViewById<EditText>(R.id.custom_user_agent_edittext)
-        val xRequestedWithHeaderImageView = domainSettingsView.findViewById<ImageView>(R.id.x_requested_with_header_imageview)
-        val xRequestedWithHeaderSpinner = domainSettingsView.findViewById<Spinner>(R.id.x_requested_with_header_spinner)
-        val xRequestedWithHeaderTextView = domainSettingsView.findViewById<TextView>(R.id.x_requested_with_header_textview)
-        val xRequestedWithHeaderExplanationTextView = domainSettingsView.findViewById<TextView>(R.id.x_requested_with_header_explanation_textview)
         val fontSizeSpinner = domainSettingsView.findViewById<Spinner>(R.id.font_size_spinner)
         val defaultFontSizeTextView = domainSettingsView.findViewById<TextView>(R.id.default_font_size_textview)
         val customFontSizeEditText = domainSettingsView.findViewById<EditText>(R.id.custom_font_size_edittext)
         val swipeToRefreshImageView = domainSettingsView.findViewById<ImageView>(R.id.swipe_to_refresh_imageview)
         val swipeToRefreshSpinner = domainSettingsView.findViewById<Spinner>(R.id.swipe_to_refresh_spinner)
         val swipeToRefreshTextView = domainSettingsView.findViewById<TextView>(R.id.swipe_to_refresh_textview)
+        val webViewThemeLinearLayout = domainSettingsView.findViewById<LinearLayout>(R.id.webview_theme_linearlayout)
         val webViewThemeImageView = domainSettingsView.findViewById<ImageView>(R.id.webview_theme_imageview)
         val webViewThemeSpinner = domainSettingsView.findViewById<Spinner>(R.id.webview_theme_spinner)
         val webViewThemeTextView = domainSettingsView.findViewById<TextView>(R.id.webview_theme_textview)
@@ -184,6 +180,10 @@ class DomainSettingsFragment : Fragment() {
         val currentIpAddressesRadioButton = domainSettingsView.findViewById<RadioButton>(R.id.current_ip_addresses_radiobutton)
         val currentIpAddressesTextView = domainSettingsView.findViewById<TextView>(R.id.current_ip_addresses_textview)
 
+        // Hide the WebView theme linear layout if the API < 29.
+        if (Build.VERSION.SDK_INT < 29)
+            webViewThemeLinearLayout.visibility = View.GONE
+
         // Setup the pinned labels.
         val cNameLabel = getString(R.string.common_name) + "  "
         val oNameLabel = getString(R.string.organization) + "  "
@@ -214,7 +214,6 @@ class DomainSettingsFragment : Fragment() {
         val ultraPrivacyInt = domainCursor.getInt(domainCursor.getColumnIndexOrThrow(DomainsDatabaseHelper.ENABLE_ULTRAPRIVACY))
         val blockAllThirdPartyRequestsInt = domainCursor.getInt(domainCursor.getColumnIndexOrThrow(DomainsDatabaseHelper.BLOCK_ALL_THIRD_PARTY_REQUESTS))
         val currentUserAgentName = domainCursor.getString(domainCursor.getColumnIndexOrThrow(DomainsDatabaseHelper.USER_AGENT))
-        val xRequestedWithHeaderInt = domainCursor.getInt(domainCursor.getColumnIndexOrThrow(DomainsDatabaseHelper.X_REQUESTED_WITH_HEADER))
         val fontSizeInt = domainCursor.getInt(domainCursor.getColumnIndexOrThrow(DomainsDatabaseHelper.FONT_SIZE))
         val swipeToRefreshInt = domainCursor.getInt(domainCursor.getColumnIndexOrThrow(DomainsDatabaseHelper.SWIPE_TO_REFRESH))
         val webViewThemeInt = domainCursor.getInt(domainCursor.getColumnIndexOrThrow(DomainsDatabaseHelper.WEBVIEW_THEME))
@@ -246,7 +245,6 @@ class DomainSettingsFragment : Fragment() {
 
         // Create array adapters for the spinners.
         val translatedUserAgentArrayAdapter = ArrayAdapter.createFromResource(requireContext(), R.array.translated_domain_settings_user_agent_names, R.layout.spinner_item)
-        val xRequestedWithHeaderArrayAdapter = ArrayAdapter.createFromResource(requireContext(), R.array.x_requested_with_header_array, R.layout.spinner_item)
         val fontSizeArrayAdapter = ArrayAdapter.createFromResource(requireContext(), R.array.font_size_array, R.layout.spinner_item)
         val swipeToRefreshArrayAdapter = ArrayAdapter.createFromResource(requireContext(), R.array.swipe_to_refresh_array, R.layout.spinner_item)
         val webViewThemeArrayAdapter = ArrayAdapter.createFromResource(requireContext(), R.array.webview_theme_array, R.layout.spinner_item)
@@ -255,7 +253,6 @@ class DomainSettingsFragment : Fragment() {
 
         // Set the drop down view resource on the spinners.
         translatedUserAgentArrayAdapter.setDropDownViewResource(R.layout.domain_settings_spinner_dropdown_items)
-        xRequestedWithHeaderArrayAdapter.setDropDownViewResource(R.layout.domain_settings_spinner_dropdown_items)
         fontSizeArrayAdapter.setDropDownViewResource(R.layout.domain_settings_spinner_dropdown_items)
         swipeToRefreshArrayAdapter.setDropDownViewResource(R.layout.domain_settings_spinner_dropdown_items)
         webViewThemeArrayAdapter.setDropDownViewResource(R.layout.domain_settings_spinner_dropdown_items)
@@ -264,7 +261,6 @@ class DomainSettingsFragment : Fragment() {
 
         // Set the array adapters for the spinners.
         userAgentSpinner.adapter = translatedUserAgentArrayAdapter
-        xRequestedWithHeaderSpinner.adapter = xRequestedWithHeaderArrayAdapter
         fontSizeSpinner.adapter = fontSizeArrayAdapter
         swipeToRefreshSpinner.adapter = swipeToRefreshArrayAdapter
         webViewThemeSpinner.adapter = webViewThemeArrayAdapter
@@ -468,48 +464,6 @@ class DomainSettingsFragment : Fragment() {
         // Open the user agent spinner when the text view is clicked.
         userAgentTextView.setOnClickListener { userAgentSpinner.performClick() }
 
-        // Select the X-Requested-With header selection in the spinner.
-        xRequestedWithHeaderSpinner.setSelection(xRequestedWithHeaderInt)
-
-        // Set the X-Requested-With header text.
-        if (defaultXRequestedWithHeader)
-            xRequestedWithHeaderTextView.text = xRequestedWithHeaderArrayAdapter.getItem(DomainsDatabaseHelper.ENABLED)
-        else
-            xRequestedWithHeaderTextView.text = xRequestedWithHeaderArrayAdapter.getItem(DomainsDatabaseHelper.DISABLED)
-
-        // Set the X-Requested-With header icon and text view settings.
-        when (xRequestedWithHeaderInt) {
-            DomainsDatabaseHelper.SYSTEM_DEFAULT -> {
-                // Set the icon color.
-                xRequestedWithHeaderImageView.isSelected = defaultXRequestedWithHeader
-
-                // Show the X-Requested-With header text view.
-                xRequestedWithHeaderTextView.visibility = View.VISIBLE
-            }
-
-            DomainsDatabaseHelper.ENABLED -> {
-                // Set the icon color.
-                xRequestedWithHeaderImageView.isSelected = true
-
-                // Hide the X-Requested-With header text view.
-                xRequestedWithHeaderTextView.visibility = View.GONE
-            }
-
-            DomainsDatabaseHelper.DISABLED -> {
-                // Set the icon color.
-                xRequestedWithHeaderImageView.isSelected = false
-
-                // Hide the X-Requested-With header text view.
-                xRequestedWithHeaderTextView.visibility = View.GONE
-            }
-        }
-
-        // Open the X-Requested-With header spinner when the text view is clicked.
-        xRequestedWithHeaderTextView.setOnClickListener { xRequestedWithHeaderSpinner.performClick() }
-
-        // Open the X-Requested-With header spinner when the explanation text view is clicked.
-        xRequestedWithHeaderExplanationTextView.setOnClickListener { xRequestedWithHeaderSpinner.performClick() }
-
         // Display the font size settings.
         if (fontSizeInt == 0) {  // `0` is the code for system default font size.
             // Set the font size to the system default.
@@ -1067,42 +1021,6 @@ class DomainSettingsFragment : Fragment() {
             }
         }
 
-        // Set the X-Requested-With header spinner listener.
-        xRequestedWithHeaderSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
-            override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
-                // Update the icon and the visibility of the text view.
-                when (position) {
-                    DomainsDatabaseHelper.SYSTEM_DEFAULT -> {
-                        // Set the icon color.
-                        xRequestedWithHeaderImageView.isSelected = defaultXRequestedWithHeader
-
-                        // Show the X-Requested-With header text view.
-                        xRequestedWithHeaderTextView.visibility = View.VISIBLE
-                    }
-
-                    DomainsDatabaseHelper.ENABLED -> {
-                        // Set the icon color.
-                        xRequestedWithHeaderImageView.isSelected = true
-
-                        // Hide the X-Requested-With header text view.
-                        xRequestedWithHeaderTextView.visibility = View.GONE
-                    }
-
-                    DomainsDatabaseHelper.DISABLED -> {
-                        // Set the icon color.
-                        xRequestedWithHeaderImageView.isSelected = false
-
-                        // Hide the X-Requested-With header text view.
-                        xRequestedWithHeaderTextView.visibility = View.GONE
-                    }
-                }
-            }
-
-            override fun onNothingSelected(parent: AdapterView<*>?) {
-                // Do nothing.
-            }
-        }
-
         // Set the font size spinner listener.
         fontSizeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
             override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {