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

Commit dacf53ff authored by Joonhun Shin's avatar Joonhun Shin Committed by Automerger Merge Worker
Browse files

Merge "ImsProvisioningController returns provisioned when provisoning has not...

Merge "ImsProvisioningController returns provisioned when provisoning has not completed" into tm-dev am: a19e683c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/opt/net/ims/+/18032083



Change-Id: I885424b2c63dcdd502e485b3791dcf8ab80f7b5a
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 8779a622 a19e683c
Loading
Loading
Loading
Loading
+9 −29
Original line number Diff line number Diff line
@@ -849,12 +849,7 @@ public class ImsManager implements FeatureUpdates {
     * Indicates whether VoLTE is provisioned on this slot.
     */
    public boolean isVolteProvisionedOnDevice() {
        // check new carrier config first KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // if that returns false, check deprecated carrier config
        // KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE) ||
                getBooleanCarrierConfig(
                        CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL)) {
        if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE)) {
            return isVolteProvisioned();
        }

@@ -865,12 +860,7 @@ public class ImsManager implements FeatureUpdates {
     * Indicates whether EAB is provisioned on this slot.
     */
    public boolean isEabProvisionedOnDevice() {
        // check new carrier config first KEY_RCS_REQUIRES_PROVISIONING_BUNDLE
        // if that returns false, check deprecated carrier config
        // KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL
        if (isRcsProvisioningRequired(CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE) ||
                getBooleanCarrierConfig(
                        CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL)) {
        if (isRcsProvisioningRequired(CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE)) {
            return isEabProvisioned();
        }

@@ -910,12 +900,7 @@ public class ImsManager implements FeatureUpdates {
            }
        }

        // check new carrier config first KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // if that returns false, check deprecated carrier config
        // KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN)
                || getBooleanCarrierConfig(
                        CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL)) {
        if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN)) {
            return isWfcProvisioned();
        }

@@ -942,12 +927,7 @@ public class ImsManager implements FeatureUpdates {
     * Indicates whether VT is provisioned on slot.
     */
    public boolean isVtProvisionedOnDevice() {
        // check new carrier config first KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // if that returns false, check deprecated carrier config
        // KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE) ||
                getBooleanCarrierConfig(
                        CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL)) {
        if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE)) {
            return isVtProvisioned();
        }

@@ -3175,7 +3155,7 @@ public class ImsManager implements FeatureUpdates {

        boolean required = false;
        try {
                required |= iTelephony.isProvisioningRequiredForCapability(subId, capability,
            required = iTelephony.isProvisioningRequiredForCapability(subId, capability,
                    tech);
        } catch (RemoteException e) {
            logw("isMmTelProvisioningRequired couldn't reach telephony!");
@@ -3200,7 +3180,7 @@ public class ImsManager implements FeatureUpdates {

        boolean required = false;
        try {
            required |= iTelephony.isRcsProvisioningRequiredForCapability(subId, capability,
            required = iTelephony.isRcsProvisioningRequiredForCapability(subId, capability,
                    tech);
        } catch (RemoteException e) {
            logw("isRcsProvisioningRequired couldn't reach telephony!");
+9 −162
Original line number Diff line number Diff line
@@ -307,107 +307,24 @@ public class ImsManagerTest extends ImsTestBase {
                eq("1"));
    }

    @Test
    public void testGetProvisionedValues() throws Exception {
        ImsManager imsManager = getImsManagerAndInitProvisionedValues();

        assertEquals(true, imsManager.isWfcProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
        clearInvocations(mITelephony);

        assertEquals(true, imsManager.isVtProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        clearInvocations(mITelephony);

        assertEquals(true, imsManager.isVolteProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        clearInvocations(mITelephony);

        // If we call get again, times should still be one because the value should be fetched
        // from cache.
        assertEquals(true, imsManager.isWfcProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
        clearInvocations(mITelephony);

        assertEquals(true, imsManager.isVtProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        clearInvocations(mITelephony);

        assertEquals(true, imsManager.isVolteProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        clearInvocations(mITelephony);

        assertEquals(true, imsManager.isEabProvisionedOnDevice());
        verify(mITelephony, times(1)).getRcsProvisioningStatusForCapability(
                anyInt(),
                eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
    }

    @Test
    public void testGetProvisionedValuesForWfc() throws Exception {
        ImsManager imsManager = getImsManagerAndInitProvisionedValues();

        // defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        mMmTelProvisioningRequired = true;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
                false);
        assertEquals(true, imsManager.isWfcProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
        verify(mITelephony, times(1)).
                isProvisioningRequiredForCapability(anyInt(),
                        eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                        eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
        clearInvocations(mITelephony);

        // defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        mMmTelProvisioningRequired = false;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
                true);
        assertEquals(true, imsManager.isWfcProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
        verify(mITelephony, times(1)).
                isProvisioningRequiredForCapability(anyInt(),
                        eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                        eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
        clearInvocations(mITelephony);

        // defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        mMmTelProvisioningRequired = false;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
                false);
        assertEquals(true, imsManager.isWfcProvisionedOnDevice());
        verify(mITelephony, never()).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
        verify(mITelephony, times(1)).
                isProvisioningRequiredForCapability(anyInt(),
                        eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
@@ -419,46 +336,19 @@ public class ImsManagerTest extends ImsTestBase {
    public void testGetProvisionedValuesForVt() throws Exception {
        ImsManager imsManager = getImsManagerAndInitProvisionedValues();

        // defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        mMmTelProvisioningRequired = true;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
                false);
        assertEquals(true, imsManager.isVtProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        clearInvocations(mITelephony);

        // not defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        mMmTelProvisioningRequired = false;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
                true);
        assertEquals(true, imsManager.isVtProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        clearInvocations(mITelephony);

        // not defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        mMmTelProvisioningRequired = false;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
                false);
        assertEquals(true, imsManager.isVtProvisionedOnDevice());
        verify(mITelephony, never()).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
@@ -469,46 +359,19 @@ public class ImsManagerTest extends ImsTestBase {
    public void testGetProvisionedValuesForVolte() throws Exception {
        ImsManager imsManager = getImsManagerAndInitProvisionedValues();

        // defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        mMmTelProvisioningRequired = true;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
                false);
        assertEquals(true, imsManager.isVolteProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        clearInvocations(mITelephony);

        // not defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        mMmTelProvisioningRequired = false;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
                true);
        assertEquals(true, imsManager.isVolteProvisionedOnDevice());
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        clearInvocations(mITelephony);

        // not defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
        // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
        mMmTelProvisioningRequired = false;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
                false);
        assertEquals(true, imsManager.isVolteProvisionedOnDevice());
        verify(mITelephony, never()).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
@@ -519,43 +382,19 @@ public class ImsManagerTest extends ImsTestBase {
    public void testGetProvisionedValuesForEab() throws Exception {
        ImsManager imsManager = getImsManagerAndInitProvisionedValues();

        // defined : KEY_RCS_REQUIRES_PROVISIONING_BUNDLE
        // not defined : KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL
        mRcsProvisioningRequired = true;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, false);
        assertEquals(true, imsManager.isEabProvisionedOnDevice());
        verify(mITelephony, times(1)).getRcsProvisioningStatusForCapability(
                anyInt(),
                eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        verify(mITelephony, times(1)).isRcsProvisioningRequiredForCapability(anyInt(),
                eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        clearInvocations(mITelephony);

        // not defined : KEY_RCS_REQUIRES_PROVISIONING_BUNDLE
        // defined : KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL
        mRcsProvisioningRequired = false;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, true);
        assertEquals(true, imsManager.isEabProvisionedOnDevice());
        verify(mITelephony, times(1)).getRcsProvisioningStatusForCapability(
                anyInt(),
                eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        verify(mITelephony, times(1)).isRcsProvisioningRequiredForCapability(anyInt(),
                eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        clearInvocations(mITelephony);

        // not defined : KEY_RCS_REQUIRES_PROVISIONING_BUNDLE
        // not defined : KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL
        mRcsProvisioningRequired = false;
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, false);
        assertEquals(true, imsManager.isEabProvisionedOnDevice());
        verify(mITelephony, never()).getRcsProvisioningStatusForCapability(
                anyInt(),
                eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        verify(mITelephony, times(1)).isRcsProvisioningRequiredForCapability(anyInt(),
                eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
@@ -566,8 +405,12 @@ public class ImsManagerTest extends ImsTestBase {
    public void testSetProvisionedValues() throws Exception {
        ImsManager imsManager = getImsManagerAndInitProvisionedValues();

        mMmTelProvisioningRequired = true;
        assertEquals(true, imsManager.isWfcProvisionedOnDevice());

        verify(mITelephony, times(1)).
                isProvisioningRequiredForCapability(anyInt(),
                        eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
                        eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
        verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
                anyInt(),
                eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
@@ -597,8 +440,12 @@ public class ImsManagerTest extends ImsTestBase {
    public void testEabSetProvisionedValues() throws Exception {
        ImsManager imsManager = getImsManagerAndInitProvisionedValues();

        mRcsProvisioningRequired = true;
        assertEquals(true, imsManager.isEabProvisionedOnDevice());

        verify(mITelephony, times(1)).isRcsProvisioningRequiredForCapability(anyInt(),
                eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
                eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
        verify(mITelephony, times(1)).getRcsProvisioningStatusForCapability(
                anyInt(),
                eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),