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

Commit 41a0214b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14532067

Change-Id: I044a63af9db1562a2402e71710320e0407c25932
parents 7b9087af a034fb11
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);