diff --git a/src/com/android/settings/sim/PreferredSimDialogFragment.java b/src/com/android/settings/sim/PreferredSimDialogFragment.java index c4a9484f653..7786dd1297b 100644 --- a/src/com/android/settings/sim/PreferredSimDialogFragment.java +++ b/src/com/android/settings/sim/PreferredSimDialogFragment.java @@ -23,6 +23,7 @@ import android.content.DialogInterface; import android.os.Bundle; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; +import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -81,7 +82,12 @@ 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; + } if (info == null) { dismiss(); return; diff --git a/src/com/android/settings/sim/SimDialogFragment.java b/src/com/android/settings/sim/SimDialogFragment.java index 362fccc75ab..889f0621d81 100644 --- a/src/com/android/settings/sim/SimDialogFragment.java +++ b/src/com/android/settings/sim/SimDialogFragment.java @@ -19,6 +19,7 @@ package com.android.settings.sim; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; +import android.util.Log; import androidx.annotation.NonNull; @@ -34,6 +35,7 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment imple private static final String KEY_DIALOG_TYPE = "dialog_type"; private SubscriptionsChangeListener mChangeListener; + protected boolean mWasDismissed = false; protected static Bundle initArguments(int dialogType, int titleResId) { final Bundle args = new Bundle(); @@ -53,6 +55,8 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment imple @Override public void onAttach(Context context) { super.onAttach(context); + Log.d(TAG, "Dialog Attached."); + mWasDismissed = false; mChangeListener = new SubscriptionsChangeListener(context, this); } @@ -70,6 +74,8 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment imple @Override public void onDismiss(@NonNull DialogInterface dialog) { + Log.d(TAG, "Dialog Dismissed."); + mWasDismissed = true; super.onDismiss(dialog); final SimDialogActivity activity = (SimDialogActivity) getActivity(); if (activity != null && !activity.isFinishing()) { diff --git a/src/com/android/settings/sim/SimListDialogFragment.java b/src/com/android/settings/sim/SimListDialogFragment.java index 2e3cfc7dbb2..2681d7b62bb 100644 --- a/src/com/android/settings/sim/SimListDialogFragment.java +++ b/src/com/android/settings/sim/SimListDialogFragment.java @@ -24,6 +24,7 @@ import android.os.Bundle; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.text.TextUtils; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -49,6 +50,7 @@ import java.util.List; */ public class SimListDialogFragment extends SimDialogFragment implements DialogInterface.OnClickListener { + private static final String TAG = "SimListDialogFragment"; protected static final String KEY_INCLUDE_ASK_EVERY_TIME = "include_ask_every_time"; protected SelectSubscriptionAdapter mAdapter; @@ -101,9 +103,13 @@ public class SimListDialogFragment extends SimDialogFragment implements @Override public void updateDialog() { + Log.d(TAG, "Dialog updated, dismiss status: " + mWasDismissed); + List currentSubscriptions = getCurrentSubscriptions(); if (currentSubscriptions == null) { - dismiss(); + if (!mWasDismissed) { + dismiss(); + } return; } if (getArguments().getBoolean(KEY_INCLUDE_ASK_EVERY_TIME)) {