]> 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 55b852e1e54917692587f726be81b4a7060f23f5..cb0ca13e4883f6c0ad6ce26fe55c60ceb2527a5e 100644 (file)
@@ -60,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");
@@ -194,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.
@@ -203,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&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 {
@@ -230,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);
@@ -249,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);
@@ -268,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 {
@@ -279,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);
@@ -294,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);
@@ -309,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);
@@ -324,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) {
@@ -354,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.
@@ -432,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);
@@ -448,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);
@@ -489,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);
@@ -502,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);
@@ -513,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);
@@ -524,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);
@@ -535,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);
@@ -546,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);
@@ -557,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 {
@@ -572,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);
@@ -587,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);
@@ -609,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);
@@ -843,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)) {
@@ -1327,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 {
@@ -1367,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":