Fix bug #14288652 Settings crash on hitting back key from Tap and Pay screen
Gasp ... the Observer registering/unregistering code was not totally correct as we were unregistering on a different RootAdapter. - refactor the code for registering / unregistering the Observer - unregister when the Fragment is stopped thru onStop(). Change-Id: I036eacd87c80fd2c9dedca705fb94a57a0c9a21d
This commit is contained in:
@@ -113,16 +113,24 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di
|
||||
|
||||
@Override
|
||||
protected void onBindPreferences() {
|
||||
registerObserverIfNeeded();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
super.onStop();
|
||||
|
||||
unregisterObserverIfNeeded();
|
||||
}
|
||||
|
||||
public void registerObserverIfNeeded() {
|
||||
if (!mIsDataSetObserverRegistered) {
|
||||
getPreferenceScreen().getRootAdapter().registerDataSetObserver(mDataSetObserver);
|
||||
mIsDataSetObserverRegistered = true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
public void unregisterObserverIfNeeded() {
|
||||
if (mIsDataSetObserverRegistered) {
|
||||
getPreferenceScreen().getRootAdapter().unregisterDataSetObserver(mDataSetObserver);
|
||||
mIsDataSetObserverRegistered = false;
|
||||
|
Reference in New Issue
Block a user