diff --git a/src/com/android/settings/sim/PreferredSimDialogFragment.java b/src/com/android/settings/sim/PreferredSimDialogFragment.java index 7786dd1297b..6b5e2b50f73 100644 --- a/src/com/android/settings/sim/PreferredSimDialogFragment.java +++ b/src/com/android/settings/sim/PreferredSimDialogFragment.java @@ -84,10 +84,11 @@ public class PreferredSimDialogFragment extends SimDialogFragment implements private void updateDialog(AlertDialog dialog) { Log.d(TAG, "Dialog updated, dismiss status: " + mWasDismissed); - final SubscriptionInfo info = getPreferredSubscription(); if (mWasDismissed) { return; } + + final SubscriptionInfo info = getPreferredSubscription(); if (info == null) { dismiss(); return; diff --git a/src/com/android/settings/sim/SimDialogFragment.java b/src/com/android/settings/sim/SimDialogFragment.java index 889f0621d81..2e4fa49367f 100644 --- a/src/com/android/settings/sim/SimDialogFragment.java +++ b/src/com/android/settings/sim/SimDialogFragment.java @@ -83,6 +83,12 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment imple } } + @Override + public void dismiss() { + mChangeListener.stop(); + super.dismiss(); + } + public abstract void updateDialog(); @Override diff --git a/src/com/android/settings/sim/SimListDialogFragment.java b/src/com/android/settings/sim/SimListDialogFragment.java index b8fef8a63e6..166d00a10fe 100644 --- a/src/com/android/settings/sim/SimListDialogFragment.java +++ b/src/com/android/settings/sim/SimListDialogFragment.java @@ -128,12 +128,13 @@ public class SimListDialogFragment extends SimDialogFragment { @Override public void updateDialog() { Log.d(TAG, "Dialog updated, dismiss status: " + mWasDismissed); + if (mWasDismissed) { + return; + } List currentSubscriptions = getCurrentSubscriptions(); if (currentSubscriptions == null) { - if (!mWasDismissed) { - dismiss(); - } + dismiss(); return; } boolean includeAskEveryTime = getArguments().getBoolean(KEY_INCLUDE_ASK_EVERY_TIME);