]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java
Add setting to disable screenshots. https://redmine.stoutner.com/issues/266
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / fragments / SettingsFragment.java
index cff09bee795f40df1d15e4e9734c7d3e654351cd..cb0ca13e4883f6c0ad6ce26fe55c60ceb2527a5e 100644 (file)
@@ -20,6 +20,7 @@
 package com.stoutner.privacybrowser.fragments;
 
 import android.annotation.SuppressLint;
+import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Build;
@@ -29,6 +30,7 @@ import android.preference.PreferenceFragment;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.webkit.WebView;
+import android.widget.ArrayAdapter;
 
 import com.stoutner.privacybrowser.R;
 import com.stoutner.privacybrowser.activities.MainWebViewActivity;
@@ -42,6 +44,9 @@ public class SettingsFragment extends PreferenceFragment {
         super.onCreate(savedInstanceState);
         addPreferencesFromResource(R.xml.preferences);
 
+        // Get a handle for the context.
+        Context context = getActivity().getApplicationContext();
+
         // Initialize savedPreferences.
         savedPreferences = getPreferenceScreen().getSharedPreferences();
 
@@ -55,6 +60,7 @@ public class SettingsFragment extends PreferenceFragment {
         final Preference customUserAgentPreference = findPreference("custom_user_agent");
         final Preference incognitoModePreference = findPreference("incognito_mode");
         final Preference doNotTrackPreference = findPreference("do_not_track");
+        final Preference allowScreenshotsPreference = findPreference("allow_screenshots");
         final Preference easyListPreference = findPreference("easylist");
         final Preference easyPrivacyPreference = findPreference("easyprivacy");
         final Preference fanboyAnnoyanceListPreference = findPreference("fanboy_annoyance_list");
@@ -117,27 +123,42 @@ public class SettingsFragment extends PreferenceFragment {
         @SuppressLint("InflateParams") View bareWebViewLayout = inflater.inflate(R.layout.bare_webview, null, false);
         final WebView bareWebView = bareWebViewLayout.findViewById(R.id.bare_webview);
 
-        // Set the current user-agent as the summary text for the "user_agent" preference when the preference screen is loaded.
-        switch (savedPreferences.getString("user_agent", "PrivacyBrowser/1.0")) {
-            case "WebView default user agent":
+        // Get the user agent arrays.
+        ArrayAdapter<CharSequence> userAgentNamesArray = ArrayAdapter.createFromResource(context, R.array.user_agent_names, R.layout.domain_settings_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");
+
+        // Get the array position of the user agent name.
+        int userAgentArrayPosition = userAgentNamesArray.getPosition(userAgentName);
+
+        // Populate the user agent summary.
+        switch (userAgentArrayPosition) {
+            case MainWebViewActivity.UNRECOGNIZED_USER_AGENT:  // The user agent name is not on the canonical list.
+                // This is probably because it was set in an older version of Privacy Browser before the switch to persistent user agent names.  Use the current user agent entry name as the summary.
+                userAgentPreference.setSummary(userAgentName);
+                break;
+
+            case MainWebViewActivity.SETTINGS_WEBVIEW_DEFAULT_USER_AGENT:
                 // Get the user agent text from the webview (which changes based on the version of Android and WebView installed).
-                userAgentPreference.setSummary(bareWebView.getSettings().getUserAgentString());
+                userAgentPreference.setSummary(translatedUserAgentNamesArray[userAgentArrayPosition] + ":\n" + bareWebView.getSettings().getUserAgentString());
                 break;
 
-            case "Custom user agent":
-                // We can't use the string from the array because it is referenced in code and can't be translated.
+            case MainWebViewActivity.SETTINGS_CUSTOM_USER_AGENT:
+                // Set the summary text.
                 userAgentPreference.setSummary(R.string.custom_user_agent);
                 break;
 
             default:
-                // Display the user agent from the preference as the summary text.
-                userAgentPreference.setSummary(savedPreferences.getString("user_agent", "PrivacyBrowser/1.0"));
-                break;
+                // Get the user agent summary from the user agent data array.
+                userAgentPreference.setSummary(translatedUserAgentNamesArray[userAgentArrayPosition] + ":\n" + userAgentDataArray[userAgentArrayPosition]);
         }
 
-        // Set the summary text for "customUserAgentPreference" (the default is `PrivacyBrowser/1.0`) and enable it if `userAgentPreference` it set to `Custom user agent`.
+        // 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.setEnabled(userAgentPreference.getSummary().equals("Custom user agent"));
+        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 DuckDuckGo: `https://3g2upl4pq6kufc4m.onion`.
@@ -174,7 +195,7 @@ public class SettingsFragment extends PreferenceFragment {
         searchCustomURLPreference.setEnabled(searchString.equals("Custom URL"));
 
 
-        // Enable `translucentNavigationBarPreference` only if full screen browsing mode is enabled and `hide_system_bars` is disabled.
+        // Enable the translucent navigation bar preference only if full screen browsing mode is enabled and `hide_system_bars` is disabled.
         translucentNavigationBarPreference.setEnabled(fullScreenBrowsingMode && !hideSystemBars);
 
         // Set the status of the `Clear and Exit` preferences.
@@ -183,23 +204,23 @@ public class SettingsFragment extends PreferenceFragment {
         clearFormDataPreference.setEnabled(!clearEverything);
         clearCachePreference.setEnabled(!clearEverything);
 
-        // Set the homepage URL as the summary text for the `Homepage` preference when the preference screen is loaded.  The default is `https://duckduckgo.com`.
-        homepagePreference.setSummary(savedPreferences.getString("homepage", "https://duckduckgo.com"));
+        // Set the homepage URL as the summary text for the homepage preference.
+        homepagePreference.setSummary(savedPreferences.getString("homepage", "https://duckduckgo.com/?kao=-1&amp;kak=-1"));
 
-        // Set the default font size as the summary text for the `Default Font Size` preference when the preference screen is loaded.  The default is `100`.
+        // Set the default font size as the summary text for the preference.
         defaultFontSizePreference.setSummary(savedPreferences.getString("default_font_size", "100") + "%%");
 
-        // Disable `javaScriptPreference` if `nightModeBoolean` is true.  JavaScript will be enabled for all web pages.
+        // Disable the JavaScript preference if Night Mode is enabled.  JavaScript will be enabled for all web pages.
         javaScriptPreference.setEnabled(!nightMode);
 
-        // Set the `javaScriptPreference` icon.
+        // Set the JavaScript icon.
         if (javaScriptEnabled || nightMode) {
             javaScriptPreference.setIcon(R.drawable.javascript_enabled);
         } else {
             javaScriptPreference.setIcon(R.drawable.privacy_mode);
         }
 
-        // Set the `firstPartyCookiesPreference` icon.
+        // Set the first-party cookies icon.
         if (firstPartyCookiesEnabled) {
             firstPartyCookiesPreference.setIcon(R.drawable.cookies_enabled);
         } else {
@@ -210,7 +231,7 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the `thirdPartyCookiesPreference` icon.
+        // Set the third party cookies icon.
         if (firstPartyCookiesEnabled && Build.VERSION.SDK_INT >= 21) {
             if (thirdPartyCookiesEnabled) {
                 thirdPartyCookiesPreference.setIcon(R.drawable.cookies_warning);
@@ -229,7 +250,7 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the `domStoragePreference` icon.
+        // Set the DOM storage icon.
         if (javaScriptEnabled || nightMode) {  // The preference is enabled.
             if (savedPreferences.getBoolean("dom_storage_enabled", false)) {  // DOM storage is enabled.
                 domStoragePreference.setIcon(R.drawable.dom_storage_enabled);
@@ -248,7 +269,7 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the `saveFormDataPreference` icon.
+        // Set the save form data icon.
         if (savedPreferences.getBoolean("save_form_data_enabled", false)) {
             saveFormDataPreference.setIcon(R.drawable.form_data_enabled);
         } else {
@@ -259,7 +280,7 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the `customUserAgentPreference` icon.
+        // Set the custom user agent icon.
         if (customUserAgentPreference.isEnabled()) {
             if (MainWebViewActivity.darkTheme) {
                 customUserAgentPreference.setIcon(R.drawable.custom_user_agent_enabled_dark);
@@ -274,7 +295,7 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the `incognitoModePreference` icon.
+        // Set the incognito mode icon.
         if (savedPreferences.getBoolean("incognito_mode", false)) {
             if (MainWebViewActivity.darkTheme) {
                 incognitoModePreference.setIcon(R.drawable.incognito_mode_enabled_dark);
@@ -289,7 +310,7 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the `doNotTrackPreference` icon.
+        // Set the Do Not Track icon.
         if (savedPreferences.getBoolean("do_not_track", false)) {
             if (MainWebViewActivity.darkTheme) {
                 doNotTrackPreference.setIcon(R.drawable.block_tracking_enabled_dark);
@@ -304,6 +325,21 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
+        // Set the allow screenshots icon.
+        if (savedPreferences.getBoolean("allow_screenshots", false)) {
+            if (MainWebViewActivity.darkTheme) {
+                allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_dark);
+            } else {
+                allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_light);
+            }
+        } else {
+            if (MainWebViewActivity.darkTheme) {
+                allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_dark);
+            } else {
+                allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_light);
+            }
+        }
+
         // Set the EasyList icon.
         if (savedPreferences.getBoolean("easylist", true)) {
             if (MainWebViewActivity.darkTheme) {
@@ -334,7 +370,7 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the Fanboy list icons.
+        // Set the Fanboy lists icons.
         if (fanboyAnnoyanceListEnabled) {
             if (MainWebViewActivity.darkTheme) {
                 // Set the Fanboy annoyance list icon.
@@ -412,7 +448,7 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the `searchCustomURLPreference` icon.
+        // Set the search custom URL icon.
         if (searchCustomURLPreference.isEnabled()) {
             if (MainWebViewActivity.darkTheme) {
                 searchCustomURLPreference.setIcon(R.drawable.search_custom_url_enabled_dark);
@@ -428,7 +464,7 @@ public class SettingsFragment extends PreferenceFragment {
         }
 
         // Set the full screen browsing mode icons.
-        if (fullScreenBrowsingMode) {  // `fullScreenBrowsingModeBoolean` is `true`.
+        if (fullScreenBrowsingMode) {  // Full screen browsing mode is enabled.
             // Set the `fullScreenBrowsingModePreference` icon according to the theme.
             if (MainWebViewActivity.darkTheme) {
                 fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_enabled_dark);
@@ -469,7 +505,7 @@ public class SettingsFragment extends PreferenceFragment {
                     }
                 }
             }
-        } else {  // `fullScreenBrowsingModeBoolean` is `false`.
+        } else {  // Full screen browsing mode is disabled.
             // Set the icons according to the theme.
             if (MainWebViewActivity.darkTheme) {
                 fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_disabled_dark);
@@ -482,7 +518,7 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the `clearEverythingPreference` icon.
+        // Set the clear everything preference icon.
         if (clearEverything) {
             if (MainWebViewActivity.darkTheme) {
                 clearEverythingPreference.setIcon(R.drawable.clear_everything_enabled_dark);
@@ -493,7 +529,7 @@ public class SettingsFragment extends PreferenceFragment {
             clearEverythingPreference.setIcon(R.drawable.clear_everything_disabled);
         }
 
-        // Set the `clearCookiesPreference` icon.
+        // Set the clear cookies preference icon.
         if (clearEverything || savedPreferences.getBoolean("clear_cookies", true)) {
             if (MainWebViewActivity.darkTheme) {
                 clearCookiesPreference.setIcon(R.drawable.cookies_cleared_dark);
@@ -504,7 +540,7 @@ public class SettingsFragment extends PreferenceFragment {
             clearCookiesPreference.setIcon(R.drawable.cookies_warning);
         }
 
-        // Set the `clearDomStoragePreference` icon.
+        // Set the clear DOM storage preference icon.
         if (clearEverything || savedPreferences.getBoolean("clear_dom_storage", true)) {
             if (MainWebViewActivity.darkTheme) {
                 clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_dark);
@@ -515,7 +551,7 @@ public class SettingsFragment extends PreferenceFragment {
             clearDomStoragePreference.setIcon(R.drawable.dom_storage_warning);
         }
 
-        // Set the `clearFormDataPreference` icon.
+        // Set the clear form data preference icon.
         if (clearEverything || savedPreferences.getBoolean("clear_form_data", true)) {
             if (MainWebViewActivity.darkTheme) {
                 clearFormDataPreference.setIcon(R.drawable.form_data_cleared_dark);
@@ -526,7 +562,7 @@ public class SettingsFragment extends PreferenceFragment {
             clearFormDataPreference.setIcon(R.drawable.form_data_warning);
         }
 
-        // Set the `clearCachePreference` icon.
+        // Set the clear cache preference icon.
         if (clearEverything || savedPreferences.getBoolean("clear_cache", true)) {
             if (MainWebViewActivity.darkTheme) {
                 clearCachePreference.setIcon(R.drawable.cache_cleared_dark);
@@ -537,8 +573,8 @@ public class SettingsFragment extends PreferenceFragment {
             clearCachePreference.setIcon(R.drawable.cache_warning);
         }
 
-        // Set the `swipeToRefreshPreference` icon.
-        if (savedPreferences.getBoolean("swipe_to_refresh", false)) {
+        // Set the swipe to refresh preference icon.
+        if (savedPreferences.getBoolean("swipe_to_refresh", true)) {
             if (MainWebViewActivity.darkTheme) {
                 swipeToRefreshPreference.setIcon(R.drawable.refresh_enabled_dark);
             } else {
@@ -552,7 +588,7 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the `displayAdditionalAppBarIconsPreference` icon.
+        // Set the display additional app bar icons preference icon.
         if (savedPreferences.getBoolean("display_additional_app_bar_icons", false)) {
             if (MainWebViewActivity.darkTheme) {
                 displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_enabled_dark);
@@ -567,14 +603,14 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the `darkThemePreference` icon.
+        // Set the dark theme preference icon.
         if (savedPreferences.getBoolean("dark_theme", false)) {
             darkThemePreference.setIcon(R.drawable.theme_dark);
         } else {
             darkThemePreference.setIcon(R.drawable.theme_light);
         }
 
-        // Set the `nightModePreference` icon.
+        // Set the night mode preference icon.
         if (nightMode) {
             if (MainWebViewActivity.darkTheme) {
                 nightModePreference.setIcon(R.drawable.night_mode_enabled_dark);
@@ -589,7 +625,7 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
-        // Set the `displayWebpageImagesPreference` icon.
+        // Set the display webpage images preference icon.
         if (savedPreferences.getBoolean("display_webpage_images", true)) {
             if (MainWebViewActivity.darkTheme) {
                 displayWebpageImagesPreference.setIcon(R.drawable.images_enabled_dark);
@@ -726,17 +762,25 @@ public class SettingsFragment extends PreferenceFragment {
                     }
 
                 case "user_agent":
-                    String userAgentString = sharedPreferences.getString("user_agent", "PrivacyBrowser/1.0");
+                    // Get the new user agent name.
+                    String newUserAgentName = sharedPreferences.getString("user_agent", "Privacy Browser");
+
+                    // Get the array position for the new user agent name.
+                    int newUserAgentArrayPosition = userAgentNamesArray.getPosition(newUserAgentName);
+
+                    // Get the translated new user agent name.
+                    String translatedNewUserAgentName = translatedUserAgentNamesArray[newUserAgentArrayPosition];
 
-                    switch (userAgentString) {
-                        case "WebView default user agent":
-                            // Display the user agent as the summary text for `userAgentPreference`.
-                            userAgentPreference.setSummary(bareWebView.getSettings().getUserAgentString());
+                    // Populate the user agent summary.
+                    switch (newUserAgentArrayPosition) {
+                        case MainWebViewActivity.SETTINGS_WEBVIEW_DEFAULT_USER_AGENT:
+                            // Get the user agent text from the webview (which changes based on the version of Android and WebView installed).
+                            userAgentPreference.setSummary(translatedNewUserAgentName + ":\n" + bareWebView.getSettings().getUserAgentString());
 
-                            // Disable `customUserAgentPreference`.
+                            // Disable the custom user agent preference.
                             customUserAgentPreference.setEnabled(false);
 
-                            // Set the `customUserAgentPreference` icon according to the theme.
+                            // Set the custom user agent preference icon according to the theme.
                             if (MainWebViewActivity.darkTheme) {
                                 customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_dark);
                             } else {
@@ -744,14 +788,14 @@ public class SettingsFragment extends PreferenceFragment {
                             }
                             break;
 
-                        case "Custom user agent":
-                            // Display `Custom user agent` as the summary text for `userAgentPreference`.
+                        case MainWebViewActivity.SETTINGS_CUSTOM_USER_AGENT:
+                            // Set the summary text.
                             userAgentPreference.setSummary(R.string.custom_user_agent);
 
-                            // Enable `customUserAgentPreference`.
+                            // Enable the custom user agent preference.
                             customUserAgentPreference.setEnabled(true);
 
-                            // Set the `customUserAgentPreference` icon according to the theme.
+                            // Set the custom user agent preference icon according to the theme.
                             if (MainWebViewActivity.darkTheme) {
                                 customUserAgentPreference.setIcon(R.drawable.custom_user_agent_enabled_dark);
                             } else {
@@ -760,24 +804,23 @@ public class SettingsFragment extends PreferenceFragment {
                             break;
 
                         default:
-                            // Display the user agent as the summary text for `userAgentPreference`.
-                            userAgentPreference.setSummary(sharedPreferences.getString("user_agent", "PrivacyBrowser/1.0"));
+                            // Get the user agent summary from the user agent data array.
+                            userAgentPreference.setSummary(translatedNewUserAgentName + ":\n" + userAgentDataArray[newUserAgentArrayPosition]);
 
-                            // Disable `customUserAgentPreference`.
+                            // Disable the custom user agent preference.
                             customUserAgentPreference.setEnabled(false);
 
-                            // Set the `customUserAgentPreference` icon according to the theme.
+                            // Set the custom user agent preference icon according to the theme.
                             if (MainWebViewActivity.darkTheme) {
                                 customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_dark);
                             } else {
                                 customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_light);
                             }
-                            break;
                     }
                     break;
 
                 case "custom_user_agent":
-                    // Set the new custom user agent as the summary text for `custom_user_agent`.  The default is `PrivacyBrowser/1.0`.
+                    // Set the new custom user agent as the summary text for the preference.
                     customUserAgentPreference.setSummary(sharedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0"));
                     break;
 
@@ -816,6 +859,35 @@ public class SettingsFragment extends PreferenceFragment {
 
                     break;
 
+                case "allow_screenshots":
+                    // Update the icon.
+                    if (sharedPreferences.getBoolean("allow_screenshots", false)) {
+                        if (MainWebViewActivity.darkTheme) {
+                            allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_dark);
+                        } else {
+                            allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_light);
+                        }
+                    } else {
+                        if (MainWebViewActivity.darkTheme) {
+                            allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_dark);
+                        } else {
+                            allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_light);
+                        }
+                    }
+
+                    // Create an intent to restart Privacy Browser.
+                    Intent allowScreenshotsRestartIntent = getActivity().getParentActivityIntent();
+
+                    // Assert that the intent is not null to remove the lint error below.
+                    assert allowScreenshotsRestartIntent != null;
+
+                    // `Intent.FLAG_ACTIVITY_CLEAR_TASK` removes all activities from the stack.  It requires `Intent.FLAG_ACTIVITY_NEW_TASK`.
+                    allowScreenshotsRestartIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+
+                    // Make it so.
+                    startActivity(allowScreenshotsRestartIntent);
+                    break;
+
                 case "easylist":
                     // Update the icon.
                     if (sharedPreferences.getBoolean("easylist", true)) {
@@ -1300,7 +1372,7 @@ public class SettingsFragment extends PreferenceFragment {
 
                 case "swipe_to_refresh":
                     // Update the icon.
-                    if (sharedPreferences.getBoolean("swipe_to_refresh", false)) {
+                    if (sharedPreferences.getBoolean("swipe_to_refresh", true)) {
                         if (MainWebViewActivity.darkTheme) {
                             swipeToRefreshPreference.setIcon(R.drawable.refresh_enabled_dark);
                         } else {
@@ -1340,17 +1412,17 @@ public class SettingsFragment extends PreferenceFragment {
                         darkThemePreference.setIcon(R.drawable.theme_light);
                     }
 
-                    // Create an `Intent` to restart Privacy Browser.
-                    Intent intent = getActivity().getParentActivityIntent();
+                    // Create an intent to restart Privacy Browser.
+                    Intent changeThemeRestartIntent = getActivity().getParentActivityIntent();
 
-                    // Assert that `intent` is not `null` to remove the lint error below.
-                    assert intent != null;
+                    // Assert that the intent is not null to remove the lint error below.
+                    assert changeThemeRestartIntent != null;
 
                     // `Intent.FLAG_ACTIVITY_CLEAR_TASK` removes all activities from the stack.  It requires `Intent.FLAG_ACTIVITY_NEW_TASK`.
-                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+                    changeThemeRestartIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
 
                     // Make it so.
-                    startActivity(intent);
+                    startActivity(changeThemeRestartIntent);
                     break;
 
                 case "night_mode":