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;
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.
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);
}
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.
MainWebViewActivity.reloadOnRestartBoolean = true;
}
break;
-
- default:
- // If no match, do nothing.
- break;
}
}
};