Loading packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +24 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ 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; Loading @@ -38,7 +39,9 @@ import android.util.FeatureFlagUtils; import com.android.settingslib.R; import com.android.settingslib.Utils; import java.util.HashSet; import java.util.List; import java.util.Set; /** * Track status of Wi-Fi for the Sys UI. Loading @@ -50,6 +53,7 @@ public class WifiStatusTracker { private final NetworkScoreManager mNetworkScoreManager; private final ConnectivityManager mConnectivityManager; private final Handler mHandler = new Handler(Looper.getMainLooper()); private final Set<Integer> mNetworks = new HashSet<>(); private final WifiNetworkScoreCache.CacheListener mCacheListener = new WifiNetworkScoreCache.CacheListener(mHandler) { @Override Loading @@ -64,6 +68,20 @@ public class WifiStatusTracker { .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR).build(); private final NetworkCallback mNetworkCallback = new NetworkCallback() { @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 Loading @@ -84,10 +102,13 @@ public class WifiStatusTracker { @Override public void onLost(Network network) { if (mNetworks.contains(network.getNetId())) { mNetworks.remove(network.getNetId()); updateWifiInfo(null); updateStatusLabel(); mCallback.run(); } } }; private final NetworkCallback mDefaultNetworkCallback = new NetworkCallback() { @Override Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import static org.mockito.Mockito.when; import android.app.Instrumentation; import android.content.Intent; import android.net.ConnectivityManager; import android.net.LinkProperties; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; Loading Loading @@ -343,6 +344,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase { setConnectivityCommon(networkType, validated, isConnected); if (networkType == NetworkCapabilities.TRANSPORT_WIFI) { if (isConnected) { mNetworkCallback.onAvailable(mock(Network.class), new NetworkCapabilities(mNetCapabilities), new LinkProperties(), false); mNetworkCallback.onCapabilitiesChanged( mock(Network.class), new NetworkCapabilities(mNetCapabilities)); } else { Loading @@ -357,6 +360,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase { setConnectivityCommon(networkType, validated, isConnected); if (networkType == NetworkCapabilities.TRANSPORT_CELLULAR) { if (isConnected) { mNetworkCallback.onAvailable(mock(Network.class), new NetworkCapabilities(mNetCapabilities), new LinkProperties(), false); mNetworkCallback.onCapabilitiesChanged( mock(Network.class), new NetworkCapabilities(mNetCapabilities)); } else { Loading Loading
packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +24 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ 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; Loading @@ -38,7 +39,9 @@ import android.util.FeatureFlagUtils; import com.android.settingslib.R; import com.android.settingslib.Utils; import java.util.HashSet; import java.util.List; import java.util.Set; /** * Track status of Wi-Fi for the Sys UI. Loading @@ -50,6 +53,7 @@ public class WifiStatusTracker { private final NetworkScoreManager mNetworkScoreManager; private final ConnectivityManager mConnectivityManager; private final Handler mHandler = new Handler(Looper.getMainLooper()); private final Set<Integer> mNetworks = new HashSet<>(); private final WifiNetworkScoreCache.CacheListener mCacheListener = new WifiNetworkScoreCache.CacheListener(mHandler) { @Override Loading @@ -64,6 +68,20 @@ public class WifiStatusTracker { .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR).build(); private final NetworkCallback mNetworkCallback = new NetworkCallback() { @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 Loading @@ -84,10 +102,13 @@ public class WifiStatusTracker { @Override public void onLost(Network network) { if (mNetworks.contains(network.getNetId())) { mNetworks.remove(network.getNetId()); updateWifiInfo(null); updateStatusLabel(); mCallback.run(); } } }; private final NetworkCallback mDefaultNetworkCallback = new NetworkCallback() { @Override Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import static org.mockito.Mockito.when; import android.app.Instrumentation; import android.content.Intent; import android.net.ConnectivityManager; import android.net.LinkProperties; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; Loading Loading @@ -343,6 +344,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase { setConnectivityCommon(networkType, validated, isConnected); if (networkType == NetworkCapabilities.TRANSPORT_WIFI) { if (isConnected) { mNetworkCallback.onAvailable(mock(Network.class), new NetworkCapabilities(mNetCapabilities), new LinkProperties(), false); mNetworkCallback.onCapabilitiesChanged( mock(Network.class), new NetworkCapabilities(mNetCapabilities)); } else { Loading @@ -357,6 +360,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase { setConnectivityCommon(networkType, validated, isConnected); if (networkType == NetworkCapabilities.TRANSPORT_CELLULAR) { if (isConnected) { mNetworkCallback.onAvailable(mock(Network.class), new NetworkCapabilities(mNetCapabilities), new LinkProperties(), false); mNetworkCallback.onCapabilitiesChanged( mock(Network.class), new NetworkCapabilities(mNetCapabilities)); } else { Loading