]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java
Manually handle changes in screen layout. https://redmine.stoutner.com/issues/447
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / fragments / SettingsFragment.java
index 35956e94aae28a95d9b9bed8791dfcf052ef2caa..7dab898e383cb203bd84609b33cd6943cffc22ba 100644 (file)
@@ -60,7 +60,7 @@ public class SettingsFragment extends PreferenceFragment {
         Preference firstPartyCookiesPreference = findPreference("first_party_cookies");
         Preference thirdPartyCookiesPreference = findPreference("third_party_cookies");
         Preference domStoragePreference = findPreference("dom_storage");
-        Preference saveFormDataPreference = findPreference("save_form_data");  // The form data preference can be removed once the minimum API >= 26.
+        Preference formDataPreference = findPreference("save_form_data");  // The form data preference can be removed once the minimum API >= 26.
         Preference userAgentPreference = findPreference("user_agent");
         Preference customUserAgentPreference = findPreference("custom_user_agent");
         Preference incognitoModePreference = findPreference("incognito_mode");
@@ -72,6 +72,9 @@ public class SettingsFragment extends PreferenceFragment {
         Preference fanboySocialBlockingListPreference = findPreference("fanboys_social_blocking_list");
         Preference ultraPrivacyPreference = findPreference("ultraprivacy");
         Preference blockAllThirdPartyRequestsPreference = findPreference("block_all_third_party_requests");
+        Preference googleAnalyticsPreference = findPreference("google_analytics");
+        Preference facebookClickIdsPreference = findPreference("facebook_click_ids");
+        Preference twitterAmpRedirectsPreference = findPreference("twitter_amp_redirects");
         Preference proxyThroughOrbotPreference = findPreference("proxy_through_orbot");
         Preference torHomepagePreference = findPreference("tor_homepage");
         Preference torSearchPreference = findPreference("tor_search");
@@ -94,6 +97,7 @@ public class SettingsFragment extends PreferenceFragment {
         Preference downloadWithExternalAppPreference = findPreference("download_with_external_app");
         Preference darkThemePreference = findPreference("dark_theme");
         Preference nightModePreference = findPreference("night_mode");
+        Preference wideViewportPreference = findPreference("wide_viewport");
         Preference displayWebpageImagesPreference = findPreference("display_webpage_images");
 
         // Set dependencies.
@@ -130,7 +134,7 @@ public class SettingsFragment extends PreferenceFragment {
             PreferenceCategory clearAndExitCategory = (PreferenceCategory) findPreference("clear_and_exit");
 
             // Remove the form data preferences.
-            privacyCategory.removePreference(saveFormDataPreference);
+            privacyCategory.removePreference(formDataPreference);
             clearAndExitCategory.removePreference(clearFormDataPreference);
         }
 
@@ -288,12 +292,12 @@ 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", false)) {
-                saveFormDataPreference.setIcon(R.drawable.form_data_enabled);
+                formDataPreference.setIcon(R.drawable.form_data_enabled);
             } else {
                 if (darkTheme) {
-                    saveFormDataPreference.setIcon(R.drawable.form_data_disabled_dark);
+                    formDataPreference.setIcon(R.drawable.form_data_disabled_dark);
                 } else {
-                    saveFormDataPreference.setIcon(R.drawable.form_data_disabled_light);
+                    formDataPreference.setIcon(R.drawable.form_data_disabled_light);
                 }
             }
         }
@@ -457,6 +461,51 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
+        // Set the Google Analytics icon according to the theme.
+        if (savedPreferences.getBoolean("google_analytics", true)) {
+            if (darkTheme) {
+                googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+            } else {
+                googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_light);
+            }
+        } else {
+            if (darkTheme) {
+                googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+            } else {
+                googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_light);
+            }
+        }
+
+        // Set the Facebook Click IDs icon according to the theme.
+        if (savedPreferences.getBoolean("facebook_click_ids", true)) {
+            if (darkTheme) {
+                facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+            } else {
+                facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_light);
+            }
+        } else {
+            if (darkTheme) {
+                facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+            } else {
+                facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_light);
+            }
+        }
+
+        // Set the Twitter AMP redirects icon according to the theme.
+        if (savedPreferences.getBoolean("twitter_amp_redirects", true)) {
+            if (darkTheme) {
+                twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+            } else {
+                twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_light);
+            }
+        } else {
+            if (darkTheme) {
+                twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+            } else {
+                twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_light);
+            }
+        }
+
         // Set the Tor icons according to the theme.
         if (proxyThroughOrbot) {  // Proxying is enabled.
             if (darkTheme) {
@@ -701,6 +750,21 @@ public class SettingsFragment extends PreferenceFragment {
             }
         }
 
+        // Set the wide viewport preference icon.
+        if (savedPreferences.getBoolean("wide_viewport", true)) {
+            if (darkTheme) {
+                wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_dark);
+            } else {
+                wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_light);
+            }
+        } else {
+            if (darkTheme) {
+                wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_dark);
+            } else {
+                wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_light);
+            }
+        }
+
         // Set the display webpage images preference icon.
         if (savedPreferences.getBoolean("display_webpage_images", true)) {
             if (darkTheme) {
@@ -829,12 +893,12 @@ public class SettingsFragment extends PreferenceFragment {
                 case "save_form_data":
                     // Update the icon.
                     if (sharedPreferences.getBoolean("save_form_data", false)) {
-                        saveFormDataPreference.setIcon(R.drawable.form_data_enabled);
+                        formDataPreference.setIcon(R.drawable.form_data_enabled);
                     } else {
                         if (darkTheme) {
-                            saveFormDataPreference.setIcon(R.drawable.form_data_disabled_dark);
+                            formDataPreference.setIcon(R.drawable.form_data_disabled_dark);
                         } else {
-                            saveFormDataPreference.setIcon(R.drawable.form_data_disabled_light);
+                            formDataPreference.setIcon(R.drawable.form_data_disabled_light);
                         }
                     }
                     break;
@@ -974,8 +1038,8 @@ public class SettingsFragment extends PreferenceFragment {
                         System.exit(0);
                     };
 
-                    // Restart the activity after 100 milliseconds, so that the app has enough time to save the change to the preference.
-                    allowScreenshotsRestartHandler.postDelayed(allowScreenshotsRestartRunnable, 100);
+                    // Restart the activity after 150 milliseconds, so that the app has enough time to save the change to the preference.
+                    allowScreenshotsRestartHandler.postDelayed(allowScreenshotsRestartRunnable, 150);
                     break;
 
                 case "easylist":
@@ -1110,6 +1174,57 @@ public class SettingsFragment extends PreferenceFragment {
                     }
                     break;
 
+                case "google_analytics":
+                    // Update the icon.
+                    if (sharedPreferences.getBoolean("google_analytics", true)) {
+                        if (darkTheme) {
+                            googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+                        } else {
+                            googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_light);
+                        }
+                    } else {
+                        if (darkTheme) {
+                            googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+                        } else {
+                            googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_light);
+                        }
+                    }
+                    break;
+
+                case "facebook_click_ids":
+                    // Update the icon.
+                    if (sharedPreferences.getBoolean("facebook_click_ids", true)) {
+                        if (darkTheme) {
+                            facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+                        } else {
+                            facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_light);
+                        }
+                    } else {
+                        if (darkTheme) {
+                            facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+                        } else {
+                            facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_light);
+                        }
+                    }
+                    break;
+
+                case "twitter_amp_redirects":
+                    // Update the icon.
+                    if (sharedPreferences.getBoolean("twitter_amp_redirects", true)) {
+                        if (darkTheme) {
+                            twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+                        } else {
+                            twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_light);
+                        }
+                    } else {
+                        if (darkTheme) {
+                            twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+                        } else {
+                            twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_light);
+                        }
+                    }
+                    break;
+
                 case "proxy_through_orbot":
                     // Get current settings.
                     boolean currentProxyThroughOrbot = sharedPreferences.getBoolean("proxy_through_orbot", false);
@@ -1543,8 +1658,8 @@ public class SettingsFragment extends PreferenceFragment {
                         System.exit(0);
                     };
 
-                    // Restart the activity after 100 milliseconds, so that the app has enough time to save the change to the preference.
-                    changeThemeRestartHandler.postDelayed(changeThemeRestartRunnable, 100);
+                    // Restart the activity after 150 milliseconds, so that the app has enough time to save the change to the preference.
+                    changeThemeRestartHandler.postDelayed(changeThemeRestartRunnable, 150);
                     break;
 
                 case "night_mode":
@@ -1598,16 +1713,32 @@ public class SettingsFragment extends PreferenceFragment {
                     }
                     break;
 
+                case "wide_viewport":
+                    // Update the icon.
+                    if (sharedPreferences.getBoolean("wide_viewport", true)) {
+                        if (darkTheme) {
+                            wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_dark);
+                        } else {
+                            wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_light);
+                        }
+                    } else {
+                        if (darkTheme) {
+                            wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_dark);
+                        } else {
+                            wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_light);
+                        }
+                    }
+                    break;
+
                 case "display_webpage_images":
+                    // Update the icon.
                     if (sharedPreferences.getBoolean("display_webpage_images", true)) {
-                        // Update the icon.
                         if (darkTheme) {
                             displayWebpageImagesPreference.setIcon(R.drawable.images_enabled_dark);
                         } else {
                             displayWebpageImagesPreference.setIcon(R.drawable.images_enabled_light);
                         }
                     } else {
-                        // Update the icon.
                         if (darkTheme) {
                             displayWebpageImagesPreference.setIcon(R.drawable.images_disabled_dark);
                         } else {
@@ -1634,4 +1765,4 @@ public class SettingsFragment extends PreferenceFragment {
         super.onResume();
         savedPreferences.registerOnSharedPreferenceChangeListener(preferencesListener);
     }
-}
+}
\ No newline at end of file