Loading src/java/com/android/internal/telephony/PhoneConfigurationManager.java +17 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,21 @@ public class PhoneConfigurationManager { } } // If virtual DSDA is enabled for this UE, then updates maxActiveVoiceSubscriptions to 2. private PhoneCapability maybeUpdateMaxActiveVoiceSubscriptions( final PhoneCapability staticCapability) { boolean enableVirtualDsda = mContext.getResources().getBoolean( com.android.internal.R.bool.config_enable_virtual_dsda); if (staticCapability.getLogicalModemList().size() > 1 && enableVirtualDsda) { return new PhoneCapability.Builder(staticCapability) .setMaxActiveVoiceSubscriptions(2) .build(); } else { return staticCapability; } } /** * Static method to get instance. */ Loading Loading @@ -181,6 +196,8 @@ public class PhoneConfigurationManager { ar = (AsyncResult) msg.obj; if (ar != null && ar.exception == null) { mStaticCapability = (PhoneCapability) ar.result; mStaticCapability = maybeUpdateMaxActiveVoiceSubscriptions(mStaticCapability); notifyCapabilityChanged(); } else { log(msg.what + " failure. Not getting phone capability." + ar.exception); Loading tests/telephonytests/src/com/android/internal/telephony/PhoneConfigurationManagerTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -136,6 +136,27 @@ public class PhoneConfigurationManagerTest extends TelephonyTest { assertEquals(PhoneCapability.DEFAULT_DSDS_CAPABILITY, mPcm.getStaticPhoneCapability()); } @Test @SmallTest public void testConfigureAndGetMaxActiveVoiceSubscriptions() throws Exception { init(2); assertEquals(1, mPcm.getStaticPhoneCapability().getMaxActiveVoiceSubscriptions()); PhoneCapability dualActiveVoiceSubCapability = new PhoneCapability.Builder( PhoneCapability.DEFAULT_DSDS_CAPABILITY) .setMaxActiveVoiceSubscriptions(2) .build(); ArgumentCaptor<Message> captor = ArgumentCaptor.forClass(Message.class); verify(mMockRadioConfig).getPhoneCapability(captor.capture()); Message msg = captor.getValue(); AsyncResult.forMessage(msg, dualActiveVoiceSubCapability, null); msg.sendToTarget(); processAllMessages(); assertEquals(2, mPcm.getStaticPhoneCapability().getMaxActiveVoiceSubscriptions()); } @Test @SmallTest public void testSwitchMultiSimConfig_notDsdsCapable_shouldFail() throws Exception { Loading Loading
src/java/com/android/internal/telephony/PhoneConfigurationManager.java +17 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,21 @@ public class PhoneConfigurationManager { } } // If virtual DSDA is enabled for this UE, then updates maxActiveVoiceSubscriptions to 2. private PhoneCapability maybeUpdateMaxActiveVoiceSubscriptions( final PhoneCapability staticCapability) { boolean enableVirtualDsda = mContext.getResources().getBoolean( com.android.internal.R.bool.config_enable_virtual_dsda); if (staticCapability.getLogicalModemList().size() > 1 && enableVirtualDsda) { return new PhoneCapability.Builder(staticCapability) .setMaxActiveVoiceSubscriptions(2) .build(); } else { return staticCapability; } } /** * Static method to get instance. */ Loading Loading @@ -181,6 +196,8 @@ public class PhoneConfigurationManager { ar = (AsyncResult) msg.obj; if (ar != null && ar.exception == null) { mStaticCapability = (PhoneCapability) ar.result; mStaticCapability = maybeUpdateMaxActiveVoiceSubscriptions(mStaticCapability); notifyCapabilityChanged(); } else { log(msg.what + " failure. Not getting phone capability." + ar.exception); Loading
tests/telephonytests/src/com/android/internal/telephony/PhoneConfigurationManagerTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -136,6 +136,27 @@ public class PhoneConfigurationManagerTest extends TelephonyTest { assertEquals(PhoneCapability.DEFAULT_DSDS_CAPABILITY, mPcm.getStaticPhoneCapability()); } @Test @SmallTest public void testConfigureAndGetMaxActiveVoiceSubscriptions() throws Exception { init(2); assertEquals(1, mPcm.getStaticPhoneCapability().getMaxActiveVoiceSubscriptions()); PhoneCapability dualActiveVoiceSubCapability = new PhoneCapability.Builder( PhoneCapability.DEFAULT_DSDS_CAPABILITY) .setMaxActiveVoiceSubscriptions(2) .build(); ArgumentCaptor<Message> captor = ArgumentCaptor.forClass(Message.class); verify(mMockRadioConfig).getPhoneCapability(captor.capture()); Message msg = captor.getValue(); AsyncResult.forMessage(msg, dualActiveVoiceSubCapability, null); msg.sendToTarget(); processAllMessages(); assertEquals(2, mPcm.getStaticPhoneCapability().getMaxActiveVoiceSubscriptions()); } @Test @SmallTest public void testSwitchMultiSimConfig_notDsdsCapable_shouldFail() throws Exception { Loading