Merge "Only monitor primary WIFi in the SysUI" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a034fb11ad
@@ -80,36 +80,41 @@ 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;
|
||||||
}
|
}
|
||||||
String log = new StringBuilder()
|
// As long as it is a WiFi network, we will log it in the dumpsys for debugging.
|
||||||
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
if (isVcnOverWifi || isWifi) {
|
||||||
.append("onCapabilitiesChanged: ")
|
String log = new StringBuilder()
|
||||||
.append("network=").append(network).append(",")
|
.append(SSDF.format(System.currentTimeMillis())).append(",")
|
||||||
.append("networkCapabilities=").append(networkCapabilities)
|
.append("onCapabilitiesChanged: ")
|
||||||
.toString();
|
.append("network=").append(network).append(",")
|
||||||
recordLastWifiNetwork(log);
|
.append("networkCapabilities=").append(networkCapabilities)
|
||||||
if (wifiInfo != null) {
|
.toString();
|
||||||
updateWifiInfo(wifiInfo);
|
recordLastWifiNetwork(log);
|
||||||
updateStatusLabel();
|
|
||||||
mCallback.run();
|
|
||||||
}
|
}
|
||||||
|
// 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
|
@Override
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user