[Wi-Fi] Fix SavedAccessPointsPreferenceController crash when editing Settings search box
In getAvailabilityStatus(), refresh mAccessPoints before using it. Bug: 147096386 Test: make RunSettingsRoboTests ROBOTEST_FILTER=SavedAccessPointsPreferenceControllerTest Change-Id: Id6818bd7bab1effb2e4e1447b18d5f5f02d7cfca
This commit is contained in:
@@ -59,6 +59,7 @@ public class SavedAccessPointsPreferenceController extends BasePreferenceControl
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
refreshSavedAccessPoints();
|
||||
return mAccessPoints.size() > 0 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
||||
}
|
||||
|
||||
|
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.android.settings.wifi.savedaccesspoints;
|
||||
|
||||
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
|
||||
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
@@ -30,19 +29,14 @@ import static org.mockito.Mockito.when;
|
||||
import android.content.Context;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.testutils.shadow.ShadowAccessPoint;
|
||||
import com.android.settings.testutils.shadow.ShadowWifiManager;
|
||||
import com.android.settingslib.wifi.AccessPoint;
|
||||
import com.android.settingslib.wifi.AccessPointPreference;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -53,6 +47,8 @@ import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {ShadowWifiManager.class})
|
||||
public class SavedAccessPointsPreferenceControllerTest {
|
||||
@@ -89,11 +85,10 @@ public class SavedAccessPointsPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailability_oneSavedAccessPoint_shouldAvailable() {
|
||||
final AccessPoint accessPoint = new AccessPoint(mContext, new Bundle() /* savedState */);
|
||||
mController.mAccessPoints = new ArrayList<AccessPoint>(Arrays.asList(accessPoint));
|
||||
public void getAvailability_shouldRefreshSavedAccessPoints() {
|
||||
mController.getAvailabilityStatus();
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
||||
verify(mController).refreshSavedAccessPoints();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user