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

Commit 302f6cf1 authored by yinxu's avatar yinxu
Browse files

Ignore the WiFi network callbacks if they are not default

Bug: 182224965
Test: unit tests
Change-Id: I344c314c4dd4df1662e28f7b3af520a731acda3d
parent fa873e1c
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -81,6 +81,9 @@ public class WifiStatusTracker {
        @Override
        public void onCapabilitiesChanged(
                Network network, NetworkCapabilities networkCapabilities) {
            if (mDefaultNetwork != null && mDefaultNetwork.getNetId() != network.getNetId()) {
                return;
            }
            if (!mNetworks.contains(network.getNetId())) {
                // New network
                boolean isVcnOverWifi =
@@ -115,6 +118,9 @@ public class WifiStatusTracker {

        @Override
        public void onLost(Network network) {
            if (mDefaultNetwork != null && mDefaultNetwork.getNetId() != network.getNetId()) {
                return;
            }
            String log = new StringBuilder()
                    .append(SSDF.format(System.currentTimeMillis())).append(",")
                    .append("onLost: ")
+13 −10
Original line number Diff line number Diff line
@@ -127,6 +127,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
    protected int mSubId;

    private NetworkCapabilities mNetCapabilities;
    private Network mNetwork;
    private ConnectivityManager.NetworkCallback mDefaultCallbackInWifiTracker;
    private ConnectivityManager.NetworkCallback mDefaultCallbackInNetworkController;
    private ConnectivityManager.NetworkCallback mNetworkCallback;
@@ -171,8 +172,10 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
        mMockCm = mock(ConnectivityManager.class);
        mMockBd = mock(BroadcastDispatcher.class);
        mMockNsm = mock(NetworkScoreManager.class);
        mNetwork = mock(Network.class);
        mMockSubDefaults = mock(SubscriptionDefaults.class);
        mNetCapabilities = new NetworkCapabilities();
        when(mNetwork.getNetId()).thenReturn(0);
        when(mMockTm.isDataCapable()).thenReturn(true);
        when(mMockTm.createForSubscriptionId(anyInt())).thenReturn(mMockTm);
        doAnswer(invocation -> {
@@ -318,7 +321,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
        mNetCapabilities.setTransportInfo(info);
        setConnectivityCommon(networkType, validated, isConnected);
        mDefaultCallbackInNetworkController.onCapabilitiesChanged(
                mock(Network.class), new NetworkCapabilities(mNetCapabilities));
                mNetwork, new NetworkCapabilities(mNetCapabilities));
    }

    public void setConnectivityViaCallbackInNetworkController(
@@ -328,7 +331,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
        }
        setConnectivityCommon(networkType, validated, isConnected);
        mDefaultCallbackInNetworkController.onCapabilitiesChanged(
                mock(Network.class), new NetworkCapabilities(mNetCapabilities));
                mNetwork, new NetworkCapabilities(mNetCapabilities));
    }

    public void setConnectivityViaCallbackInWifiTracker(
@@ -339,12 +342,12 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
        setConnectivityCommon(networkType, validated, isConnected);
        if (networkType == NetworkCapabilities.TRANSPORT_WIFI) {
            if (isConnected) {
                mNetworkCallback.onAvailable(mock(Network.class),
                mNetworkCallback.onAvailable(mNetwork,
                        new NetworkCapabilities(mNetCapabilities), new LinkProperties(), false);
                mNetworkCallback.onCapabilitiesChanged(
                        mock(Network.class), new NetworkCapabilities(mNetCapabilities));
                        mNetwork, new NetworkCapabilities(mNetCapabilities));
            } else {
                mNetworkCallback.onLost(mock(Network.class));
                mNetworkCallback.onLost(mNetwork);
            }
        }
    }
@@ -355,14 +358,14 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
        setConnectivityCommon(networkType, validated, isConnected);
        if (networkType == NetworkCapabilities.TRANSPORT_CELLULAR) {
            if (isConnected) {
                mNetworkCallback.onAvailable(mock(Network.class),
                mNetworkCallback.onAvailable(mNetwork,
                        new NetworkCapabilities(mNetCapabilities), new LinkProperties(), false);
                mNetworkCallback.onCapabilitiesChanged(
                        mock(Network.class), new NetworkCapabilities(mNetCapabilities));
                        mNetwork, new NetworkCapabilities(mNetCapabilities));
                mDefaultCallbackInWifiTracker.onCapabilitiesChanged(
                        mock(Network.class), new NetworkCapabilities(mNetCapabilities));
                        mNetwork, new NetworkCapabilities(mNetCapabilities));
            } else {
                mNetworkCallback.onLost(mock(Network.class));
                mNetworkCallback.onLost(mNetwork);
            }
        }
    }
@@ -374,7 +377,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
        }
        setConnectivityCommon(networkType, validated, isConnected);
        mDefaultCallbackInWifiTracker.onCapabilitiesChanged(
                mock(Network.class), new NetworkCapabilities(mNetCapabilities));
                mNetwork, new NetworkCapabilities(mNetCapabilities));
    }

    private void setConnectivityCommon(