Loading packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +28 −23 Original line number Diff line number Diff line Loading @@ -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: ") Loading @@ -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) { Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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); Loading Loading
packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +28 −23 Original line number Diff line number Diff line Loading @@ -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: ") Loading @@ -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) { Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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); Loading