Add getSlotsMapping to PhoneInterfaceManager
Bug: 123101769
Test: build
Merged-In: Iedd6f5c7f1d932b45dc6f3b6cfa76dad4e0c430a
Change-Id: Iedd6f5c7f1d932b45dc6f3b6cfa76dad4e0c430a
(cherry picked from commit 3889a576c6091e7f52ad197931136d7821cf727d)
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index d080b31..494b89b 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -6542,4 +6542,24 @@
metrics.updateEnabledModemBitmap((1 << TelephonyManager.from(mApp).getPhoneCount()) - 1);
}
+ @Override
+ public int[] getSlotsMapping() {
+ enforceReadPrivilegedPermission("getSlotsMapping");
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ int phoneCount = TelephonyManager.getDefault().getPhoneCount();
+ // All logical slots should have a mapping to a physical slot.
+ int[] logicalSlotsMapping = new int[phoneCount];
+ UiccSlotInfo[] slotInfos = getUiccSlotsInfo();
+ for (int i = 0; i < slotInfos.length; i++) {
+ if (SubscriptionManager.isValidPhoneId(slotInfos[i].getLogicalSlotIdx())) {
+ logicalSlotsMapping[slotInfos[i].getLogicalSlotIdx()] = i;
+ }
+ }
+ return logicalSlotsMapping;
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
}