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

Commit 48fa17f5 authored by Ling Ma's avatar Ling Ma Committed by Android (Google) Code Review
Browse files

Merge "Don't notify restricted network validation status" into main

parents 6aac35bc 6b0f0553
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -3183,7 +3183,13 @@ public class DataNetworkController extends Handler {
            return;
        }

        if (dataNetwork.isInternetSupported()) {
        // Only track the networks that require validation.
        // The criteria is base on NetworkMonitorUtils.java.
        NetworkCapabilities capabilities = dataNetwork.getNetworkCapabilities();
        if (capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
                && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_TRUSTED)
                && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)) {
            if (status == NetworkAgent.VALIDATION_STATUS_NOT_VALID
                    && (dataNetwork.getCurrentState() == null || dataNetwork.isDisconnected())) {
                log("Ignoring invalid validation status for disconnected DataNetwork");
+36 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import android.net.LinkProperties;
import android.net.NetworkCapabilities;
import android.net.NetworkPolicyManager;
import android.net.NetworkRequest;
import android.net.Uri;
import android.net.vcn.VcnManager.VcnNetworkPolicyChangeListener;
import android.net.vcn.VcnNetworkPolicyResult;
import android.os.AsyncResult;
@@ -4049,6 +4050,41 @@ public class DataNetworkControllerTest extends TelephonyTest {
        verifyNoConnectedNetworkHasCapability(NetworkCapabilities.NET_CAPABILITY_FOTA);
    }

    @Test
    public void testNetworkValidationStatusChangeCallback() throws Exception {
        // Request not restricted network
        TelephonyNetworkRequest request = createNetworkRequest(
                NetworkCapabilities.NET_CAPABILITY_INTERNET);
        mDataNetworkControllerUT.addNetworkRequest(request);
        processAllMessages();
        TelephonyNetworkAgent agent = getPrivateField(getDataNetworks().get(0), "mNetworkAgent",
                TelephonyNetworkAgent.class);
        agent.onValidationStatus(1/*status*/, Uri.EMPTY);
        processAllMessages();

        // Verify notify
        verify(mMockedDataNetworkControllerCallback)
                .onInternetDataNetworkValidationStatusChanged(1);

        // Request restricted network
        mDataNetworkControllerUT.removeNetworkRequest(request);
        getDataNetworks().get(0).tearDown(DataNetwork.TEAR_DOWN_REASON_NONE);
        mDataNetworkControllerUT.getDataSettingsManager().setDataEnabled(0, false, "");
        processAllMessages();
        clearInvocations(mMockedDataNetworkControllerCallback);
        mDataNetworkControllerUT.addNetworkRequest(createNetworkRequest(
                true, NetworkCapabilities.NET_CAPABILITY_INTERNET));
        processAllMessages();
        agent = getPrivateField(getDataNetworks().get(0), "mNetworkAgent",
                TelephonyNetworkAgent.class);
        agent.onValidationStatus(1/*status*/, Uri.EMPTY);
        processAllMessages();

        // Verify not notified
        verify(mMockedDataNetworkControllerCallback, never())
                .onInternetDataNetworkValidationStatusChanged(anyInt());
    }

    @Test
    public void testImsGracefulTearDown() throws Exception {
        setImsRegistered(true);