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 Diff line number Diff line
@@ -80,24 +80,18 @@ public class WifiStatusTracker {
        @Override
        public void onCapabilitiesChanged(
                Network network, NetworkCapabilities networkCapabilities) {
            if (!mNetworks.contains(network.getNetId())) {
                // New network
                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());
                }
            }

            boolean isVcnOverWifi = false;
            boolean isWifi = false;
            WifiInfo wifiInfo = null;
            if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
                wifiInfo = Utils.tryGetWifiInfoForVcn(networkCapabilities);
                isVcnOverWifi = (wifiInfo != null);
            } else if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
                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()
                        .append(SSDF.format(System.currentTimeMillis())).append(",")
                        .append("onCapabilitiesChanged: ")
@@ -105,12 +99,23 @@ public class WifiStatusTracker {
                        .append("networkCapabilities=").append(networkCapabilities)
                        .toString();
                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);
            updateStatusLabel();
            mCallback.run();
        }
        }

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

    @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) {
        // TODO: Not this, because this variable probably isn't sticking around.
        mNetworkController.mWifiSignalController.setActivity(activity);