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

Commit a196c820 authored by Lucas Lin's avatar Lucas Lin Committed by Automerger Merge Worker
Browse files

Merge "Use registerSystemDefaultNetworkCallback to listen underlying network" am: 817021b9

parents 6cfb1afc 817021b9
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) {