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

Commit a76fc322 authored by junyulai's avatar junyulai
Browse files

[FUI25] Migrate NetworkPolicyManagerService to use ConnectivityManager

Test: atest NetworkPolicyManagerServiceTest
Bug: 174123988
Change-Id: I6512d3f704f35f2cc3555dcc40b46c7294d3b455
parent 0d72b183
Loading
Loading
Loading
Loading
+6 −11
Original line number Diff line number Diff line
@@ -431,7 +431,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
    private final CarrierConfigManager mCarrierConfigManager;
    private final MultipathPolicyTracker mMultipathPolicyTracker;

    private IConnectivityManager mConnManager;
    private ConnectivityManager mConnManager;
    private PowerManagerInternal mPowerManagerInternal;
    private PowerWhitelistManager mPowerWhitelistManager;

@@ -711,8 +711,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                new NetworkPolicyManagerInternalImpl());
    }

    public void bindConnectivityManager(IConnectivityManager connManager) {
        mConnManager = Objects.requireNonNull(connManager, "missing IConnectivityManager");
    public void bindConnectivityManager() {
        mConnManager = Objects.requireNonNull(mContext.getSystemService(ConnectivityManager.class),
                "missing ConnectivityManager");
    }

    @GuardedBy("mUidRulesFirstLock")
@@ -943,7 +944,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
            mContext.registerReceiver(mCarrierConfigReceiver, carrierConfigFilter, null, mHandler);

            // listen for meteredness changes
            mContext.getSystemService(ConnectivityManager.class).registerNetworkCallback(
            mConnManager.registerNetworkCallback(
                    new NetworkRequest.Builder().build(), mNetworkCallback);

            mAppStandby.addListener(new NetPolicyAppIdleStateChangeListener());
@@ -1973,13 +1974,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
        if (LOGV) Slog.v(TAG, "updateNetworkRulesNL()");
        Trace.traceBegin(TRACE_TAG_NETWORK, "updateNetworkRulesNL");

        final List<NetworkStateSnapshot> snapshots;
        try {
            snapshots = mConnManager.getAllNetworkStateSnapshot();
        } catch (RemoteException e) {
            // Cannot happen, service lives in system_server.
            return;
        }
        final List<NetworkStateSnapshot> snapshots = mConnManager.getAllNetworkStateSnapshot();

        // First, generate identities of all connected networks so we can
        // quickly compare them against all defined policies below.
+1 −6
Original line number Diff line number Diff line
@@ -51,7 +51,6 @@ import android.graphics.GraphicsStatsService;
import android.hardware.display.DisplayManagerInternal;
import android.net.ConnectivityManager;
import android.net.ConnectivityModuleConnector;
import android.net.IConnectivityManager;
import android.net.NetworkStackClient;
import android.os.BaseBundle;
import android.os.Binder;
@@ -1107,7 +1106,6 @@ public final class SystemServer {
        VcnManagementService vcnManagement = null;
        NetworkStatsService networkStats = null;
        NetworkPolicyManagerService networkPolicy = null;
        IConnectivityManager connectivity = null;
        NsdService serviceDiscovery = null;
        WindowManagerService wm = null;
        SerialService serial = null;
@@ -1631,10 +1629,7 @@ public final class SystemServer {
            // services to initialize.
            mSystemServiceManager.startServiceFromJar(CONNECTIVITY_SERVICE_INITIALIZER_CLASS,
                    CONNECTIVITY_SERVICE_APEX_PATH);
            connectivity = IConnectivityManager.Stub.asInterface(
                    ServiceManager.getService(Context.CONNECTIVITY_SERVICE));
            // TODO: Use ConnectivityManager instead of ConnectivityService.
            networkPolicy.bindConnectivityManager(connectivity);
            networkPolicy.bindConnectivityManager();
            t.traceEnd();

            t.traceBegin("StartVpnManagerService");
+4 −6
Original line number Diff line number Diff line
@@ -108,7 +108,6 @@ import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.content.pm.UserInfo;
import android.net.ConnectivityManager;
import android.net.IConnectivityManager;
import android.net.INetworkManagementEventObserver;
import android.net.INetworkPolicyListener;
import android.net.LinkProperties;
@@ -242,8 +241,7 @@ public class NetworkPolicyManagerServiceTest {

    private @Mock IActivityManager mActivityManager;
    private @Mock INetworkManagementService mNetworkManager;
    private @Mock IConnectivityManager mConnManager;
    private @Mock ConnectivityManager mConnectivityManager;
    private @Mock ConnectivityManager mConnManager;
    private @Mock NotificationManager mNotifManager;
    private @Mock PackageManager mPackageManager;
    private @Mock IPackageManager mIpm;
@@ -361,7 +359,7 @@ public class NetworkPolicyManagerServiceTest {
                    case Context.NOTIFICATION_SERVICE:
                        return mNotifManager;
                    case Context.CONNECTIVITY_SERVICE:
                        return mConnectivityManager;
                        return mConnManager;
                    case Context.USER_SERVICE:
                        return mUserManager;
                    default:
@@ -390,7 +388,7 @@ public class NetworkPolicyManagerServiceTest {
        mFutureIntent = newRestrictBackgroundChangedFuture();
        mService = new NetworkPolicyManagerService(mServiceContext, mActivityManager,
                mNetworkManager, mIpm, mClock, mPolicyDir, true);
        mService.bindConnectivityManager(mConnManager);
        mService.bindConnectivityManager();
        mPolicyListener = new NetworkPolicyListenerAnswer(mService);

        // Sets some common expectations.
@@ -429,7 +427,7 @@ public class NetworkPolicyManagerServiceTest {
        when(mUserManager.getUsers()).thenReturn(buildUserInfoList());
        when(mNetworkManager.isBandwidthControlEnabled()).thenReturn(true);
        when(mNetworkManager.setDataSaverModeEnabled(anyBoolean())).thenReturn(true);
        doNothing().when(mConnectivityManager)
        doNothing().when(mConnManager)
                .registerNetworkCallback(any(), mNetworkCallbackCaptor.capture());

        // Create the expected carrier config