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

Commit e26ad00c authored by Nagendra Prasad Nagarle Basavaraju's avatar Nagendra Prasad Nagarle Basavaraju
Browse files

Add configuration to enable/disable force iwlan mms feature

Bug: 347018492
Test: Basic telephony functionality tests
Test: atest DataNetworkTest
Test: Mms with Tmo operator
Change-Id: I7e5f16f47fecbaa2b6987082be507481ed85b3e3
parent d59af15d
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1447,6 +1447,14 @@ public class DataConfigManager extends Handler {
                .collect(Collectors.toSet());
    }

    /**
     * {@code True} enables mms to be attempted on iwlan if possible, even if existing cellular
     *  networks already supports iwlan.
     */
    public boolean isForceIwlanMmsFeatureEnabled() {
        return mResources.getBoolean(com.android.internal.R.bool.force_iwlan_mms_feature_enabled);
    }

    /**
     * Log debug messages.
     * @param s debug messages
+5 −3
Original line number Diff line number Diff line
@@ -1219,7 +1219,7 @@ public class DataNetwork extends StateMachine {
                        getHandler(), EVENT_VOICE_CALL_ENDED, null);
            }

            if (mFlags.forceIwlanMms()) {
            if (mFlags.forceIwlanMms() && mDataConfigManager.isForceIwlanMmsFeatureEnabled()) {
                if (mDataProfile.canSatisfy(NetworkCapabilities.NET_CAPABILITY_MMS)) {
                    mAccessNetworksManagerCallback = new AccessNetworksManagerCallback(
                            getHandler()::post) {
@@ -1245,7 +1245,8 @@ public class DataNetwork extends StateMachine {
        @Override
        public void exit() {
            logv("Unregistering all events.");
            if (mFlags.forceIwlanMms() && mAccessNetworksManagerCallback != null) {
            if (mFlags.forceIwlanMms() && mAccessNetworksManagerCallback != null
                    && mDataConfigManager.isForceIwlanMmsFeatureEnabled()) {
                mAccessNetworksManager.unregisterCallback(mAccessNetworksManagerCallback);
            }

@@ -2440,7 +2441,8 @@ public class DataNetwork extends StateMachine {
        // will be attempted on IWLAN if possible, even if existing cellular networks already
        // supports IWLAN.
        if (mFlags.forceIwlanMms() && builder.build()
                .hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS)) {
                .hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS)
                && mDataConfigManager.isForceIwlanMmsFeatureEnabled()) {
            // If QNS sets MMS preferred on IWLAN, and it is possible to setup an MMS network on
            // IWLAN, then we need to remove the MMS capability on the cellular network. This will
            // allow the new MMS network to be brought up on IWLAN when MMS network request arrives.
+1 −0
Original line number Diff line number Diff line
@@ -2319,6 +2319,7 @@ public class DataNetworkTest extends TelephonyTest {
    @Test
    public void testMmsCapabilityRemovedWhenMmsPreferredOnIwlan() throws Exception {
        doReturn(true).when(mFeatureFlags).forceIwlanMms();
        doReturn(true).when(mDataConfigManager).isForceIwlanMmsFeatureEnabled();
        setupDataNetwork();

        assertThat(mDataNetworkUT.getNetworkCapabilities()