Loading packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java +10 −1 Original line number Diff line number Diff line Loading @@ -234,10 +234,19 @@ public class WifiTracker { } /** * Forces an update of the wifi networks when not scanning. * Synchronously update the list of access points with the latest information. */ public void forceUpdate() { mWorkHandler.removeMessages(WorkHandler.MSG_UPDATE_ACCESS_POINTS); mLastInfo = mWifiManager.getConnectionInfo(); mLastNetworkInfo = mConnectivityManager.getNetworkInfo(mWifiManager.getCurrentNetwork()); updateAccessPoints(); // Synchronously copy access points mMainHandler.removeMessages(MainHandler.MSG_ACCESS_POINT_CHANGED); mMainHandler.handleMessage( Message.obtain(mMainHandler, MainHandler.MSG_ACCESS_POINT_CHANGED)); } /** Loading packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java +29 −4 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.atLeast; Loading @@ -33,12 +32,13 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkBadging; import android.net.NetworkInfo; import android.net.NetworkKey; import android.net.NetworkScoreManager; import android.net.ScoredNetwork; import android.net.RssiCurve; import android.net.ScoredNetwork; import android.net.WifiKey; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; Loading @@ -47,10 +47,10 @@ import android.net.wifi.WifiManager; import android.net.wifi.WifiNetworkScoreCache; import android.net.wifi.WifiSsid; import android.os.Bundle; import android.os.SystemClock; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.SystemClock; import android.provider.Settings; import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; Loading @@ -62,8 +62,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Matchers; import org.mockito.Captor; import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; Loading Loading @@ -666,4 +666,29 @@ public class WifiTrackerTest { verify(mockWifiManager, atLeast(2)).getConnectionInfo(); assertThat(tracker.getAccessPoints().get(0).getRssi()).isEqualTo(newRssi); } @Test public void forceUpdateShouldSynchronouslyFetchLatestInformation() throws Exception { when(mockWifiManager.getConnectionInfo()).thenReturn(CONNECTED_AP_1_INFO); WifiConfiguration configuration = new WifiConfiguration(); configuration.SSID = SSID_1; configuration.BSSID = BSSID_1; configuration.networkId = CONNECTED_NETWORK_ID; when(mockWifiManager.getConfiguredNetworks()).thenReturn(Arrays.asList(configuration)); NetworkInfo networkInfo = new NetworkInfo( ConnectivityManager.TYPE_WIFI, 0, "Type Wifi", "subtype"); networkInfo.setDetailedState(NetworkInfo.DetailedState.CONNECTED, "connected", "test"); when(mockConnectivityManager.getNetworkInfo(any(Network.class))).thenReturn(networkInfo); WifiTracker tracker = createMockedWifiTracker(); startTracking(tracker); tracker.forceUpdate(); verify(mockWifiListener).onAccessPointsChanged(); assertThat(tracker.getAccessPoints().size()).isEqualTo(2); assertThat(tracker.getAccessPoints().get(0).isActive()).isTrue(); } } No newline at end of file Loading
packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java +10 −1 Original line number Diff line number Diff line Loading @@ -234,10 +234,19 @@ public class WifiTracker { } /** * Forces an update of the wifi networks when not scanning. * Synchronously update the list of access points with the latest information. */ public void forceUpdate() { mWorkHandler.removeMessages(WorkHandler.MSG_UPDATE_ACCESS_POINTS); mLastInfo = mWifiManager.getConnectionInfo(); mLastNetworkInfo = mConnectivityManager.getNetworkInfo(mWifiManager.getCurrentNetwork()); updateAccessPoints(); // Synchronously copy access points mMainHandler.removeMessages(MainHandler.MSG_ACCESS_POINT_CHANGED); mMainHandler.handleMessage( Message.obtain(mMainHandler, MainHandler.MSG_ACCESS_POINT_CHANGED)); } /** Loading
packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java +29 −4 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.atLeast; Loading @@ -33,12 +32,13 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkBadging; import android.net.NetworkInfo; import android.net.NetworkKey; import android.net.NetworkScoreManager; import android.net.ScoredNetwork; import android.net.RssiCurve; import android.net.ScoredNetwork; import android.net.WifiKey; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; Loading @@ -47,10 +47,10 @@ import android.net.wifi.WifiManager; import android.net.wifi.WifiNetworkScoreCache; import android.net.wifi.WifiSsid; import android.os.Bundle; import android.os.SystemClock; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.SystemClock; import android.provider.Settings; import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; Loading @@ -62,8 +62,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Matchers; import org.mockito.Captor; import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; Loading Loading @@ -666,4 +666,29 @@ public class WifiTrackerTest { verify(mockWifiManager, atLeast(2)).getConnectionInfo(); assertThat(tracker.getAccessPoints().get(0).getRssi()).isEqualTo(newRssi); } @Test public void forceUpdateShouldSynchronouslyFetchLatestInformation() throws Exception { when(mockWifiManager.getConnectionInfo()).thenReturn(CONNECTED_AP_1_INFO); WifiConfiguration configuration = new WifiConfiguration(); configuration.SSID = SSID_1; configuration.BSSID = BSSID_1; configuration.networkId = CONNECTED_NETWORK_ID; when(mockWifiManager.getConfiguredNetworks()).thenReturn(Arrays.asList(configuration)); NetworkInfo networkInfo = new NetworkInfo( ConnectivityManager.TYPE_WIFI, 0, "Type Wifi", "subtype"); networkInfo.setDetailedState(NetworkInfo.DetailedState.CONNECTED, "connected", "test"); when(mockConnectivityManager.getNetworkInfo(any(Network.class))).thenReturn(networkInfo); WifiTracker tracker = createMockedWifiTracker(); startTracking(tracker); tracker.forceUpdate(); verify(mockWifiListener).onAccessPointsChanged(); assertThat(tracker.getAccessPoints().size()).isEqualTo(2); assertThat(tracker.getAccessPoints().get(0).isActive()).isTrue(); } } No newline at end of file