Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 948f5120 authored by SongFerngWang's avatar SongFerngWang
Browse files

Changing the condition since the esim may be removable

The condition whether the slot is esim slot should use getIsEuicc
api since the esim may be removable.

Bug: 233338345
Test: atest UiccSlotUtilTest
Change-Id: I47dc068e57a0faa7f7ce85af7933a48caa2c93e4
parent 7dc1aec5
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -190,7 +190,8 @@ public class EnableMultiSimSidecar extends AsyncTaskSidecar<Void, Boolean> {
        Set<Integer> activeRemovableLogicalSlotIds = new ArraySet<>();
        for (UiccSlotInfo info : infos) {
            for (UiccPortInfo portInfo :info.getPorts()) {
                if (info != null && portInfo.isActive() && info.isRemovable()) {
                if (info != null && portInfo.isActive() && info.isRemovable()
                        && !info.getIsEuicc()) {
                    activeRemovableLogicalSlotIds.add(portInfo.getLogicalSlotIndex());
                }
            }
+2 −1
Original line number Diff line number Diff line
@@ -193,7 +193,7 @@ public class UiccSlotUtil {
                            if (slotInfo == null) {
                                return false;
                            }
                            return !slotInfo.isRemovable();
                            return slotInfo.getIsEuicc();
                        })
                .findFirst().orElse(-1);

@@ -249,6 +249,7 @@ public class UiccSlotUtil {
        if (slotId == INVALID_PHYSICAL_SLOT_ID) {
            for (int i = 0; i < slots.length; i++) {
                if (slots[i].isRemovable()
                        && !slots[i].getIsEuicc()
                        && !slots[i].getPorts().stream().findFirst().get().isActive()
                        && slots[i].getCardStateInfo() != UiccSlotInfo.CARD_STATE_INFO_ERROR
                        && slots[i].getCardStateInfo() != UiccSlotInfo.CARD_STATE_INFO_RESTRICTED) {
+1 −0
Original line number Diff line number Diff line
@@ -592,6 +592,7 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc
                        .anyMatch(
                                slot -> slot != null
                                        && slot.isRemovable()
                                        && !slot.getIsEuicc()
                                        && slot.getPorts().stream().anyMatch(
                                                port -> port.isActive())
                                        && slot.getCardStateInfo()
+1 −1
Original line number Diff line number Diff line
@@ -294,7 +294,7 @@ public class SimSlotChangeHandler {
            return null;
        }
        for (UiccSlotInfo slotInfo : slotInfos) {
            if (slotInfo != null && slotInfo.isRemovable()) {
            if (slotInfo != null && slotInfo.isRemovable() && !slotInfo.getIsEuicc()) {
                return slotInfo;
            }
        }
+14 −0
Original line number Diff line number Diff line
@@ -92,6 +92,14 @@ public class UiccSlotUtilTest {

        assertThat(testSlot).isEqualTo(0);
    }
    @Test
    public void getEsimSlotId_twoSimSlotsDeviceAndRemovableEsimIsSlot1_returnTheCorrectEsimSlot() {
        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
                twoSimSlotsDeviceActivePsimActiveRemovableEsim());
        int testSlot = UiccSlotUtil.getEsimSlotId(mContext);

        assertThat(testSlot).isEqualTo(1);
    }

    @Test
    public void getEsimSlotId_twoSimSlotsDeviceAndEsimIsSlot1_returnTheCorrectEsimSlot() {
@@ -729,6 +737,12 @@ public class UiccSlotUtilTest {
                createUiccSlotInfo(true, false, 1, true)};
    }

    private UiccSlotInfo[] twoSimSlotsDeviceActivePsimActiveRemovableEsim() {
        return new UiccSlotInfo[]{
                createUiccSlotInfo(false, true, 0, true),
                createUiccSlotInfo(true, true, 1, true)};
    }

    private UiccSlotInfo[] twoSimSlotsDeviceActiveEsimActivePsim() {
        return new UiccSlotInfo[]{
                createUiccSlotInfo(true, false, 0, true),