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

Commit cde63f3a 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 am: 41a0214b

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

Change-Id: I0f5f85db16dcf6eb05c3db9ab981dafa7f2b5ab3
parents 18ec2889 41a0214b
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);