X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Ffragments%2FSettingsFragment.java;h=340e455215f360b96077f4c890d607aab39edd57;hp=6d317f06761e517e5cf5f413b518e95e5f157709;hb=74857298f431569df1849e8ef91387cb25274095;hpb=4d7e0bfa2399670591dc585f94a976b904787a9d diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java b/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java index 6d317f06..340e4552 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java @@ -20,6 +20,7 @@ package com.stoutner.privacybrowser.fragments; import android.annotation.SuppressLint; +import android.content.Intent; import android.content.SharedPreferences; import android.os.Build; import android.os.Bundle; @@ -30,6 +31,7 @@ import android.view.View; import android.webkit.WebView; import com.stoutner.privacybrowser.R; +import com.stoutner.privacybrowser.activities.MainWebViewActivity; public class SettingsFragment extends PreferenceFragment { private SharedPreferences.OnSharedPreferenceChangeListener preferencesListener; @@ -72,6 +74,7 @@ public class SettingsFragment extends PreferenceFragment { final Preference defaultFontSizePreference = findPreference("default_font_size"); final Preference swipeToRefreshPreference = findPreference("swipe_to_refresh"); final Preference displayAdditionalAppBarIconsPreference = findPreference("display_additional_app_bar_icons"); + final Preference darkThemePreference = findPreference("dark_theme"); final Preference displayWebpageImagesPreference = findPreference("display_webpage_images"); // Set dependencies. @@ -355,6 +358,13 @@ public class SettingsFragment extends PreferenceFragment { displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_disabled); } + // Set the `darkThemePreference` icon. + if (savedPreferences.getBoolean("dark_theme", false)) { + darkThemePreference.setIcon(R.drawable.theme_dark); + } else { + darkThemePreference.setIcon(R.drawable.theme_light); + } + // Set the `displayWebpageImagesPreference` icon. if (savedPreferences.getBoolean("display_webpage_images", true)) { displayWebpageImagesPreference.setIcon(R.drawable.images_enabled); @@ -776,17 +786,41 @@ public class SettingsFragment extends PreferenceFragment { } break; - case "display_webpage_images": + case "dark_theme": // Update the icon. + if (sharedPreferences.getBoolean("dark_theme", false)) { + darkThemePreference.setIcon(R.drawable.theme_dark); + } else { + darkThemePreference.setIcon(R.drawable.theme_light); + } + + // Create an `Intent` to restart Privacy Browser. + Intent intent = getActivity().getParentActivityIntent(); + + // Assert that `intent` is not `null` to remove the lint error below. + assert intent != 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); + + // Make it so. + startActivity(intent); + break; + + case "display_webpage_images": if (sharedPreferences.getBoolean("display_webpage_images", true)) { + // Update the icon. displayWebpageImagesPreference.setIcon(R.drawable.images_enabled); + + // `mainWebView` does not need to be reloaded because unloaded images will load automatically. + MainWebViewActivity.reloadOnRestartBoolean = false; } else { + // Update the icon. displayWebpageImagesPreference.setIcon(R.drawable.images_disabled); - } - break; - default: - // If no match, do nothing. + // Set `mainWebView` to reload on restart to remove the current images. + MainWebViewActivity.reloadOnRestartBoolean = true; + } break; } }