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

Commit 8a8ea1ae authored by Ling Ma's avatar Ling Ma
Browse files

Fix remapRafIfApplicable get NPE

Fix: 295045828
Test: atest
Change-Id: I501a444bac3d0c81f5bb86e9350e2b1ee024e44e
parent e12193c1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2818,7 +2818,8 @@ public class SubscriptionManagerService extends ISub.Stub {
        ProxyController proxyController = ProxyController.getInstance();
        RadioAccessFamily[] rafs = new RadioAccessFamily[mTelephonyManager.getActiveModemCount()];
        for (int phoneId = 0; phoneId < rafs.length; phoneId++) {
            int raf = mSlotIndexToSubId.get(phoneId) == getDefaultDataSubId()
            int raf = mSlotIndexToSubId.getOrDefault(phoneId,
                    SubscriptionManager.INVALID_SUBSCRIPTION_ID) == getDefaultDataSubId()
                    ? proxyController.getMaxRafSupported() : proxyController.getMinRafSupported();
            rafs[phoneId] = new RadioAccessFamily(phoneId, raf);
        }
+20 −0
Original line number Diff line number Diff line
@@ -675,6 +675,26 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
        assertThat(b.getInt(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX)).isEqualTo(1);
    }

    @Test
    public void testSingleSimSetDefaultDataSubId() {
        mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE);
        mContextFixture.addCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE);
        doReturn(1).when(mProxyController).getMinRafSupported();
        doReturn(2).when(mProxyController).getMaxRafSupported();
        insertSubscription(FAKE_SUBSCRIPTION_INFO2);

        mContextFixture.addCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE);

        mSubscriptionManagerServiceUT.setDefaultDataSubId(1);
        assertThat(mSubscriptionManagerServiceUT.getDefaultDataSubId()).isEqualTo(1);
        ArgumentCaptor<RadioAccessFamily[]> rafsCaptor = ArgumentCaptor.forClass(
                RadioAccessFamily[].class);
        verify(mProxyController).setRadioCapability(rafsCaptor.capture());
        RadioAccessFamily[] rafs = (RadioAccessFamily[]) rafsCaptor.getValue();
        assertThat(rafs[0].getRadioAccessFamily()).isEqualTo(1);
        assertThat(rafs[1].getRadioAccessFamily()).isEqualTo(2);
    }

    @Test
    public void testSetDefaultSmsSubId() throws Exception {
        clearInvocations(mContext);