diff --git a/src/com/android/settings/sim/CallsSimListDialogFragment.java b/src/com/android/settings/sim/CallsSimListDialogFragment.java index 58da1117f15..cbee634cb7e 100644 --- a/src/com/android/settings/sim/CallsSimListDialogFragment.java +++ b/src/com/android/settings/sim/CallsSimListDialogFragment.java @@ -16,6 +16,8 @@ package com.android.settings.sim; +import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING; + import android.app.settings.SettingsEnums; import android.content.Context; import android.telecom.PhoneAccountHandle; @@ -51,6 +53,12 @@ public class CallsSimListDialogFragment extends SimListDialogFragment { if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) { continue; } + + SubscriptionInfo info = subscriptionManager.getActiveSubscriptionInfo(subId); + if (info == null || (info.isEmbedded() + && info.getProfileClass() == PROFILE_CLASS_PROVISIONING)) { + continue; + } result.add(subscriptionManager.getActiveSubscriptionInfo(subId)); } return result; diff --git a/src/com/android/settings/sim/PreferredSimDialogFragment.java b/src/com/android/settings/sim/PreferredSimDialogFragment.java index 2bfeafe524a..50eb993ab27 100644 --- a/src/com/android/settings/sim/PreferredSimDialogFragment.java +++ b/src/com/android/settings/sim/PreferredSimDialogFragment.java @@ -16,6 +16,8 @@ package com.android.settings.sim; +import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING; + import android.app.Activity; import android.app.Dialog; import android.app.settings.SettingsEnums; @@ -95,7 +97,8 @@ public class PreferredSimDialogFragment extends SimDialogFragment implements } final SubscriptionInfo info = getPreferredSubscription(); - if (info == null) { + if (info == null || (info.isEmbedded() + && info.getProfileClass() == PROFILE_CLASS_PROVISIONING)) { dismiss(); return; } diff --git a/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java b/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java index 9fa60ef6590..b2ca6210a86 100644 --- a/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java +++ b/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java @@ -16,6 +16,8 @@ package com.android.settings.sim; +import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING; + import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.DialogInterface; @@ -113,6 +115,15 @@ public class SelectSpecificDataSimDialogFragment extends SimDialogFragment imple dismiss(); return; } + + if ((newSubInfo.isEmbedded() && newSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING) + || (currentDataSubInfo.isEmbedded() + && currentDataSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING)) { + Log.d(TAG, "do not set the provision eSIM"); + dismiss(); + return; + } + Log.d(TAG, "newSubId: " + newSubInfo.getSubscriptionId() + "currentDataSubID: " + currentDataSubInfo.getSubscriptionId()); setTargetSubscriptionInfo(newSubInfo); diff --git a/src/com/android/settings/sim/SimListDialogFragment.java b/src/com/android/settings/sim/SimListDialogFragment.java index 06b116c77cb..245d31e8980 100644 --- a/src/com/android/settings/sim/SimListDialogFragment.java +++ b/src/com/android/settings/sim/SimListDialogFragment.java @@ -16,6 +16,8 @@ package com.android.settings.sim; +import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING; + import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.Context; @@ -137,6 +139,11 @@ public class SimListDialogFragment extends SimDialogFragment { dismiss(); return; } + + // Remove the provision eSIM from the subscription list. + currentSubscriptions.removeIf(info -> info.isEmbedded() + && info.getProfileClass() == PROFILE_CLASS_PROVISIONING); + boolean includeAskEveryTime = getArguments().getBoolean(KEY_INCLUDE_ASK_EVERY_TIME); boolean isCancelItemShowed = getArguments().getBoolean(KEY_SHOW_CANCEL_ITEM); if (includeAskEveryTime || isCancelItemShowed) {