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

Commit 972bf437 authored by Antony Sargent's avatar Antony Sargent
Browse files

Remove empty MNC filtering when retrieving available subscriptions

During the early phase of work on DSDS, we found that a hacky solution
to seeing duplicate subscriptions that are part of a logical group (eg
Google Fi) was to filter out the entries with empty MNC strings. It
turns out this breaks things for some legitimate eSIM subsctiptions, and
isn't needed anymore because of the fixes that landed for b/127833821.

Fixes: 130706446
Test: make RunSettingsRoboTests
Change-Id: Ic4472c1de3c3e2449139b3e2ffb20d11a0058e8a
parent f9fd3b9e
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -101,16 +101,6 @@ public class SubscriptionUtil {
                }
            }
        }

        // With some carriers such as Google Fi which provide a sort of virtual service that spans
        // across multiple underlying networks, we end up with subscription entries for the
        // underlying networks that need to be hidden from the user in the UI.
        for (Iterator<SubscriptionInfo> iter = subscriptions.iterator(); iter.hasNext(); ) {
            SubscriptionInfo info = iter.next();
            if (TextUtils.isEmpty(info.getMncString())) {
                iter.remove();
            }
        }
        return subscriptions;
    }
}
+0 −42
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@ public class SubscriptionUtilTest {
    @Test
    public void getAvailableSubscriptions_oneSubscription_oneResult() {
        final SubscriptionInfo info = mock(SubscriptionInfo.class);
        when(info.getMncString()).thenReturn("fake1234");
        when(mSubMgr.getSelectableSubscriptionInfoList()).thenReturn(Arrays.asList(info));
        final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mContext);
        assertThat(subs).isNotNull();
@@ -83,60 +82,22 @@ public class SubscriptionUtilTest {
    public void getAvailableSubscriptions_twoSubscriptions_twoResults() {
        final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
        final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
        when(info1.getMncString()).thenReturn("fake1234");
        when(info2.getMncString()).thenReturn("fake5678");
        when(mSubMgr.getSelectableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
        final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mContext);
        assertThat(subs).isNotNull();
        assertThat(subs).hasSize(2);
    }

    @Test
    public void getAvailableSubscriptions_oneSubWithHiddenNetworks_oneResult() {
        final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
        final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
        final SubscriptionInfo info3 = mock(SubscriptionInfo.class);
        when(info1.getSubscriptionId()).thenReturn(1);
        when(info1.getMncString()).thenReturn("fake1234");
        when(mSubMgr.getSelectableSubscriptionInfoList()).thenReturn(
                new ArrayList<>(Arrays.asList(info1, info2, info3)));
        final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mContext);
        assertThat(subs).isNotNull();
        assertThat(subs).hasSize(1);
        assertThat(subs.get(0).getSubscriptionId()).isEqualTo(1);
    }

    @Test
    public void getAvailableSubscriptions_twoSubsWithHiddenNetworks_twoResults() {
        final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
        final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
        final SubscriptionInfo info3 = mock(SubscriptionInfo.class);
        final SubscriptionInfo info4 = mock(SubscriptionInfo.class);
        when(info1.getSubscriptionId()).thenReturn(1);
        when(info1.getMncString()).thenReturn("fake1234");
        when(info4.getSubscriptionId()).thenReturn(4);
        when(info4.getMncString()).thenReturn("fake5678");
        when(mSubMgr.getSelectableSubscriptionInfoList()).thenReturn(new ArrayList<>(
                Arrays.asList(info1, info2, info3, info4)));
        final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mContext);
        assertThat(subs).isNotNull();
        assertThat(subs).hasSize(2);
        assertThat(subs.get(0).getSubscriptionId()).isEqualTo(1);
        assertThat(subs.get(1).getSubscriptionId()).isEqualTo(4);
    }

    @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.getMncString()).thenReturn("fake111");
        when(info1.getSimSlotIndex()).thenReturn(-1);
        when(info1.getCardString()).thenReturn("info1_cardid");

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

@@ -165,17 +126,14 @@ public class SubscriptionUtilTest {
        final SubscriptionInfo info3 = mock(SubscriptionInfo.class);

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

        when(info2.getSubscriptionId()).thenReturn(222);
        when(info2.getMncString()).thenReturn("fake222");
        when(info2.getSimSlotIndex()).thenReturn(-1);
        when(info2.getCardString()).thenReturn("info2_cardid");

        when(info3.getSubscriptionId()).thenReturn(333);
        when(info3.getMncString()).thenReturn("fake333");
        when(info3.getSimSlotIndex()).thenReturn(0);
        when(info3.getCardString()).thenReturn("info3_cardid");