Remove hidden onAvailable callback override

ConnectivityManager will be a part of incoming connectivity
mainline. Settings will no longer to access the hidden usage.
The usage in WifiStatusTracker should only need to do in the
onCapabilitiesChanged but not to refer to a hidden callback.
Replace the usage to remove the hidden dependency.

Bug: 172183305
Test: Verify the behavior works as expected
Change-Id: I1bdc1c88869ebf815117ceccd2b008681e8290c5
This commit is contained in:
Chiachang Wang
2021-03-19 21:11:37 +08:00
parent 84db07434a
commit 8306c5c5ed

View File

@@ -19,7 +19,6 @@ import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.LinkProperties;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
@@ -77,25 +76,23 @@ public class WifiStatusTracker {
.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR).build();
private final NetworkCallback mNetworkCallback =
new NetworkCallback(NetworkCallback.FLAG_INCLUDE_LOCATION_INFO) {
@Override
public void onAvailable(
Network network, NetworkCapabilities networkCapabilities,
LinkProperties linkProperties, boolean blocked) {
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());
}
}
// Note: onCapabilitiesChanged is guaranteed to be called "immediately" after onAvailable
// and onLinkPropertiesChanged.
@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());
}
}
WifiInfo wifiInfo = null;
if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
wifiInfo = Utils.tryGetWifiInfoForVcn(networkCapabilities);