diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 9fbeabef224..3972b851480 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -352,32 +352,6 @@ public class WifiSettings extends RestrictedSettingsFragment getPreferenceScreen().removeAll(); } - /** - * Only update the AP list if there are not any APs currently shown. - * - *

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) */ @@ -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: diff --git a/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java b/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java index e44a5966bfe..e1005ea6810 100644 --- a/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java +++ b/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java @@ -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; @@ -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); @@ -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())); } @@ -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()));