Loading src/com/android/settings/wifi/WifiSettings.java +1 −27 Original line number Diff line number Diff line Loading @@ -352,32 +352,6 @@ public class WifiSettings extends RestrictedSettingsFragment getPreferenceScreen().removeAll(); } /** * Only update the AP list if there are not any APs currently shown. * * <p>Thus forceUpdate will only be called during cold start or when toggling between wifi on * and off. In other use cases, the previous APs will remain until the next update is received * from {@link WifiTracker}. */ private void conditionallyForceUpdateAPs() { if (mAccessPointsPreferenceCategory.getPreferenceCount() > 0 && mAccessPointsPreferenceCategory.getPreference(0) instanceof AccessPointPreference) { // Make sure we don't update due to callbacks initiated by sticky broadcasts in // WifiTracker. Log.d(TAG, "Did not force update APs due to existing APs displayed"); getView().removeCallbacks(mUpdateAccessPointsRunnable); return; } setProgressBarVisible(true); mWifiTracker.forceUpdate(); if (isVerboseLoggingEnabled()) { Log.i(TAG, "WifiSettings force update APs: " + mWifiTracker.getAccessPoints()); } getView().removeCallbacks(mUpdateAccessPointsRunnable); updateAccessPointPreferences(); } /** * @return new WifiEnabler or null (as overridden by WifiSettingsForSetupWizard) */ Loading Loading @@ -682,7 +656,7 @@ public class WifiSettings extends RestrictedSettingsFragment final int wifiState = mWifiManager.getWifiState(); switch (wifiState) { case WifiManager.WIFI_STATE_ENABLED: conditionallyForceUpdateAPs(); updateAccessPointPreferences(); break; case WifiManager.WIFI_STATE_ENABLING: Loading tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java +3 −23 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import com.android.settings.Settings.WifiSettingsActivity; import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.TestAccessPointBuilder; import com.android.settingslib.wifi.WifiTracker; Loading Loading @@ -260,26 +261,6 @@ public class WifiSettingsUiTest { matches(isDisplayed())); } @Test public void resumingAp_shouldNotForceUpdateWhenExistingAPsAreListed() { setWifiState(WifiManager.WIFI_STATE_ENABLED); setupConnectedAccessPoint(); when(mWifiTracker.isConnected()).thenReturn(true); launchActivity(); onView(withText(resourceString(WIFI_DISPLAY_STATUS_CONNECTED))).check( matches(isDisplayed())); verify(mWifiTracker).forceUpdate(); Activity activity = mActivityRule.getActivity(); activity.finish(); getInstrumentation().waitForIdleSync(); getInstrumentation().callActivityOnStart(activity); verify(mWifiTracker, atMost(1)).forceUpdate(); } @Test public void changingSecurityStateOnApShouldNotCauseMultipleListItems() { setWifiState(WifiManager.WIFI_STATE_ENABLED); Loading @@ -305,10 +286,10 @@ public class WifiSettingsUiTest { onView(withText(TEST_SSID)).check(matches(isDisplayed())); mWifiListener.onAccessPointsChanged(); ThreadUtils.postOnMainThread(() -> mWifiListener.onAccessPointsChanged()); onView(withText(TEST_SSID)).check(matches(isDisplayed())); mWifiListener.onAccessPointsChanged(); ThreadUtils.postOnMainThread(() -> mWifiListener.onAccessPointsChanged()); onView(withText(TEST_SSID)).check(matches(isDisplayed())); } Loading Loading @@ -367,7 +348,6 @@ public class WifiSettingsUiTest { launchActivity(); verify(mWifiTracker, atMost(1)).forceUpdate(); verify(mWifiTracker, times(1)).getAccessPoints(); onView(withText(WIFI_DISPLAY_STATUS_CONNECTED)).check(matches(isDisplayed())); Loading Loading
src/com/android/settings/wifi/WifiSettings.java +1 −27 Original line number Diff line number Diff line Loading @@ -352,32 +352,6 @@ public class WifiSettings extends RestrictedSettingsFragment getPreferenceScreen().removeAll(); } /** * Only update the AP list if there are not any APs currently shown. * * <p>Thus forceUpdate will only be called during cold start or when toggling between wifi on * and off. In other use cases, the previous APs will remain until the next update is received * from {@link WifiTracker}. */ private void conditionallyForceUpdateAPs() { if (mAccessPointsPreferenceCategory.getPreferenceCount() > 0 && mAccessPointsPreferenceCategory.getPreference(0) instanceof AccessPointPreference) { // Make sure we don't update due to callbacks initiated by sticky broadcasts in // WifiTracker. Log.d(TAG, "Did not force update APs due to existing APs displayed"); getView().removeCallbacks(mUpdateAccessPointsRunnable); return; } setProgressBarVisible(true); mWifiTracker.forceUpdate(); if (isVerboseLoggingEnabled()) { Log.i(TAG, "WifiSettings force update APs: " + mWifiTracker.getAccessPoints()); } getView().removeCallbacks(mUpdateAccessPointsRunnable); updateAccessPointPreferences(); } /** * @return new WifiEnabler or null (as overridden by WifiSettingsForSetupWizard) */ Loading Loading @@ -682,7 +656,7 @@ public class WifiSettings extends RestrictedSettingsFragment final int wifiState = mWifiManager.getWifiState(); switch (wifiState) { case WifiManager.WIFI_STATE_ENABLED: conditionallyForceUpdateAPs(); updateAccessPointPreferences(); break; case WifiManager.WIFI_STATE_ENABLING: Loading
tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java +3 −23 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import com.android.settings.Settings.WifiSettingsActivity; import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.TestAccessPointBuilder; import com.android.settingslib.wifi.WifiTracker; Loading Loading @@ -260,26 +261,6 @@ public class WifiSettingsUiTest { matches(isDisplayed())); } @Test public void resumingAp_shouldNotForceUpdateWhenExistingAPsAreListed() { setWifiState(WifiManager.WIFI_STATE_ENABLED); setupConnectedAccessPoint(); when(mWifiTracker.isConnected()).thenReturn(true); launchActivity(); onView(withText(resourceString(WIFI_DISPLAY_STATUS_CONNECTED))).check( matches(isDisplayed())); verify(mWifiTracker).forceUpdate(); Activity activity = mActivityRule.getActivity(); activity.finish(); getInstrumentation().waitForIdleSync(); getInstrumentation().callActivityOnStart(activity); verify(mWifiTracker, atMost(1)).forceUpdate(); } @Test public void changingSecurityStateOnApShouldNotCauseMultipleListItems() { setWifiState(WifiManager.WIFI_STATE_ENABLED); Loading @@ -305,10 +286,10 @@ public class WifiSettingsUiTest { onView(withText(TEST_SSID)).check(matches(isDisplayed())); mWifiListener.onAccessPointsChanged(); ThreadUtils.postOnMainThread(() -> mWifiListener.onAccessPointsChanged()); onView(withText(TEST_SSID)).check(matches(isDisplayed())); mWifiListener.onAccessPointsChanged(); ThreadUtils.postOnMainThread(() -> mWifiListener.onAccessPointsChanged()); onView(withText(TEST_SSID)).check(matches(isDisplayed())); } Loading Loading @@ -367,7 +348,6 @@ public class WifiSettingsUiTest { launchActivity(); verify(mWifiTracker, atMost(1)).forceUpdate(); verify(mWifiTracker, times(1)).getAccessPoints(); onView(withText(WIFI_DISPLAY_STATUS_CONNECTED)).check(matches(isDisplayed())); Loading