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

Commit 41db574a authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by Automerger Merge Worker
Browse files

Merge changes I4f38a539,Id4f6c7f4 am: 22823382 am: f344ab8f

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1565198

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I01f1b30d188e4cedcdb34bcd8f7f25ac1a5c64b4
parents 0ca03169 f344ab8f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ import com.android.internal.util.WakeupMessage;
import com.android.server.ConnectivityService;

import java.io.PrintWriter;
import java.util.Arrays;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Objects;
@@ -1025,6 +1026,8 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> {
                + (networkAgentConfig.acceptUnvalidated ? " acceptUnvalidated" : "")
                + (networkAgentConfig.acceptPartialConnectivity ? " acceptPartialConnectivity" : "")
                + (clatd.isStarted() ? " clat{" + clatd + "} " : "")
                + (declaredUnderlyingNetworks != null
                        ? " underlying{" + Arrays.toString(declaredUnderlyingNetworks) + "}" : "")
                + "  lp{" + linkProperties + "}"
                + "  nc{" + networkCapabilities + "}"
                + "}";
+13 −31
Original line number Diff line number Diff line
@@ -1283,32 +1283,10 @@ public class ConnectivityServiceTest {
    }

    private void updateUidNetworkingBlocked() {
        // Changes the return value of the mock NetworkPolicyManager's isUidNetworkingBlocked method
        // based on the current UID rules and restrict background setting. Note that the test never
        // pretends to be a foreground app, so always declare no connectivity if background
        // networking is not allowed.
        switch (mUidRules) {
            case RULE_REJECT_ALL:
                when(mNetworkPolicyManager.isUidNetworkingBlocked(anyInt(), anyBoolean()))
                        .thenReturn(true);
                break;

            case RULE_REJECT_METERED:
                when(mNetworkPolicyManager.isUidNetworkingBlocked(anyInt(), eq(true)))
                        .thenReturn(true);
                when(mNetworkPolicyManager.isUidNetworkingBlocked(anyInt(), eq(false)))
                        .thenReturn(mRestrictBackground);
                break;

            case RULE_ALLOW_METERED:
            case RULE_NONE:
                when(mNetworkPolicyManager.isUidNetworkingBlocked(anyInt(), anyBoolean()))
                        .thenReturn(mRestrictBackground);
                break;

            default:
                fail("Unknown policy rule " + mUidRules);
        }
        doAnswer(i -> NetworkPolicyManagerInternal.isUidNetworkingBlocked(
                i.getArgument(0) /* uid */, mUidRules, i.getArgument(1) /* metered */,
                mRestrictBackground)
        ).when(mNetworkPolicyManager).isUidNetworkingBlocked(anyInt(), anyBoolean());
    }

    private void setUidRulesChanged(int uidRules) throws RemoteException {
@@ -6917,7 +6895,7 @@ public class ConnectivityServiceTest {
        cellNetworkCallback.expectCapabilitiesWithout(NET_CAPABILITY_NOT_METERED,
                mCellNetworkAgent);
        cellNetworkCallback.expectBlockedStatusCallback(true, mCellNetworkAgent);
        assertEquals(null, mCm.getActiveNetwork());
        assertNull(mCm.getActiveNetwork());
        assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);
        assertNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);

@@ -6930,17 +6908,21 @@ public class ConnectivityServiceTest {
        setUidRulesChanged(RULE_NONE);
        cellNetworkCallback.assertNoCallback();

        // Restrict the network based on BackgroundRestricted.
        // Restrict background data. Networking is not blocked because the network is unmetered.
        setRestrictBackgroundChanged(true);
        cellNetworkCallback.expectBlockedStatusCallback(true, mCellNetworkAgent);
        assertEquals(null, mCm.getActiveNetwork());
        assertNull(mCm.getActiveNetwork());
        assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);
        assertNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);

        setRestrictBackgroundChanged(true);
        cellNetworkCallback.assertNoCallback();
        setRestrictBackgroundChanged(false);

        setUidRulesChanged(RULE_ALLOW_METERED);
        cellNetworkCallback.expectBlockedStatusCallback(false, mCellNetworkAgent);
        assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.CONNECTED);
        assertNetworkInfo(TYPE_MOBILE, DetailedState.CONNECTED);

        setRestrictBackgroundChanged(false);
        cellNetworkCallback.assertNoCallback();
        assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
        assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.CONNECTED);