tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit cdb28fa88c2b4bedbf3de63c783a5d8260636b3e
parent c55071f4ec2e09550268da19033edb73f91f56f4
Author: mcarare <48995920+mcarare@users.noreply.github.com>
Date:   Thu,  6 Nov 2025 16:04:53 +0000

Bug 1998699 - Use onResume/onPause for listener registration/unregistration in SecretSettingsFragment. r=android-reviewers,avirvara

This ensures that the listener is only active when the fragment is actually visible to the user, preventing potential crashes or unexpected behavior if a preference change occurs while the fragment is paused but not stopped. A check (`isAdded`) is also added to `onSharedPreferenceChanged` to prevent updates when the fragment is not attached to an activity.

Differential Revision: https://phabricator.services.mozilla.com/D271599

Diffstat:
Mmobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/SecretSettingsFragment.kt | 13+++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/SecretSettingsFragment.kt b/mobile/android/focus-android/app/src/main/java/org/mozilla/focus/settings/advanced/SecretSettingsFragment.kt @@ -22,12 +22,17 @@ class SecretSettingsFragment : BaseSettingsFragment(), SharedPreferences.OnSharedPreferenceChangeListener { - override fun onStart() { - super.onStart() + override fun onResume() { + super.onResume() showToolbar(getString(R.string.preference_secret_settings)) preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this) } + override fun onPause() { + super.onPause() + preferenceManager.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this) + } + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { addPreferencesFromResource(R.xml.secret_settings) @@ -54,6 +59,10 @@ class SecretSettingsFragment : } override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String?) { + if (!isAdded) { + return + } + findPreference<SwitchPreference>( getPreferenceKey(R.string.pref_key_use_nimbus_preview), )?.let { nimbusPreviewPref ->