Skip starting new fragment, if the manager is in paused state

Bug: 111684268
Change-Id: Ice529356733d98181371e37beed7a34922313cc4
This commit is contained in:
Sunny Goyal
2018-09-17 15:22:13 -07:00
parent ee598ada79
commit 5077aefc30
@@ -88,6 +88,11 @@ public class SettingsActivity extends Activity
@Override
public boolean onPreferenceStartFragment(
PreferenceFragment preferenceFragment, Preference pref) {
if (getFragmentManager().isStateSaved()) {
// Sometimes onClick can come after onPause because of being posted on the handler.
// Skip starting new fragments in that case.
return false;
}
Fragment f = Fragment.instantiate(this, pref.getFragment(), pref.getExtras());
if (f instanceof DialogFragment) {
((DialogFragment) f).show(getFragmentManager(), pref.getKey());
@@ -241,8 +246,7 @@ public class SettingsActivity extends Activity
* Content observer which listens for system badging setting changes,
* and updates the launcher badging setting subtext accordingly.
*/
private static class IconBadgingObserver extends SettingsObserver.Secure
implements Preference.OnPreferenceClickListener {
private static class IconBadgingObserver extends SettingsObserver.Secure {
private final ButtonPreference mBadgingPref;
private final ContentResolver mResolver;
@@ -275,16 +279,11 @@ public class SettingsActivity extends Activity
}
}
mBadgingPref.setWidgetFrameVisible(!serviceEnabled);
mBadgingPref.setOnPreferenceClickListener(serviceEnabled ? null : this);
mBadgingPref.setFragment(
serviceEnabled ? null : NotificationAccessConfirmation.class.getName());
mBadgingPref.setSummary(summary);
}
@Override
public boolean onPreferenceClick(Preference preference) {
new NotificationAccessConfirmation().show(mFragmentManager, "notification_access");
return true;
}
}
public static class NotificationAccessConfirmation