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

Commit a19e683c authored by Joonhun Shin's avatar Joonhun Shin Committed by Android (Google) Code Review
Browse files

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

Merge "ImsProvisioningController returns provisioned when provisoning has not completed" into tm-dev
parents 8ccae767 4833edd1
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),