]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java
Fix a crash when opening a drawer while restarting. https://redmine.stoutner.com...
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / fragments / SettingsFragment.java
index 04a0bcc33ea82d6b4d0c988086a5e09d058476b1..306f1e2c57a0c3465e718f21f62a5432e152a48f 100644 (file)
@@ -118,7 +118,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
         // Get the current theme status.
         currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
 
-        // // Get a handle for the shared preferences.
+        // Get a handle for the shared preferences.
         SharedPreferences sharedPreferences = getPreferenceScreen().getSharedPreferences();
 
         // Get handles for the preferences.
@@ -979,12 +979,6 @@ public class SettingsFragment extends PreferenceFragmentCompat {
                 displayWebpageImagesPreference.setIcon(R.drawable.images_disabled_day);
             }
         }
-
-        // Get the shared preferences change listener.
-        sharedPreferenceChangeListener = getSharedPreferencesChangeListener(requireContext());
-
-        // Register the listener.
-        sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
     }
 
     // The listener should be unregistered when the app is paused.
@@ -996,7 +990,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
         // Get a handle for the shared preferences.
         SharedPreferences sharedPreferences = getPreferenceScreen().getSharedPreferences();
 
-        // Unregister the shared preferences listener.
+        // Unregister the shared preference listener.
         sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
     }
 
@@ -1006,18 +1000,19 @@ public class SettingsFragment extends PreferenceFragmentCompat {
         // Run the default commands.
         super.onResume();
 
-        // Get a new shared preferences change listener.
-        sharedPreferenceChangeListener = getSharedPreferencesChangeListener(requireContext());
+        // Get a new shared preference change listener.
+        sharedPreferenceChangeListener = getSharedPreferenceChangeListener(requireContext());
 
         // Get a handle for the shared preferences.
         SharedPreferences sharedPreferences = getPreferenceScreen().getSharedPreferences();
 
-        // Re-register the shared preferences listener.
+        // Re-register the shared preference listener.
         sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
     }
 
     // The context must be passed to the shared preference change listener or else any calls to the system `getString()` will crash if the app has been restarted.
-    private SharedPreferences.OnSharedPreferenceChangeListener getSharedPreferencesChangeListener(Context context) {
+    // This can be removed at some future point, perhaps after the switch to PreferenceScreenCompat.  It isn't an issue in Privacy Cell.
+    private SharedPreferences.OnSharedPreferenceChangeListener getSharedPreferenceChangeListener(Context context) {
         // Return the shared preference change listener.
         return (SharedPreferences sharedPreferences, String key) -> {
             switch (key) {
@@ -1975,4 +1970,4 @@ public class SettingsFragment extends PreferenceFragmentCompat {
         // Restart the activity after 400 milliseconds, so that the app has enough time to save the change to the preference.
         restartHandler.postDelayed(restartRunnable, 400);
     }
-}
\ No newline at end of file
+}