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

Commit 69a7e054 authored by Xiangyu/Malcolm Chen's avatar Xiangyu/Malcolm Chen Committed by Android (Google) Code Review
Browse files

Merge "Remove logic to manually search inactive pSIM."

parents d2fe0412 640e5643
Loading
Loading
Loading
Loading
+0 −29
Original line number Diff line number Diff line
@@ -80,39 +80,10 @@ public class SubscriptionUtil {
            return sAvailableResultsForTesting;
        }
        final SubscriptionManager subMgr = context.getSystemService(SubscriptionManager.class);
        final TelephonyManager telMgr = context.getSystemService(TelephonyManager.class);

        final List<SubscriptionInfo> subscriptions =
                new ArrayList<>(emptyIfNull(subMgr.getSelectableSubscriptionInfoList()));

        // Look for inactive but present physical SIMs that are missing from the selectable list.
        final List<UiccSlotInfo> missing = new ArrayList<>();
        final UiccSlotInfo[] slotsInfo = telMgr.getUiccSlotsInfo();
        for (int i = 0; slotsInfo != null && i < slotsInfo.length; i++) {
            final UiccSlotInfo slotInfo = slotsInfo[i];
            if (isInactiveInsertedPSim(slotInfo)) {
                final int index = slotInfo.getLogicalSlotIdx();
                final String cardId = slotInfo.getCardId();

                final boolean found = subscriptions.stream().anyMatch(info ->
                        index == info.getSimSlotIndex() && cardId.equals(info.getCardString()));
                if (!found) {
                    missing.add(slotInfo);
                }
            }
        }
        if (missing.isEmpty()) {
            return subscriptions;
        }
        for (SubscriptionInfo info : subMgr.getAllSubscriptionInfoList()) {
            for (UiccSlotInfo slotInfo : missing) {
                if (info.getSimSlotIndex() == slotInfo.getLogicalSlotIdx()
                        && info.getCardString().equals(slotInfo.getCardId())) {
                    subscriptions.add(info);
                    break;
                }
            }
        }
        return subscriptions;
    }

+0 −32
Original line number Diff line number Diff line
@@ -38,7 +38,6 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@@ -87,37 +86,6 @@ public class SubscriptionUtilTest {
        assertThat(subs).hasSize(2);
    }

    @Test
    public void getAvailableSubscriptions_oneSelectableOneDisabledPSim_twoResults() {
        final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
        final SubscriptionInfo info2 = mock(SubscriptionInfo.class);

        when(info1.getSubscriptionId()).thenReturn(111);
        when(info1.getSimSlotIndex()).thenReturn(-1);
        when(info1.getCardString()).thenReturn("info1_cardid");

        when(info2.getSubscriptionId()).thenReturn(222);
        when(info2.getSimSlotIndex()).thenReturn(0);
        when(info2.getCardString()).thenReturn("info2_cardid");

        when(mSubMgr.getSelectableSubscriptionInfoList()).thenReturn(Arrays.asList(info1));
        when(mSubMgr.getAllSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));

        final UiccSlotInfo info2slot = mock(UiccSlotInfo.class);
        when(info2slot.getCardStateInfo()).thenReturn(CARD_STATE_INFO_PRESENT);
        when(info2slot.getLogicalSlotIdx()).thenReturn(0);
        when(info2slot.getCardId()).thenReturn("info2_cardid");

        final UiccSlotInfo[] slotInfos = {info2slot};
        when(mTelMgr.getUiccSlotsInfo()).thenReturn(slotInfos);

        final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mContext);
        assertThat(subs).hasSize(2);
        assertThat(subs.get(0).getSubscriptionId()).isEqualTo(111);
        assertThat(subs.get(1).getSubscriptionId()).isEqualTo(222);
    }


    @Test
    public void getAvailableSubscriptions_oneSelectableTwoDisabledPSimsOneAbsent_twoResults() {
        final SubscriptionInfo info1 = mock(SubscriptionInfo.class);