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

Commit 817021b9 authored by Lucas Lin's avatar Lucas Lin Committed by Gerrit Code Review
Browse files

Merge "Use registerSystemDefaultNetworkCallback to listen underlying network"

parents af0593a5 96132361
Loading
Loading
Loading
Loading
+5 −12
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.os.CancellationSignal;
import android.os.FileUtils;
import android.os.Handler;
import android.os.IBinder;
import android.os.INetworkManagementService;
import android.os.Looper;
@@ -2784,26 +2785,18 @@ public class Vpn {
            // When restricted to test networks, select any network with TRANSPORT_TEST. Since the
            // creator of the profile and the test network creator both have MANAGE_TEST_NETWORKS,
            // this is considered safe.
            final NetworkRequest req;

            if (mProfile.isRestrictedToTestNetworks()) {
                req = new NetworkRequest.Builder()
                final NetworkRequest req = new NetworkRequest.Builder()
                        .clearCapabilities()
                        .addTransportType(NetworkCapabilities.TRANSPORT_TEST)
                        .addCapability(NET_CAPABILITY_NOT_VPN)
                        .build();
                mConnectivityManager.requestNetwork(req, mNetworkCallback);
            } else {
                // Basically, the request here is referring to the default request which is defined
                // in ConnectivityService. Ideally, ConnectivityManager should provide an new API
                // which can provide the status of physical network even though there is a virtual
                // network. b/147280869 is used for tracking the new API.
                // TODO: Use the new API to register default physical network.
                req = new NetworkRequest.Builder()
                        .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                        .build();
                mConnectivityManager.registerSystemDefaultNetworkCallback(mNetworkCallback,
                        new Handler(mLooper));
            }

            mConnectivityManager.requestNetwork(req, mNetworkCallback);
        }

        private boolean isActiveNetwork(@Nullable Network network) {