summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/android/settings/network/UiccSlotUtil.java24
-rw-r--r--src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java3
2 files changed, 26 insertions, 1 deletions
diff --git a/src/com/android/settings/network/UiccSlotUtil.java b/src/com/android/settings/network/UiccSlotUtil.java
index 0d0aa9f5e8..debd7412d2 100644
--- a/src/com/android/settings/network/UiccSlotUtil.java
+++ b/src/com/android/settings/network/UiccSlotUtil.java
@@ -23,6 +23,7 @@ import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.UiccCardInfo;
+import android.telephony.UiccPortInfo;
import android.telephony.UiccSlotInfo;
import android.telephony.UiccSlotMapping;
import android.util.Log;
@@ -439,4 +440,27 @@ public class UiccSlotUtil {
Log.i(TAG, "isRemovableSimEnabled: " + isRemovableSimEnabled);
return isRemovableSimEnabled;
}
+
+ public static boolean isEsimSub(SubscriptionInfo subInfo, TelephonyManager telMgr) {
+ if (telMgr == null) {
+ return false;
+ }
+ UiccSlotInfo[] slotsInfo = telMgr.getUiccSlotsInfo();
+ for (int i = 0; slotsInfo != null && i < slotsInfo.length; i++) {
+ UiccSlotInfo slotInfo = slotsInfo[i];
+ if (slotInfo == null || !slotInfo.getIsEuicc()) {
+ continue;
+ }
+ for (UiccPortInfo portInfo : slotInfo.getPorts()) {
+ String iccId = portInfo.getIccId();
+ Log.i(TAG, "isEsimSub: " + " subInfo iccid: " + subInfo.getIccId()
+ + " portInfoiccid: " + portInfo.getIccId() + " portIndex: "
+ + portInfo.getPortIndex());
+ if (iccId.equals(subInfo.getIccId())) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
}
diff --git a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
index 2e5fa58bf7..c553e57f7a 100644
--- a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
+++ b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
@@ -351,7 +351,8 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc
showEnableDsdsConfirmDialog();
return;
}
- if (!mIsEsimOperation && isRemovableSimEnabled()) {
+ if (!mIsEsimOperation && (isRemovableSimEnabled() ||
+ UiccSlotUtil.isEsimSub(mSubInfo, mTelMgr))) {
// This case is for switching on psim when device is not multiple enable profile
// supported.
Log.i(TAG, "Toggle on pSIM, no dialog displayed.");