Loading src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -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); } Loading tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java +20 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -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); } Loading
tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java +20 −0 Original line number Diff line number Diff line Loading @@ -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); Loading