Merge "Store whether the Dialog was previously dismissed" into sc-dev
diff --git a/src/com/android/settings/sim/PreferredSimDialogFragment.java b/src/com/android/settings/sim/PreferredSimDialogFragment.java
index c4a9484..7786dd1 100644
--- a/src/com/android/settings/sim/PreferredSimDialogFragment.java
+++ b/src/com/android/settings/sim/PreferredSimDialogFragment.java
@@ -23,6 +23,7 @@
 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 @@
     }
 
     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 362fccc..889f062 100644
--- a/src/com/android/settings/sim/SimDialogFragment.java
+++ b/src/com/android/settings/sim/SimDialogFragment.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.os.Bundle;
+import android.util.Log;
 
 import androidx.annotation.NonNull;
 
@@ -34,6 +35,7 @@
     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 @@
     @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 @@
 
     @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 2e3cfc7..2681d7b 100644
--- a/src/com/android/settings/sim/SimListDialogFragment.java
+++ b/src/com/android/settings/sim/SimListDialogFragment.java
@@ -24,6 +24,7 @@
 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 @@
  */
 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 @@
 
     @Override
     public void updateDialog() {
+        Log.d(TAG, "Dialog updated, dismiss status: " + mWasDismissed);
+
         List<SubscriptionInfo> currentSubscriptions = getCurrentSubscriptions();
         if (currentSubscriptions == null) {
-            dismiss();
+            if (!mWasDismissed) {
+                dismiss();
+            }
             return;
         }
         if (getArguments().getBoolean(KEY_INCLUDE_ASK_EVERY_TIME)) {