Force update APs when enabling wifi in WifiSettings.
This reverts commit b2bdc8f17b6148495731e4bfdd9968a6840907eb
and fixes a broken Espresso test case.
Reason for revert: Rolling forward after fix in ag/2133493, to fix b/37324736
Bug: b/37324736
Test: runtest --path
packages/apps/Settings/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java
Change-Id: I9cdf8cb1043af5d527eccbd9cc56d3b02419d7ac
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 66e8c54..a87bd19 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -340,15 +340,21 @@
mWifiTracker.startTracking();
if (!isUiRestricted() && mWifiManager.isWifiEnabled()) {
- setProgressBarVisible(true);
- mWifiTracker.forceUpdate();
- if (DEBUG) Log.d(TAG, "WifiSettings onStart APs: " + mWifiTracker.getAccessPoints());
-
- getView().removeCallbacks(mUpdateAccessPointsRunnable);
- updateAccessPointPreferences();
+ forceUpdateAPs();
}
}
+ private void forceUpdateAPs() {
+ setProgressBarVisible(true);
+ mWifiTracker.forceUpdate();
+ if (DEBUG) {
+ Log.d(TAG, "WifiSettings force update APs: " + mWifiTracker.getAccessPoints());
+ }
+
+ getView().removeCallbacks(mUpdateAccessPointsRunnable);
+ updateAccessPointPreferences();
+ }
+
/**
* @return new WifiEnabler or null (as overridden by WifiSettingsForSetupWizard)
*/
@@ -661,7 +667,7 @@
final int wifiState = mWifiManager.getWifiState();
switch (wifiState) {
case WifiManager.WIFI_STATE_ENABLED:
- updateAccessPointsDelayed();
+ forceUpdateAPs();
break;
case WifiManager.WIFI_STATE_ENABLING:
diff --git a/tests/app/src/com/android/settings/wifi/WifiSettingsUiTest.java b/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java
similarity index 76%
rename from tests/app/src/com/android/settings/wifi/WifiSettingsUiTest.java
rename to tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java
index 11a49fc..19c3321 100644
--- a/tests/app/src/com/android/settings/wifi/WifiSettingsUiTest.java
+++ b/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java
@@ -19,18 +19,22 @@
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
-import android.app.Instrumentation;
+import static org.mockito.Mockito.when;
+
import android.content.Context;
import android.content.Intent;
+import android.net.wifi.WifiManager;
import android.support.test.InstrumentationRegistry;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
-import com.android.settings.R;
import com.android.settings.Settings.WifiSettingsActivity;
+import com.android.settingslib.wifi.AccessPoint;
import com.android.settingslib.wifi.WifiTracker;
import com.android.settingslib.wifi.WifiTrackerFactory;
+import com.google.common.collect.Lists;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -43,9 +47,13 @@
// TODO(sghuman): Investigate why resource ids are not resolving correctly in the test apk,
// then remove this manual string entry
- private static final String WIFI_PREFERENCES = "Wi\\u2011Fi preferences";
+ private static final String WIFI_PREFERENCES = "Wi\u2011Fi preferences";
+ @Mock private AccessPoint mockAccessPoint;
@Mock private WifiTracker mockWifiTracker;
+ @Mock private WifiManager mockWifiManager;
+
+ private Context mContext;
@Rule
public ActivityTestRule<WifiSettingsActivity> mActivityRule =
@@ -54,7 +62,14 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ mContext = InstrumentationRegistry.getTargetContext();
+
WifiTrackerFactory.setTestingWifiTracker(mockWifiTracker);
+ when(mockWifiTracker.getManager()).thenReturn(mockWifiManager);
+ when(mockWifiTracker.getAccessPoints()).thenReturn(
+ Lists.asList(mockAccessPoint, new AccessPoint[]{}));
+
+ when(mockWifiManager.isWifiEnabled()).thenReturn(true);
}
private void launchActivity() {