From 8306c5c5ed14bbb88ec319535d266d0a6f8b9dc6 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Fri, 19 Mar 2021 21:11:37 +0800 Subject: [PATCH] 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 --- .../settingslib/wifi/WifiStatusTracker.java | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java index cbfd4d8ad07bc..41ccb16f03749 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java @@ -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);