From 5077aefc30fd3ad1a5b8fdfe4aada8fda471a37c Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Mon, 17 Sep 2018 15:22:13 -0700 Subject: Skip starting new fragment, if the manager is in paused state Bug: 111684268 Change-Id: Ice529356733d98181371e37beed7a34922313cc4 --- src/com/android/launcher3/SettingsActivity.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/com/android/launcher3/SettingsActivity.java b/src/com/android/launcher3/SettingsActivity.java index 8589b7ee6..1f802267c 100644 --- a/src/com/android/launcher3/SettingsActivity.java +++ b/src/com/android/launcher3/SettingsActivity.java @@ -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 -- cgit v1.2.3