]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java
Update preference names. https://redmine.stoutner.com/issues/343
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / fragments / SettingsFragment.java
index 17f0bdc216b654302fdbbc2975798417333662c0..af87568b34493537dab5d04d9fe234779f2a8bcf 100644 (file)
@@ -42,7 +42,10 @@ public class SettingsFragment extends PreferenceFragment {
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
+        // Run the default commands.
         super.onCreate(savedInstanceState);
+
+        // Load the preferences from the XML file.
         addPreferencesFromResource(R.xml.preferences);
 
         // Get a handle for the context.
@@ -52,11 +55,11 @@ public class SettingsFragment extends PreferenceFragment {
         savedPreferences = getPreferenceScreen().getSharedPreferences();
 
         // Get handles for the preferences.
-        final Preference javaScriptPreference = findPreference("javascript_enabled");
-        final Preference firstPartyCookiesPreference = findPreference("first_party_cookies_enabled");
-        final Preference thirdPartyCookiesPreference = findPreference("third_party_cookies_enabled");
-        final Preference domStoragePreference = findPreference("dom_storage_enabled");
-        final Preference saveFormDataPreference = findPreference("save_form_data_enabled");  // The form data preference can be removed once the minimum API >= 26.
+        final Preference javaScriptPreference = findPreference("javascript");
+        final Preference firstPartyCookiesPreference = findPreference("first_party_cookies");
+        final Preference thirdPartyCookiesPreference = findPreference("third_party_cookies");
+        final Preference domStoragePreference = findPreference("dom_storage");
+        final Preference saveFormDataPreference = findPreference("save_form_data");  // The form data preference can be removed once the minimum API >= 26.
         final Preference userAgentPreference = findPreference("user_agent");
         final Preference customUserAgentPreference = findPreference("custom_user_agent");
         final Preference incognitoModePreference = findPreference("incognito_mode");
@@ -64,8 +67,8 @@ public class SettingsFragment extends PreferenceFragment {
         final Preference allowScreenshotsPreference = findPreference("allow_screenshots");
         final Preference easyListPreference = findPreference("easylist");
         final Preference easyPrivacyPreference = findPreference("easyprivacy");
-        final Preference fanboyAnnoyanceListPreference = findPreference("fanboy_annoyance_list");
-        final Preference fanboySocialBlockingListPreference = findPreference("fanboy_social_blocking_list");
+        final Preference fanboyAnnoyanceListPreference = findPreference("fanboys_annoyance_list");
+        final Preference fanboySocialBlockingListPreference = findPreference("fanboys_social_blocking_list");
         final Preference ultraPrivacyPreference = findPreference("ultraprivacy");
         final Preference blockAllThirdPartyRequestsPreference = findPreference("block_all_third_party_requests");
         final Preference proxyThroughOrbotPreference = findPreference("proxy_through_orbot");
@@ -83,8 +86,9 @@ public class SettingsFragment extends PreferenceFragment {
         final Preference clearFormDataPreference = findPreference("clear_form_data");  // The clear form data preference can be removed once the minimum API >= 26.
         final Preference clearCachePreference = findPreference("clear_cache");
         final Preference homepagePreference = findPreference("homepage");
-        final Preference defaultFontSizePreference = findPreference("default_font_size");
+        final Preference fontSizePreference = findPreference("font_size");
         final Preference swipeToRefreshPreference = findPreference("swipe_to_refresh");
+        final Preference downloadWithExternalAppPreference = findPreference("download_with_external_app");
         final Preference displayAdditionalAppBarIconsPreference = findPreference("display_additional_app_bar_icons");
         final Preference darkThemePreference = findPreference("dark_theme");
         final Preference nightModePreference = findPreference("night_mode");
@@ -96,15 +100,15 @@ public class SettingsFragment extends PreferenceFragment {
         hideSystemBarsPreference.setDependency("full_screen_browsing_mode");
 
         // Get Strings from the preferences.
-        String torSearchString = savedPreferences.getString("tor_search", "http://ulrn6sryqaifefld.onion/?q=");
-        String searchString = savedPreferences.getString("search", "https://searx.me/?q=");
+        String torSearchString = savedPreferences.getString("tor_search", getString(R.string.tor_search_default_value));
+        String searchString = savedPreferences.getString("search", getString(R.string.search_default_value));
 
         // Get booleans that are used in multiple places from the preferences.
-        final boolean javaScriptEnabled = savedPreferences.getBoolean("javascript_enabled", false);
-        boolean firstPartyCookiesEnabled = savedPreferences.getBoolean("first_party_cookies_enabled", false);
-        boolean thirdPartyCookiesEnabled = savedPreferences.getBoolean("third_party_cookies_enabled", false);
-        boolean fanboyAnnoyanceListEnabled = savedPreferences.getBoolean("fanboy_annoyance_list", true);
-        boolean fanboySocialBlockingEnabled = savedPreferences.getBoolean("fanboy_social_blocking_list", true);
+        final boolean javaScriptEnabled = savedPreferences.getBoolean("javascript", false);
+        boolean firstPartyCookiesEnabled = savedPreferences.getBoolean("first_party_cookies", false);
+        boolean thirdPartyCookiesEnabled = savedPreferences.getBoolean("third_party_cookies", false);
+        boolean fanboyAnnoyanceListEnabled = savedPreferences.getBoolean("fanboys_annoyance_list", true);
+        boolean fanboySocialBlockingEnabled = savedPreferences.getBoolean("fanboys_social_blocking_list", true);
         boolean proxyThroughOrbot = savedPreferences.getBoolean("proxy_through_orbot", false);
         boolean fullScreenBrowsingMode = savedPreferences.getBoolean("full_screen_browsing_mode", false);
         boolean hideSystemBars = savedPreferences.getBoolean("hide_system_bars", false);
@@ -138,12 +142,12 @@ public class SettingsFragment extends PreferenceFragment {
         final WebView bareWebView = bareWebViewLayout.findViewById(R.id.bare_webview);
 
         // Get the user agent arrays.
-        ArrayAdapter<CharSequence> userAgentNamesArray = ArrayAdapter.createFromResource(context, R.array.user_agent_names, R.layout.domain_settings_spinner_item);
+        ArrayAdapter<CharSequence> userAgentNamesArray = ArrayAdapter.createFromResource(context, R.array.user_agent_names, R.layout.spinner_item);
         String[] translatedUserAgentNamesArray = getResources().getStringArray(R.array.translated_user_agent_names);
         String[] userAgentDataArray = getResources().getStringArray(R.array.user_agent_data);
 
         // Get the current user agent name from the preference.
-        String userAgentName = savedPreferences.getString("user_agent", "Privacy Browser");
+        String userAgentName = savedPreferences.getString("user_agent", getString(R.string.user_agent_default_value));
 
         // Get the array position of the user agent name.
         int userAgentArrayPosition = userAgentNamesArray.getPosition(userAgentName);
@@ -171,12 +175,12 @@ public class SettingsFragment extends PreferenceFragment {
         }
 
         // Set the summary text for the custom user agent preference and enable it if user agent preference is set to custom.
-        customUserAgentPreference.setSummary(savedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0"));
+        customUserAgentPreference.setSummary(savedPreferences.getString("custom_user_agent", getString(R.string.custom_user_agent_default_value)));
         customUserAgentPreference.setEnabled(userAgentPreference.getSummary().equals(getString(R.string.custom_user_agent)));
 
 
         // Set the Tor homepage URL as the summary text for the `tor_homepage` preference when the preference screen is loaded.  The default is Searx: `http://ulrn6sryqaifefld.onion/`.
-        torHomepagePreference.setSummary(savedPreferences.getString("tor_homepage", "http://ulrn6sryqaifefld.onion/"));
+        torHomepagePreference.setSummary(savedPreferences.getString("tor_homepage", getString(R.string.tor_homepage_default_value)));
 
 
         // Set the Tor search URL as the summary text for the Tor preference when the preference screen is loaded.
@@ -189,7 +193,7 @@ public class SettingsFragment extends PreferenceFragment {
         }
 
         // Set the summary text for `tor_search_custom_url`.  The default is `""`.
-        torSearchCustomURLPreference.setSummary(savedPreferences.getString("tor_search_custom_url", ""));
+        torSearchCustomURLPreference.setSummary(savedPreferences.getString("tor_search_custom_url", getString(R.string.tor_search_custom_url_default_value)));
 
         // Enable the Tor custom URL search options only if proxying through Orbot and the search is set to `Custom URL`.
         torSearchCustomURLPreference.setEnabled(proxyThroughOrbot && torSearchString.equals("Custom URL"));
@@ -205,7 +209,7 @@ public class SettingsFragment extends PreferenceFragment {
         }
 
         // Set the summary text for `search_custom_url` (the default is `""`) and enable it if `search` is set to `Custom URL`.
-        searchCustomURLPreference.setSummary(savedPreferences.getString("search_custom_url", ""));
+        searchCustomURLPreference.setSummary(savedPreferences.getString("search_custom_url", getString(R.string.search_custom_url_default_value)));
         searchCustomURLPreference.setEnabled(searchString.equals("Custom URL"));
 
 
@@ -219,10 +223,10 @@ public class SettingsFragment extends PreferenceFragment {
         clearCachePreference.setEnabled(!clearEverything);
 
         // Set the homepage URL as the summary text for the homepage preference.
-        homepagePreference.setSummary(savedPreferences.getString("homepage", "https://searx.me/"));
+        homepagePreference.setSummary(savedPreferences.getString("homepage", getString(R.string.homepage_default_value)));
 
-        // Set the default font size as the summary text for the preference.
-        defaultFontSizePreference.setSummary(savedPreferences.getString("default_font_size", "100") + "%%");
+        // Set the font size as the summary text for the preference.
+        fontSizePreference.setSummary(savedPreferences.getString("font_size", getString(R.string.font_size_default_value)) + "%%");
 
         // Disable the JavaScript preference if Night Mode is enabled.  JavaScript will be enabled for all web pages.
         javaScriptPreference.setEnabled(!nightMode);
@@ -266,7 +270,7 @@ public class SettingsFragment extends PreferenceFragment {
 
         // Set the DOM storage icon.
         if (javaScriptEnabled || nightMode) {  // The preference is enabled.
-            if (savedPreferences.getBoolean("dom_storage_enabled", false)) {  // DOM storage is enabled.
+            if (savedPreferences.getBoolean("dom_storage", false)) {  // DOM storage is enabled.
                 domStoragePreference.setIcon(R.drawable.dom_storage_enabled);
             } else {  // DOM storage is disabled.
                 if (MainWebViewActivity.darkTheme) {
@@ -285,7 +289,7 @@ public class SettingsFragment extends PreferenceFragment {
 
         // Set the save form data icon if API < 26.  Save form data has no effect on API >= 26.
         if (Build.VERSION.SDK_INT < 26) {
-            if (savedPreferences.getBoolean("save_form_data_enabled", false)) {
+            if (savedPreferences.getBoolean("save_form_data", false)) {
                 saveFormDataPreference.setIcon(R.drawable.form_data_enabled);
             } else {
                 if (MainWebViewActivity.darkTheme) {
@@ -636,6 +640,21 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
+        // Set the download with external app preference icon.
+        if (savedPreferences.getBoolean("download_with_external_app", false)) {
+            if (MainWebViewActivity.darkTheme) {
+                downloadWithExternalAppPreference.setIcon(R.drawable.open_with_external_app_enabled_dark);
+            } else {
+                downloadWithExternalAppPreference.setIcon(R.drawable.open_with_external_app_enabled_light);
+            }
+        } else {
+            if (MainWebViewActivity.darkTheme) {
+                downloadWithExternalAppPreference.setIcon(R.drawable.open_with_external_app_disabled_dark);
+            } else {
+                downloadWithExternalAppPreference.setIcon(R.drawable.open_with_external_app_disabled_light);
+            }
+        }
+
         // Set the display additional app bar icons preference icon.
         if (savedPreferences.getBoolean("display_additional_app_bar_icons", false)) {
             if (MainWebViewActivity.darkTheme) {
@@ -692,9 +711,9 @@ public class SettingsFragment extends PreferenceFragment {
         // Listen for preference changes.
         preferencesListener = (SharedPreferences sharedPreferences, String key) -> {
             switch (key) {
-                case "javascript_enabled":
+                case "javascript":
                     // Update the icons and the DOM storage preference status.
-                    if (sharedPreferences.getBoolean("javascript_enabled", false)) {  // The JavaScript preference is enabled.
+                    if (sharedPreferences.getBoolean("javascript", false)) {  // The JavaScript preference is enabled.
                         // Update the icon for the JavaScript preference.
                         javaScriptPreference.setIcon(R.drawable.javascript_enabled);
 
@@ -702,7 +721,7 @@ public class SettingsFragment extends PreferenceFragment {
                         domStoragePreference.setEnabled(true);
 
                         // Update the icon for the DOM storage preference.
-                        if (sharedPreferences.getBoolean("dom_storage_enabled", false)) {
+                        if (sharedPreferences.getBoolean("dom_storage", false)) {
                             domStoragePreference.setIcon(R.drawable.dom_storage_enabled);
                         } else {
                             if (MainWebViewActivity.darkTheme) {
@@ -727,15 +746,15 @@ public class SettingsFragment extends PreferenceFragment {
                     }
                     break;
 
-                case "first_party_cookies_enabled":
-                    // Update the icons for `first_party_cookies_enabled` and `third_party_cookies_enabled`.
-                    if (sharedPreferences.getBoolean("first_party_cookies_enabled", false)) {
-                        // Set the icon for `first_party_cookies_enabled`.
+                case "first_party_cookies":
+                    // Update the icons for `first_party_cookies` and `third_party_cookies`.
+                    if (sharedPreferences.getBoolean("first_party_cookies", false)) {
+                        // Set the icon for `first_party_cookies`.
                         firstPartyCookiesPreference.setIcon(R.drawable.cookies_enabled);
 
-                        // Update the icon for `third_party_cookies_enabled`.
+                        // Update the icon for `third_party_cookies`.
                         if (Build.VERSION.SDK_INT >= 21) {
-                            if (sharedPreferences.getBoolean("third_party_cookies_enabled", false)) {
+                            if (sharedPreferences.getBoolean("third_party_cookies", false)) {
                                 thirdPartyCookiesPreference.setIcon(R.drawable.cookies_warning);
                             } else {
                                 if (MainWebViewActivity.darkTheme) {
@@ -751,15 +770,15 @@ public class SettingsFragment extends PreferenceFragment {
                                 thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_light);
                             }
                         }
-                    } else {  // `first_party_cookies_enabled` is `false`.
-                        // Update the icon for `first_party_cookies_enabled`.
+                    } else {  // `first_party_cookies` is `false`.
+                        // Update the icon for `first_party_cookies`.
                         if (MainWebViewActivity.darkTheme) {
                             firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_dark);
                         } else {
                             firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_light);
                         }
 
-                        // Set the icon for `third_party_cookies_enabled` to be ghosted.
+                        // Set the icon for `third_party_cookies` to be ghosted.
                         if (MainWebViewActivity.darkTheme) {
                             thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_dark);
                         } else {
@@ -767,13 +786,13 @@ public class SettingsFragment extends PreferenceFragment {
                         }
                     }
 
-                    // Enable `third_party_cookies_enabled` if `first_party_cookies_enabled` is `true` and API >= 21.
-                    thirdPartyCookiesPreference.setEnabled(sharedPreferences.getBoolean("first_party_cookies_enabled", false) && (Build.VERSION.SDK_INT >= 21));
+                    // Enable `third_party_cookies` if `first_party_cookies` is `true` and API >= 21.
+                    thirdPartyCookiesPreference.setEnabled(sharedPreferences.getBoolean("first_party_cookies", false) && (Build.VERSION.SDK_INT >= 21));
                     break;
 
-                case "third_party_cookies_enabled":
+                case "third_party_cookies":
                     // Update the icon.
-                    if (sharedPreferences.getBoolean("third_party_cookies_enabled", false)) {
+                    if (sharedPreferences.getBoolean("third_party_cookies", false)) {
                         thirdPartyCookiesPreference.setIcon(R.drawable.cookies_warning);
                     } else {
                         if (MainWebViewActivity.darkTheme) {
@@ -784,9 +803,9 @@ public class SettingsFragment extends PreferenceFragment {
                     }
                     break;
 
-                case "dom_storage_enabled":
+                case "dom_storage":
                     // Update the icon.
-                    if (sharedPreferences.getBoolean("dom_storage_enabled", false)) {
+                    if (sharedPreferences.getBoolean("dom_storage", false)) {
                         domStoragePreference.setIcon(R.drawable.dom_storage_enabled);
                     } else {
                         if (MainWebViewActivity.darkTheme) {
@@ -798,9 +817,9 @@ public class SettingsFragment extends PreferenceFragment {
                     break;
 
                 // Save form data can be removed once the minimum API >= 26.
-                case "save_form_data_enabled":
+                case "save_form_data":
                     // Update the icon.
-                    if (sharedPreferences.getBoolean("save_form_data_enabled", false)) {
+                    if (sharedPreferences.getBoolean("save_form_data", false)) {
                         saveFormDataPreference.setIcon(R.drawable.form_data_enabled);
                     } else {
                         if (MainWebViewActivity.darkTheme) {
@@ -812,7 +831,7 @@ public class SettingsFragment extends PreferenceFragment {
 
                 case "user_agent":
                     // Get the new user agent name.
-                    String newUserAgentName = sharedPreferences.getString("user_agent", "Privacy Browser");
+                    String newUserAgentName = sharedPreferences.getString("user_agent", getString(R.string.user_agent_default_value));
 
                     // Get the array position for the new user agent name.
                     int newUserAgentArrayPosition = userAgentNamesArray.getPosition(newUserAgentName);
@@ -870,7 +889,7 @@ public class SettingsFragment extends PreferenceFragment {
 
                 case "custom_user_agent":
                     // Set the new custom user agent as the summary text for the preference.
-                    customUserAgentPreference.setSummary(sharedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0"));
+                    customUserAgentPreference.setSummary(sharedPreferences.getString("custom_user_agent", getString(R.string.custom_user_agent_default_value)));
                     break;
 
                 case "incognito_mode":
@@ -971,9 +990,9 @@ public class SettingsFragment extends PreferenceFragment {
                     }
                     break;
 
-                case "fanboy_annoyance_list":
-                    boolean currentFanboyAnnoyanceList = sharedPreferences.getBoolean("fanboy_annoyance_list", true);
-                    boolean currentFanboySocialBlockingList = sharedPreferences.getBoolean("fanboy_social_blocking_list", true);
+                case "fanboys_annoyance_list":
+                    boolean currentFanboyAnnoyanceList = sharedPreferences.getBoolean("fanboys_annoyance_list", true);
+                    boolean currentFanboySocialBlockingList = sharedPreferences.getBoolean("fanboys_social_blocking_list", true);
 
                     // Update the Fanboy icons.
                     if (currentFanboyAnnoyanceList) {  // Fanboy's annoyance list is enabled.
@@ -1018,9 +1037,9 @@ public class SettingsFragment extends PreferenceFragment {
                     fanboySocialBlockingListPreference.setEnabled(!currentFanboyAnnoyanceList);
                     break;
 
-                case "fanboy_social_blocking_list":
+                case "fanboys_social_blocking_list":
                     // Update the icon.
-                    if (sharedPreferences.getBoolean("fanboy_social_blocking_list", true)) {
+                    if (sharedPreferences.getBoolean("fanboys_social_blocking_list", true)) {
                         if (MainWebViewActivity.darkTheme) {
                             fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_dark);
                         } else {
@@ -1072,7 +1091,7 @@ public class SettingsFragment extends PreferenceFragment {
                 case "proxy_through_orbot":
                     // Get current settings.
                     boolean currentProxyThroughOrbot = sharedPreferences.getBoolean("proxy_through_orbot", false);
-                    String currentTorSearchString = sharedPreferences.getString("tor_search", "http://ulrn6sryqaifefld.onion/?q=");
+                    String currentTorSearchString = sharedPreferences.getString("tor_search", getString(R.string.tor_search_default_value));
 
                     // Enable the Tor custom URL search option only if `currentProxyThroughOrbot` is true and the search is set to `Custom URL`.
                     torSearchCustomURLPreference.setEnabled(currentProxyThroughOrbot && currentTorSearchString.equals("Custom URL"));
@@ -1120,12 +1139,12 @@ public class SettingsFragment extends PreferenceFragment {
 
                 case "tor_homepage":
                     // Set the new tor homepage URL as the summary text for the `tor_homepage` preference.  The default is Searx:  `http://ulrn6sryqaifefld.onion/`.
-                    torHomepagePreference.setSummary(sharedPreferences.getString("tor_homepage", "http://ulrn6sryqaifefld.onion/"));
+                    torHomepagePreference.setSummary(sharedPreferences.getString("tor_homepage", getString(R.string.tor_homepage_default_value)));
                     break;
 
                 case "tor_search":
                     // Get the present search string.
-                    String presentTorSearchString = sharedPreferences.getString("tor_search", "http://ulrn6sryqaifefld.onion/?q=");
+                    String presentTorSearchString = sharedPreferences.getString("tor_search", getString(R.string.tor_search_default_value));
 
                     // Update the preferences.
                     if (presentTorSearchString.equals("Custom URL")) {
@@ -1159,12 +1178,12 @@ public class SettingsFragment extends PreferenceFragment {
 
                 case "tor_search_custom_url":
                     // Set the summary text for `tor_search_custom_url`.
-                    torSearchCustomURLPreference.setSummary(sharedPreferences.getString("tor_search_custom_url", ""));
+                    torSearchCustomURLPreference.setSummary(sharedPreferences.getString("tor_search_custom_url", getString(R.string.tor_search_custom_url_default_value)));
                     break;
 
                 case "search":
                     // Store the new search string.
-                    String newSearchString = sharedPreferences.getString("search", "https://searx.me/?q=");
+                    String newSearchString = sharedPreferences.getString("search", getString(R.string.search_default_value));
 
                     // Update `searchPreference` and `searchCustomURLPreference`.
                     if (newSearchString.equals("Custom URL")) {  // `Custom URL` is selected.
@@ -1198,7 +1217,7 @@ public class SettingsFragment extends PreferenceFragment {
 
                 case "search_custom_url":
                     // Set the new custom search URL as the summary text for `search_custom_url`.  The default is `""`.
-                    searchCustomURLPreference.setSummary(sharedPreferences.getString("search_custom_url", ""));
+                    searchCustomURLPreference.setSummary(sharedPreferences.getString("search_custom_url", getString(R.string.search_custom_url_default_value)));
                     break;
 
                 case "full_screen_browsing_mode":
@@ -1448,12 +1467,12 @@ public class SettingsFragment extends PreferenceFragment {
 
                 case "homepage":
                     // Set the new homepage URL as the summary text for the Homepage preference.
-                    homepagePreference.setSummary(sharedPreferences.getString("homepage", "https://searx.me/"));
+                    homepagePreference.setSummary(sharedPreferences.getString("homepage", getString(R.string.homepage_default_value)));
                     break;
 
-                case "default_font_size":
-                    // Update the summary text of `default_font_size`.
-                    defaultFontSizePreference.setSummary(sharedPreferences.getString("default_font_size", "100") + "%%");
+                case "font_size":
+                    // Update the font size summary text.
+                    fontSizePreference.setSummary(sharedPreferences.getString("font_size", getString(R.string.font_size_default_value)) + "%%");
                     break;
 
                 case "swipe_to_refresh":
@@ -1473,6 +1492,23 @@ public class SettingsFragment extends PreferenceFragment {
                     }
                     break;
 
+                case "download_with_external_app":
+                    // Update the icon.
+                    if (sharedPreferences.getBoolean("download_with_external_app", false)) {
+                        if (MainWebViewActivity.darkTheme) {
+                            downloadWithExternalAppPreference.setIcon(R.drawable.open_with_external_app_enabled_dark);
+                        } else {
+                            downloadWithExternalAppPreference.setIcon(R.drawable.open_with_external_app_enabled_light);
+                        }
+                    } else {
+                        if (MainWebViewActivity.darkTheme) {
+                            downloadWithExternalAppPreference.setIcon(R.drawable.open_with_external_app_disabled_dark);
+                        } else {
+                            downloadWithExternalAppPreference.setIcon(R.drawable.open_with_external_app_disabled_light);
+                        }
+                    }
+                    break;
+
                 case "display_additional_app_bar_icons":
                     // Update the icon.
                     if (sharedPreferences.getBoolean("display_additional_app_bar_icons", false)) {
@@ -1517,7 +1553,7 @@ public class SettingsFragment extends PreferenceFragment {
 
                     // Store the current night mode status.
                     boolean currentNightModeBoolean = sharedPreferences.getBoolean("night_mode", false);
-                    boolean currentJavaScriptBoolean = sharedPreferences.getBoolean("javascript_enabled", false);
+                    boolean currentJavaScriptBoolean = sharedPreferences.getBoolean("javascript", false);
 
                     // Update the icon.
                     if (currentNightModeBoolean) {
@@ -1545,9 +1581,9 @@ public class SettingsFragment extends PreferenceFragment {
                         javaScriptPreference.setIcon(R.drawable.privacy_mode);
                     }
 
-                    // Update the `domStoragePreference` icon.
+                    // Update the DOM storage preference icon.
                     if (currentNightModeBoolean || currentJavaScriptBoolean) {  // The preference is enabled.
-                        if (sharedPreferences.getBoolean("dom_storage_enabled", false)) {  // DOM storage is enabled.
+                        if (sharedPreferences.getBoolean("dom_storage", false)) {  // DOM storage is enabled.
                             domStoragePreference.setIcon(R.drawable.dom_storage_enabled);
                         } else {  // DOM storage is disabled.
                             if (MainWebViewActivity.darkTheme) {