X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Ffragments%2FDomainSettingsFragment.kt;h=a7fa53ff8e47c452c2cceb0021437eb8a132c687;hb=dc36dea65a4eb37496fb1ecbbd9f8e1906f50216;hp=52739a4a5a074e906e3de8141f505d1fa246be2d;hpb=a156c3942ca31a1afca3271245cc2bda7ed5aed8;p=PrivacyBrowserAndroid.git diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.kt b/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.kt index 52739a4a..a7fa53ff 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.kt @@ -1,5 +1,5 @@ /* - * Copyright 2017-2022 Soren Stoutner . + * Copyright 2017-2023 Soren Stoutner . * * This file is part of Privacy Browser Android . * @@ -50,8 +50,13 @@ import androidx.fragment.app.Fragment import androidx.preference.PreferenceManager import com.stoutner.privacybrowser.R +import com.stoutner.privacybrowser.activities.DOMAINS_CUSTOM_USER_AGENT +import com.stoutner.privacybrowser.activities.DOMAINS_SYSTEM_DEFAULT_USER_AGENT +import com.stoutner.privacybrowser.activities.DOMAINS_WEBVIEW_DEFAULT_USER_AGENT +import com.stoutner.privacybrowser.activities.SETTINGS_CUSTOM_USER_AGENT +import com.stoutner.privacybrowser.activities.SETTINGS_WEBVIEW_DEFAULT_USER_AGENT +import com.stoutner.privacybrowser.activities.UNRECOGNIZED_USER_AGENT import com.stoutner.privacybrowser.activities.DomainsActivity -import com.stoutner.privacybrowser.activities.MainWebViewActivity import com.stoutner.privacybrowser.helpers.DomainsDatabaseHelper import java.lang.IndexOutOfBoundsException @@ -94,7 +99,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 +133,13 @@ class DomainSettingsFragment : Fragment() { val userAgentSpinner = domainSettingsView.findViewById(R.id.user_agent_spinner) val userAgentTextView = domainSettingsView.findViewById(R.id.user_agent_textview) val customUserAgentEditText = domainSettingsView.findViewById(R.id.custom_user_agent_edittext) - val xRequestedWithHeaderImageView = domainSettingsView.findViewById(R.id.x_requested_with_header_imageview) - val xRequestedWithHeaderSpinner = domainSettingsView.findViewById(R.id.x_requested_with_header_spinner) - val xRequestedWithHeaderTextView = domainSettingsView.findViewById(R.id.x_requested_with_header_textview) - val xRequestedWithHeaderExplanationTextView = domainSettingsView.findViewById(R.id.x_requested_with_header_explanation_textview) val fontSizeSpinner = domainSettingsView.findViewById(R.id.font_size_spinner) val defaultFontSizeTextView = domainSettingsView.findViewById(R.id.default_font_size_textview) val customFontSizeEditText = domainSettingsView.findViewById(R.id.custom_font_size_edittext) val swipeToRefreshImageView = domainSettingsView.findViewById(R.id.swipe_to_refresh_imageview) val swipeToRefreshSpinner = domainSettingsView.findViewById(R.id.swipe_to_refresh_spinner) val swipeToRefreshTextView = domainSettingsView.findViewById(R.id.swipe_to_refresh_textview) + val webViewThemeLinearLayout = domainSettingsView.findViewById(R.id.webview_theme_linearlayout) val webViewThemeImageView = domainSettingsView.findViewById(R.id.webview_theme_imageview) val webViewThemeSpinner = domainSettingsView.findViewById(R.id.webview_theme_spinner) val webViewThemeTextView = domainSettingsView.findViewById(R.id.webview_theme_textview) @@ -184,12 +185,16 @@ class DomainSettingsFragment : Fragment() { val currentIpAddressesRadioButton = domainSettingsView.findViewById(R.id.current_ip_addresses_radiobutton) val currentIpAddressesTextView = domainSettingsView.findViewById(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) + " " - val uNameLabel = getString(R.string.organizational_unit) + " " - val startDateLabel = getString(R.string.start_date) + " " - val endDateLabel = getString(R.string.end_date) + " " + val cNameLabel = getString(R.string.common_name) + val oNameLabel = getString(R.string.organization) + val uNameLabel = getString(R.string.organizational_unit) + val startDateLabel = getString(R.string.start_date) + val endDateLabel = getString(R.string.end_date) // Initialize the database handler. val domainsDatabaseHelper = DomainsDatabaseHelper(requireContext()) @@ -214,7 +219,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 +250,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 +258,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 +266,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 @@ -423,21 +424,21 @@ class DomainSettingsFragment : Fragment() { // Set the user agent according to the system default. when (defaultUserAgentArrayPosition) { // This is probably because it was set in an older version of Privacy Browser before the switch to persistent user agent names. - MainWebViewActivity.UNRECOGNIZED_USER_AGENT -> userAgentTextView.text = defaultUserAgentName + UNRECOGNIZED_USER_AGENT -> userAgentTextView.text = defaultUserAgentName // Display the WebView default user agent. - MainWebViewActivity.SETTINGS_WEBVIEW_DEFAULT_USER_AGENT -> userAgentTextView.text = webViewDefaultUserAgentString + SETTINGS_WEBVIEW_DEFAULT_USER_AGENT -> userAgentTextView.text = webViewDefaultUserAgentString // Display the custom user agent. - MainWebViewActivity.SETTINGS_CUSTOM_USER_AGENT -> userAgentTextView.text = defaultCustomUserAgentString + SETTINGS_CUSTOM_USER_AGENT -> userAgentTextView.text = defaultCustomUserAgentString // Get the user agent string from the user agent data array. else -> userAgentTextView.text = userAgentDataArray[defaultUserAgentArrayPosition] } - } else if (userAgentArrayPosition == MainWebViewActivity.UNRECOGNIZED_USER_AGENT || currentUserAgentName == getString(R.string.custom_user_agent)) { + } else if (userAgentArrayPosition == UNRECOGNIZED_USER_AGENT || currentUserAgentName == getString(R.string.custom_user_agent)) { // A custom user agent is stored in the current user agent name. The second check is necessary in case the user did not change the default custom text. // Set the user agent spinner to `Custom user agent`. - userAgentSpinner.setSelection(MainWebViewActivity.DOMAINS_CUSTOM_USER_AGENT) + userAgentSpinner.setSelection(DOMAINS_CUSTOM_USER_AGENT) // Hide the user agent text view. userAgentTextView.visibility = View.GONE @@ -456,7 +457,7 @@ class DomainSettingsFragment : Fragment() { customUserAgentEditText.visibility = View.GONE // Set the user agent text. - if (userAgentArrayPosition == MainWebViewActivity.DOMAINS_WEBVIEW_DEFAULT_USER_AGENT) { // The WebView default user agent is selected. + if (userAgentArrayPosition == DOMAINS_WEBVIEW_DEFAULT_USER_AGENT) { // The WebView default user agent is selected. // Display the WebView default user agent. userAgentTextView.text = webViewDefaultUserAgentString } else { // A user agent besides the default is selected. @@ -468,48 +469,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. @@ -1004,7 +963,7 @@ class DomainSettingsFragment : Fragment() { override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { // Set the new user agent. when (position) { - MainWebViewActivity.DOMAINS_SYSTEM_DEFAULT_USER_AGENT -> { + DOMAINS_SYSTEM_DEFAULT_USER_AGENT -> { // Show the user agent text view. userAgentTextView.visibility = View.VISIBLE @@ -1014,20 +973,20 @@ class DomainSettingsFragment : Fragment() { // Set the user text. when (defaultUserAgentArrayPosition) { // This is probably because it was set in an older version of Privacy Browser before the switch to persistent user agent names. - MainWebViewActivity.UNRECOGNIZED_USER_AGENT -> userAgentTextView.text = defaultUserAgentName + UNRECOGNIZED_USER_AGENT -> userAgentTextView.text = defaultUserAgentName // Display the `WebView` default user agent. - MainWebViewActivity.SETTINGS_WEBVIEW_DEFAULT_USER_AGENT -> userAgentTextView.text = webViewDefaultUserAgentString + SETTINGS_WEBVIEW_DEFAULT_USER_AGENT -> userAgentTextView.text = webViewDefaultUserAgentString // Display the custom user agent. - MainWebViewActivity.SETTINGS_CUSTOM_USER_AGENT -> userAgentTextView.text = defaultCustomUserAgentString + SETTINGS_CUSTOM_USER_AGENT -> userAgentTextView.text = defaultCustomUserAgentString // Get the user agent string from the user agent data array. else -> userAgentTextView.text = userAgentDataArray[defaultUserAgentArrayPosition] } } - MainWebViewActivity.DOMAINS_WEBVIEW_DEFAULT_USER_AGENT -> { + DOMAINS_WEBVIEW_DEFAULT_USER_AGENT -> { // Show the user agent text view. userAgentTextView.visibility = View.VISIBLE @@ -1038,7 +997,7 @@ class DomainSettingsFragment : Fragment() { customUserAgentEditText.visibility = View.GONE } - MainWebViewActivity.DOMAINS_CUSTOM_USER_AGENT -> { + DOMAINS_CUSTOM_USER_AGENT -> { // Hide the user agent TextView. userAgentTextView.visibility = View.GONE @@ -1067,42 +1026,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) {