Loading src/java/com/android/internal/telephony/euicc/EuiccController.java +6 −5 Original line number Diff line number Diff line Loading @@ -968,23 +968,24 @@ public class EuiccController extends IEuiccController.Stub { public void switchToSubscription(int cardId, int subscriptionId, String callingPackage, PendingIntent callbackIntent) { // convert PendingIntent to callback if no callback provided switchToSubscription(cardId, 0, subscriptionId, false /* forceDeactivateSim */, switchToSubscription(cardId, subscriptionId, 0, false /* forceDeactivateSim */, callingPackage, callbackIntent, false); } @Override public void switchToSubscriptionWithPort(int cardId, int portIndex, int subscriptionId, public void switchToSubscriptionWithPort(int cardId, int subscriptionId, int portIndex, String callingPackage, PendingIntent callbackIntent) { switchToSubscription(cardId, portIndex, subscriptionId, false /* forceDeactivateSim */, switchToSubscription(cardId, subscriptionId, portIndex, false /* forceDeactivateSim */, callingPackage, callbackIntent, true); } void switchToSubscription(int cardId, int portIndex, int subscriptionId, void switchToSubscription(int cardId, int subscriptionId, int portIndex, boolean forceDeactivateSim, String callingPackage, PendingIntent callbackIntent, boolean usePortIndex) { boolean callerCanWriteEmbeddedSubscriptions = callerCanWriteEmbeddedSubscriptions(); mAppOpsManager.checkPackage(Binder.getCallingUid(), callingPackage); Log.d(TAG, " subId: " + subscriptionId + " portIndex: " + portIndex + " forceDeactivateSim: " + forceDeactivateSim + " usePortIndex: " + usePortIndex); long token = Binder.clearCallingIdentity(); try { if (callerCanWriteEmbeddedSubscriptions) { Loading src/java/com/android/internal/telephony/euicc/EuiccOperation.java +1 −1 Original line number Diff line number Diff line Loading @@ -508,8 +508,8 @@ public class EuiccOperation implements Parcelable { EuiccController euiccController = EuiccController.get(); euiccController.switchToSubscription( cardId, portIndex, mSubscriptionId, portIndex, true /* forceDeactivateSim */, mCallingPackage, callbackIntent, Loading src/java/com/android/internal/telephony/uicc/UiccController.java +3 −13 Original line number Diff line number Diff line Loading @@ -931,19 +931,9 @@ public class UiccController extends Handler { List<UiccPortInfo> portInfos = new ArrayList<>(); int[] portIndexes = slot.getPortList(); for (int portIdx : portIndexes) { if (slot.isPortActive(portIdx)) { UiccPort port = slot.getUiccCard().getUiccPort(portIdx); portInfos.add(new UiccPortInfo(IccUtils.stripTrailingFs(port.getIccId()), port.getPortIdx(), port.getPhoneId(), true)); } else { // If port is inactive, use slot.getIccId API to get iccid value. portInfos.add(new UiccPortInfo(IccUtils.stripTrailingFs(slot.getIccId(portIdx)), portIdx, -1/*Invalid phoneId*/, false)); } String iccId = IccUtils.stripTrailingFs(slot.getIccId(portIdx)); portInfos.add(new UiccPortInfo(iccId, portIdx, slot.getPhoneIdFromPortIndex(portIdx), slot.isPortActive(portIdx))); } UiccCardInfo info = new UiccCardInfo( isEuicc, cardId, eid, slotIndex, isRemovable, Loading src/java/com/android/internal/telephony/uicc/UiccSlot.java +2 −5 Original line number Diff line number Diff line Loading @@ -273,12 +273,9 @@ public class UiccSlot extends Handler { } public boolean isPortActive(int portIdx) { UiccPort uiccPort = null; synchronized (mLock) { if (mUiccCard != null) { uiccPort = mUiccCard.getUiccPort(portIdx); } return uiccPort != null; return SubscriptionManager.isValidPhoneId( mPortIdxToPhoneId.getOrDefault(portIdx, INVALID_PHONE_ID)); } } Loading tests/telephonytests/src/com/android/internal/telephony/uicc/UiccControllerTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -353,11 +353,13 @@ public class UiccControllerTest extends TelephonyTest { doReturn("A1B2C3D4").when(mMockCard).getCardId(); doReturn(IccCardStatus.CardState.CARDSTATE_PRESENT).when(mMockCard).getCardState(); doReturn(true).when(mMockSlot).isActive(); //TODO: use UICCPort when ready // Mock out UiccPort doReturn(new int[]{0}).when(mMockSlot).getPortList(); doReturn(mMockPort).when(mMockCard).getUiccPort(0); doReturn("123451234567890").when(mMockPort).getIccId(); doReturn(true).when(mMockSlot).isPortActive(0); doReturn("123451234567890").when(mMockSlot).getIccId(0); // simulate card status loaded so that the UiccController sets the card ID IccCardStatus ics = new IccCardStatus(); Loading Loading @@ -408,6 +410,7 @@ public class UiccControllerTest extends TelephonyTest { doReturn("123451234567890F").when(mMockPort).getIccId(); doReturn(new int[]{0}).when(mMockSlot).getPortList(); doReturn(true).when(mMockSlot).isPortActive(0); doReturn("123451234567890F").when(mMockSlot).getIccId(0); // simulate card status loaded so that the UiccController sets the card ID IccCardStatus ics = new IccCardStatus(); Loading Loading @@ -453,6 +456,7 @@ public class UiccControllerTest extends TelephonyTest { // Mock out Port Index and IccId doReturn(new int[]{0}).when(mMockSlot).getPortList(); doReturn("123451234567890").when(mMockSlot).getIccId(0); doReturn(-1).when(mMockSlot).getPhoneIdFromPortIndex(0); // simulate card status loaded so that the UiccController sets the card ID IccCardStatus ics = new IccCardStatus(); Loading Loading
src/java/com/android/internal/telephony/euicc/EuiccController.java +6 −5 Original line number Diff line number Diff line Loading @@ -968,23 +968,24 @@ public class EuiccController extends IEuiccController.Stub { public void switchToSubscription(int cardId, int subscriptionId, String callingPackage, PendingIntent callbackIntent) { // convert PendingIntent to callback if no callback provided switchToSubscription(cardId, 0, subscriptionId, false /* forceDeactivateSim */, switchToSubscription(cardId, subscriptionId, 0, false /* forceDeactivateSim */, callingPackage, callbackIntent, false); } @Override public void switchToSubscriptionWithPort(int cardId, int portIndex, int subscriptionId, public void switchToSubscriptionWithPort(int cardId, int subscriptionId, int portIndex, String callingPackage, PendingIntent callbackIntent) { switchToSubscription(cardId, portIndex, subscriptionId, false /* forceDeactivateSim */, switchToSubscription(cardId, subscriptionId, portIndex, false /* forceDeactivateSim */, callingPackage, callbackIntent, true); } void switchToSubscription(int cardId, int portIndex, int subscriptionId, void switchToSubscription(int cardId, int subscriptionId, int portIndex, boolean forceDeactivateSim, String callingPackage, PendingIntent callbackIntent, boolean usePortIndex) { boolean callerCanWriteEmbeddedSubscriptions = callerCanWriteEmbeddedSubscriptions(); mAppOpsManager.checkPackage(Binder.getCallingUid(), callingPackage); Log.d(TAG, " subId: " + subscriptionId + " portIndex: " + portIndex + " forceDeactivateSim: " + forceDeactivateSim + " usePortIndex: " + usePortIndex); long token = Binder.clearCallingIdentity(); try { if (callerCanWriteEmbeddedSubscriptions) { Loading
src/java/com/android/internal/telephony/euicc/EuiccOperation.java +1 −1 Original line number Diff line number Diff line Loading @@ -508,8 +508,8 @@ public class EuiccOperation implements Parcelable { EuiccController euiccController = EuiccController.get(); euiccController.switchToSubscription( cardId, portIndex, mSubscriptionId, portIndex, true /* forceDeactivateSim */, mCallingPackage, callbackIntent, Loading
src/java/com/android/internal/telephony/uicc/UiccController.java +3 −13 Original line number Diff line number Diff line Loading @@ -931,19 +931,9 @@ public class UiccController extends Handler { List<UiccPortInfo> portInfos = new ArrayList<>(); int[] portIndexes = slot.getPortList(); for (int portIdx : portIndexes) { if (slot.isPortActive(portIdx)) { UiccPort port = slot.getUiccCard().getUiccPort(portIdx); portInfos.add(new UiccPortInfo(IccUtils.stripTrailingFs(port.getIccId()), port.getPortIdx(), port.getPhoneId(), true)); } else { // If port is inactive, use slot.getIccId API to get iccid value. portInfos.add(new UiccPortInfo(IccUtils.stripTrailingFs(slot.getIccId(portIdx)), portIdx, -1/*Invalid phoneId*/, false)); } String iccId = IccUtils.stripTrailingFs(slot.getIccId(portIdx)); portInfos.add(new UiccPortInfo(iccId, portIdx, slot.getPhoneIdFromPortIndex(portIdx), slot.isPortActive(portIdx))); } UiccCardInfo info = new UiccCardInfo( isEuicc, cardId, eid, slotIndex, isRemovable, Loading
src/java/com/android/internal/telephony/uicc/UiccSlot.java +2 −5 Original line number Diff line number Diff line Loading @@ -273,12 +273,9 @@ public class UiccSlot extends Handler { } public boolean isPortActive(int portIdx) { UiccPort uiccPort = null; synchronized (mLock) { if (mUiccCard != null) { uiccPort = mUiccCard.getUiccPort(portIdx); } return uiccPort != null; return SubscriptionManager.isValidPhoneId( mPortIdxToPhoneId.getOrDefault(portIdx, INVALID_PHONE_ID)); } } Loading
tests/telephonytests/src/com/android/internal/telephony/uicc/UiccControllerTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -353,11 +353,13 @@ public class UiccControllerTest extends TelephonyTest { doReturn("A1B2C3D4").when(mMockCard).getCardId(); doReturn(IccCardStatus.CardState.CARDSTATE_PRESENT).when(mMockCard).getCardState(); doReturn(true).when(mMockSlot).isActive(); //TODO: use UICCPort when ready // Mock out UiccPort doReturn(new int[]{0}).when(mMockSlot).getPortList(); doReturn(mMockPort).when(mMockCard).getUiccPort(0); doReturn("123451234567890").when(mMockPort).getIccId(); doReturn(true).when(mMockSlot).isPortActive(0); doReturn("123451234567890").when(mMockSlot).getIccId(0); // simulate card status loaded so that the UiccController sets the card ID IccCardStatus ics = new IccCardStatus(); Loading Loading @@ -408,6 +410,7 @@ public class UiccControllerTest extends TelephonyTest { doReturn("123451234567890F").when(mMockPort).getIccId(); doReturn(new int[]{0}).when(mMockSlot).getPortList(); doReturn(true).when(mMockSlot).isPortActive(0); doReturn("123451234567890F").when(mMockSlot).getIccId(0); // simulate card status loaded so that the UiccController sets the card ID IccCardStatus ics = new IccCardStatus(); Loading Loading @@ -453,6 +456,7 @@ public class UiccControllerTest extends TelephonyTest { // Mock out Port Index and IccId doReturn(new int[]{0}).when(mMockSlot).getPortList(); doReturn("123451234567890").when(mMockSlot).getIccId(0); doReturn(-1).when(mMockSlot).getPhoneIdFromPortIndex(0); // simulate card status loaded so that the UiccController sets the card ID IccCardStatus ics = new IccCardStatus(); Loading