Ignore the WiFi network callbacks if they are not default

Bug: 182224965
Test: unit tests
Change-Id: I344c314c4dd4df1662e28f7b3af520a731acda3d
This commit is contained in:
yinxu
2021-03-31 13:42:15 -07:00
parent fa873e1cc8
commit 302f6cf17f
2 changed files with 19 additions and 10 deletions

View File

@@ -81,6 +81,9 @@ public class WifiStatusTracker {
@Override
public void onCapabilitiesChanged(
Network network, NetworkCapabilities networkCapabilities) {
if (mDefaultNetwork != null && mDefaultNetwork.getNetId() != network.getNetId()) {
return;
}
if (!mNetworks.contains(network.getNetId())) {
// New network
boolean isVcnOverWifi =
@@ -115,6 +118,9 @@ public class WifiStatusTracker {
@Override
public void onLost(Network network) {
if (mDefaultNetwork != null && mDefaultNetwork.getNetId() != network.getNetId()) {
return;
}
String log = new StringBuilder()
.append(SSDF.format(System.currentTimeMillis())).append(",")
.append("onLost: ")

View File

@@ -127,6 +127,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
protected int mSubId;
private NetworkCapabilities mNetCapabilities;
private Network mNetwork;
private ConnectivityManager.NetworkCallback mDefaultCallbackInWifiTracker;
private ConnectivityManager.NetworkCallback mDefaultCallbackInNetworkController;
private ConnectivityManager.NetworkCallback mNetworkCallback;
@@ -171,8 +172,10 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
mMockCm = mock(ConnectivityManager.class);
mMockBd = mock(BroadcastDispatcher.class);
mMockNsm = mock(NetworkScoreManager.class);
mNetwork = mock(Network.class);
mMockSubDefaults = mock(SubscriptionDefaults.class);
mNetCapabilities = new NetworkCapabilities();
when(mNetwork.getNetId()).thenReturn(0);
when(mMockTm.isDataCapable()).thenReturn(true);
when(mMockTm.createForSubscriptionId(anyInt())).thenReturn(mMockTm);
doAnswer(invocation -> {
@@ -318,7 +321,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
mNetCapabilities.setTransportInfo(info);
setConnectivityCommon(networkType, validated, isConnected);
mDefaultCallbackInNetworkController.onCapabilitiesChanged(
mock(Network.class), new NetworkCapabilities(mNetCapabilities));
mNetwork, new NetworkCapabilities(mNetCapabilities));
}
public void setConnectivityViaCallbackInNetworkController(
@@ -328,7 +331,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
}
setConnectivityCommon(networkType, validated, isConnected);
mDefaultCallbackInNetworkController.onCapabilitiesChanged(
mock(Network.class), new NetworkCapabilities(mNetCapabilities));
mNetwork, new NetworkCapabilities(mNetCapabilities));
}
public void setConnectivityViaCallbackInWifiTracker(
@@ -339,12 +342,12 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
setConnectivityCommon(networkType, validated, isConnected);
if (networkType == NetworkCapabilities.TRANSPORT_WIFI) {
if (isConnected) {
mNetworkCallback.onAvailable(mock(Network.class),
mNetworkCallback.onAvailable(mNetwork,
new NetworkCapabilities(mNetCapabilities), new LinkProperties(), false);
mNetworkCallback.onCapabilitiesChanged(
mock(Network.class), new NetworkCapabilities(mNetCapabilities));
mNetwork, new NetworkCapabilities(mNetCapabilities));
} else {
mNetworkCallback.onLost(mock(Network.class));
mNetworkCallback.onLost(mNetwork);
}
}
}
@@ -355,14 +358,14 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
setConnectivityCommon(networkType, validated, isConnected);
if (networkType == NetworkCapabilities.TRANSPORT_CELLULAR) {
if (isConnected) {
mNetworkCallback.onAvailable(mock(Network.class),
mNetworkCallback.onAvailable(mNetwork,
new NetworkCapabilities(mNetCapabilities), new LinkProperties(), false);
mNetworkCallback.onCapabilitiesChanged(
mock(Network.class), new NetworkCapabilities(mNetCapabilities));
mNetwork, new NetworkCapabilities(mNetCapabilities));
mDefaultCallbackInWifiTracker.onCapabilitiesChanged(
mock(Network.class), new NetworkCapabilities(mNetCapabilities));
mNetwork, new NetworkCapabilities(mNetCapabilities));
} else {
mNetworkCallback.onLost(mock(Network.class));
mNetworkCallback.onLost(mNetwork);
}
}
}
@@ -374,7 +377,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
}
setConnectivityCommon(networkType, validated, isConnected);
mDefaultCallbackInWifiTracker.onCapabilitiesChanged(
mock(Network.class), new NetworkCapabilities(mNetCapabilities));
mNetwork, new NetworkCapabilities(mNetCapabilities));
}
private void setConnectivityCommon(