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

Commit 05230f38 authored by Aswin Sankar's avatar Aswin Sankar Committed by Android (Google) Code Review
Browse files

Merge "PhoneConfigurationManager: query vDSDA capability"

parents 500615d1 1033370b
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -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.
     */
@@ -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);
+21 −0
Original line number Diff line number Diff line
@@ -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 {