Merge "[Settings] 1. Provision status checking of eSIM  2. Show SIM if isOpportunistic is false"
diff --git a/src/com/android/settings/network/MobileNetworkRepository.java b/src/com/android/settings/network/MobileNetworkRepository.java
index 42f15c8..0c150af 100644
--- a/src/com/android/settings/network/MobileNetworkRepository.java
+++ b/src/com/android/settings/network/MobileNetworkRepository.java
@@ -15,6 +15,7 @@
  */
 package com.android.settings.network;
 
+import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING;
 import static android.telephony.UiccSlotInfo.CARD_STATE_INFO_PRESENT;
 
 import static com.android.internal.telephony.TelephonyIntents.ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED;
@@ -265,7 +266,7 @@
                         mPortIndex = portInfo.getPortIndex();
                     } else if (DEBUG) {
                         Log.d(TAG, "Can not get port index and physicalSlotIndex for subId "
-                                        + mSubId);
+                                + mSubId);
                     }
                 });
                 if (mPhysicalSlotIndex != SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
@@ -324,7 +325,12 @@
             SubscriptionInfoEntity subInfoEntity =
                     convertToSubscriptionInfoEntity(context, info);
             if (subInfoEntity != null) {
-                mSubscriptionInfoMap.put(info.getSubscriptionId(), info);
+                int subId = info.getSubscriptionId();
+                mSubscriptionInfoMap.put(subId, info);
+                if (DEBUG) {
+                    Log.d(TAG, "convert subId " + subId + "to SubscriptionInfoEntity: "
+                            + subInfoEntity);
+                }
                 mMobileNetworkDatabase.insertSubsInfo(subInfoEntity);
                 mMetricsFeatureProvider.action(mContext,
                         SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_SUB_INFO);
@@ -401,13 +407,21 @@
     }
 
     public void insertUiccInfo() {
-        mMobileNetworkDatabase.insertUiccInfo(convertToUiccInfoEntity());
+        UiccInfoEntity uiccInfoEntity = convertToUiccInfoEntity();
+        if (DEBUG) {
+            Log.d(TAG, "uiccInfoEntity = " + uiccInfoEntity);
+        }
+        mMobileNetworkDatabase.insertUiccInfo(uiccInfoEntity);
         mMetricsFeatureProvider.action(mContext,
                 SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_UICC_INFO);
     }
 
     public void insertMobileNetworkInfo(Context context) {
-        mMobileNetworkDatabase.insertMobileNetworkInfo(convertToMobileNetworkInfoEntity(context));
+        MobileNetworkInfoEntity mobileNetworkInfoEntity = convertToMobileNetworkInfoEntity(context);
+        if (DEBUG) {
+            Log.d(TAG, "mobileNetworkInfoEntity = " + mobileNetworkInfoEntity);
+        }
+        mMobileNetworkDatabase.insertMobileNetworkInfo(mobileNetworkInfoEntity);
         mMetricsFeatureProvider.action(mContext,
                 SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_MOBILE_NETWORK_INFO);
     }
@@ -449,7 +463,8 @@
 
     @Override
     public void onSubscriptionsChanged() {
-        insertAvailableSubInfoToEntity(mSubscriptionManager.getAvailableSubscriptionInfoList());
+        insertAvailableSubInfoToEntity(
+                SubscriptionUtil.getSelectableSubscriptionInfoList(mContext));
     }
 
     private void insertAvailableSubInfoToEntity(List<SubscriptionInfo> availableInfoList) {
@@ -470,8 +485,14 @@
             for (SubscriptionInfo subInfo : infoArray) {
                 mSubscriptionInfoMap.remove(subInfo.getSubscriptionId());
                 if (DEBUG) {
-                    Log.d(TAG,
-                            "insert sudInfo " + subInfo.getSubscriptionId() + " to subInfoEntity");
+                    Log.d(TAG, "insert subInfo to subInfoEntity, subInfo = " + subInfo);
+                }
+                if (subInfo.isEmbedded()
+                        && subInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING) {
+                    if (DEBUG) {
+                        Log.d(TAG, "Do not insert the provision eSIM");
+                    }
+                    continue;
                 }
                 insertSubInfo(mContext, subInfo);
             }