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

Commit a034fb11 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Only monitor primary WIFi in the SysUI" into sc-dev

parents 3fbf3f02 8c4e6fd3
Loading
Loading
Loading
Loading
+28 −23
Original line number Original line Diff line number Diff line
@@ -80,24 +80,18 @@ public class WifiStatusTracker {
        @Override
        @Override
        public void onCapabilitiesChanged(
        public void onCapabilitiesChanged(
                Network network, NetworkCapabilities networkCapabilities) {
                Network network, NetworkCapabilities networkCapabilities) {
            if (!mNetworks.contains(network.getNetId())) {
            boolean isVcnOverWifi = false;
                // New network
            boolean isWifi = false;
                boolean isVcnOverWifi =
                        networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)
                                && (Utils.tryGetWifiInfoForVcn(networkCapabilities) != null);
                boolean isWifi =
                        networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI);
                if (isVcnOverWifi || isWifi) {
                    mNetworks.add(network.getNetId());
                }
            }

            WifiInfo wifiInfo = null;
            WifiInfo wifiInfo = null;
            if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
            if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
                wifiInfo = Utils.tryGetWifiInfoForVcn(networkCapabilities);
                wifiInfo = Utils.tryGetWifiInfoForVcn(networkCapabilities);
                isVcnOverWifi = (wifiInfo != null);
            } else if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
            } else if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
                wifiInfo = (WifiInfo) networkCapabilities.getTransportInfo();
                wifiInfo = (WifiInfo) networkCapabilities.getTransportInfo();
                isWifi = true;
            }
            }
            // As long as it is a WiFi network, we will log it in the dumpsys for debugging.
            if (isVcnOverWifi || isWifi) {
                String log = new StringBuilder()
                String log = new StringBuilder()
                        .append(SSDF.format(System.currentTimeMillis())).append(",")
                        .append(SSDF.format(System.currentTimeMillis())).append(",")
                        .append("onCapabilitiesChanged: ")
                        .append("onCapabilitiesChanged: ")
@@ -105,12 +99,23 @@ public class WifiStatusTracker {
                        .append("networkCapabilities=").append(networkCapabilities)
                        .append("networkCapabilities=").append(networkCapabilities)
                        .toString();
                        .toString();
                recordLastWifiNetwork(log);
                recordLastWifiNetwork(log);
            if (wifiInfo != null) {
            }
            // Ignore the WiFi network if it doesn't contain any valid WifiInfo, or it is not the
            // primary WiFi.
            if (wifiInfo == null || !wifiInfo.isPrimary()) {
                // Remove the network from the tracking list once it becomes non-primary.
                if (mNetworks.contains(network.getNetId())) {
                    mNetworks.remove(network.getNetId());
                }
                return;
            }
            if (!mNetworks.contains(network.getNetId())) {
                mNetworks.add(network.getNetId());
            }
            updateWifiInfo(wifiInfo);
            updateWifiInfo(wifiInfo);
            updateStatusLabel();
            updateStatusLabel();
            mCallback.run();
            mCallback.run();
        }
        }
        }


        @Override
        @Override
        public void onLost(Network network) {
        public void onLost(Network network) {
+15 −0
Original line number Original line Diff line number Diff line
@@ -43,6 +43,7 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest {
    public void setUp() throws Exception {
    public void setUp() throws Exception {
        super.setUp();
        super.setUp();
        when(mWifiInfo.makeCopy(anyLong())).thenReturn(mWifiInfo);
        when(mWifiInfo.makeCopy(anyLong())).thenReturn(mWifiInfo);
        when(mWifiInfo.isPrimary()).thenReturn(true);
    }
    }


    @Test
    @Test
@@ -277,6 +278,20 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest {
        }
        }
    }
    }


    @Test
    public void testNonPrimaryWiFi() {
        String testSsid = "Test SSID";
        setWifiEnabled(true);
        setWifiState(true, testSsid);
        // Set the ImsType to be IMS_TYPE_WLAN
        setImsType(2);
        setWifiLevel(1);
        verifyLastCallStrength(TelephonyIcons.WIFI_CALL_STRENGTH_ICONS[1]);
        when(mWifiInfo.isPrimary()).thenReturn(false);
        setWifiLevel(3);
        verifyLastCallStrength(TelephonyIcons.WIFI_CALL_STRENGTH_ICONS[1]);
    }

    protected void setWifiActivity(int activity) {
    protected void setWifiActivity(int activity) {
        // TODO: Not this, because this variable probably isn't sticking around.
        // TODO: Not this, because this variable probably isn't sticking around.
        mNetworkController.mWifiSignalController.setActivity(activity);
        mNetworkController.mWifiSignalController.setActivity(activity);