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=78a92f870237089eae07cdf49183318f886df79b;hb=74857298f431569df1849e8ef91387cb25274095;hpb=1fd6e17736c7e6a410672ce8669241bcf4c4a350 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 78a92f87..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; @@ -73,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. @@ -356,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); @@ -777,6 +786,27 @@ public class SettingsFragment extends PreferenceFragment { } break; + 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. @@ -792,10 +822,6 @@ public class SettingsFragment extends PreferenceFragment { MainWebViewActivity.reloadOnRestartBoolean = true; } break; - - default: - // If no match, do nothing. - break; } } };