[Wi-Fi] Refine code for saved AccessPoints
The change targets to refine SavedAccessPointsPreferenceController and SubscribedAccessPointsPreferenceController 1. Remove feature flag check for saved Passpoint display. 2. They do not implements WifiManager.ActionListener. 3. Separate the code to collect saved AccessPoints data and the code to update preferences. 4. Let getAvailabilityStatus() returns result according to the saved AccessPoints data. 5. Update preferences at SavedAccessPointsWifiSettings#onStart() instead of life cycle onStart() of these 2 controllers. This is for the change of 2. 6. Do not use PreferenceGroupChildrenCache in SubscribedAccessPointsPreferenceController, this is for code alignment of SavedAccessPointsPreferenceController. Now these 2 controllers have very similar design, it will be easier to refine SubscribedAccessPointsPreferenceController as a child of SavedAccessPointsPreferenceController. Bug: 127206629 Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi.savedaccesspoints Manual: Add and forget Wi-Fi accesspoints and observe UI display. Change-Id: Id6f95d5b64e57a98c2c2e6ab09a4dec70a71b615
This commit is contained in:
@@ -17,11 +17,11 @@
|
||||
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;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
@@ -30,16 +30,19 @@ 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.core.FeatureFlags;
|
||||
import com.android.settings.development.featureflags.FeatureFlagPersistent;
|
||||
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;
|
||||
@@ -79,46 +82,20 @@ public class SavedAccessPointsPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailability_alwaysAvailable() {
|
||||
public void getAvailability_noSavedAccessPoint_shouldNotAvailable() {
|
||||
mController.mAccessPoints = new ArrayList<>();
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailability_oneSavedAccessPoint_shouldAvailable() {
|
||||
final AccessPoint accessPoint = new AccessPoint(mContext, new Bundle() /* savedState */);
|
||||
mController.mAccessPoints = new ArrayList<AccessPoint>(Arrays.asList(accessPoint));
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onStart_shouldRefreshApList() {
|
||||
doNothing().when(mController).refreshSavedAccessPoints();
|
||||
|
||||
mController.onStart();
|
||||
|
||||
verify(mController).refreshSavedAccessPoints();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void postRefresh_shouldRefreshApList() {
|
||||
doNothing().when(mController).refreshSavedAccessPoints();
|
||||
|
||||
mController.postRefreshSavedAccessPoints();
|
||||
|
||||
verify(mController).refreshSavedAccessPoints();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forget_onSuccess_shouldRefreshApList() {
|
||||
doNothing().when(mController).refreshSavedAccessPoints();
|
||||
|
||||
mController.onSuccess();
|
||||
|
||||
verify(mController).refreshSavedAccessPoints();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forget_onFailure_shouldRefreshApList() {
|
||||
doNothing().when(mController).refreshSavedAccessPoints();
|
||||
|
||||
mController.onFailure(0 /* reason */);
|
||||
|
||||
verify(mController).refreshSavedAccessPoints();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowAccessPoint.class)
|
||||
public void refreshSavedAccessPoints_shouldListNonSubscribedAPs() {
|
||||
@@ -131,7 +108,6 @@ public class SavedAccessPointsPreferenceControllerTest {
|
||||
final ArgumentCaptor<AccessPointPreference> captor =
|
||||
ArgumentCaptor.forClass(AccessPointPreference.class);
|
||||
mController.displayPreference(mPreferenceScreen);
|
||||
mController.refreshSavedAccessPoints();
|
||||
|
||||
verify(mPreferenceCategory).addPreference(captor.capture());
|
||||
|
||||
@@ -142,13 +118,10 @@ public class SavedAccessPointsPreferenceControllerTest {
|
||||
@Test
|
||||
@Config(shadows = ShadowAccessPoint.class)
|
||||
public void refreshSavedAccessPoints_shouldNotListSubscribedAPs() {
|
||||
FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
|
||||
|
||||
mWifiManager.addOrUpdatePasspointConfiguration(
|
||||
SubscribedAccessPointsPreferenceControllerTest.createMockPasspointConfiguration());
|
||||
|
||||
mController.displayPreference(mPreferenceScreen);
|
||||
mController.refreshSavedAccessPoints();
|
||||
|
||||
verify(mPreferenceCategory, never()).addPreference(any(AccessPointPreference.class));
|
||||
}
|
||||
|
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.spy;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
@@ -17,11 +17,11 @@
|
||||
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;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
@@ -32,16 +32,19 @@ import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.net.wifi.hotspot2.PasspointConfiguration;
|
||||
import android.net.wifi.hotspot2.pps.HomeSp;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.core.FeatureFlags;
|
||||
import com.android.settings.development.featureflags.FeatureFlagPersistent;
|
||||
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;
|
||||
@@ -78,51 +81,23 @@ public class SubscribedAccessPointsPreferenceControllerTest {
|
||||
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
|
||||
.thenReturn(mPreferenceCategory);
|
||||
when(mPreferenceCategory.getContext()).thenReturn(mContext);
|
||||
|
||||
FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailability_alwaysAvailable() {
|
||||
public void getAvailability_noSavedAccessPoint_shouldNotAvailable() {
|
||||
mController.mAccessPoints = new ArrayList<>();
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailability_oneSavedAccessPoint_shouldAvailable() {
|
||||
final AccessPoint accessPoint = new AccessPoint(mContext, new Bundle() /* savedState */);
|
||||
mController.mAccessPoints = new ArrayList<AccessPoint>(Arrays.asList(accessPoint));
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onStart_shouldRefreshApList() {
|
||||
doNothing().when(mController).refreshSubscribedAccessPoints();
|
||||
|
||||
mController.onStart();
|
||||
|
||||
verify(mController).refreshSubscribedAccessPoints();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void postRefresh_shouldRefreshApList() {
|
||||
doNothing().when(mController).refreshSubscribedAccessPoints();
|
||||
|
||||
mController.postRefreshSubscribedAccessPoints();
|
||||
|
||||
verify(mController).refreshSubscribedAccessPoints();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forget_onSuccess_shouldRefreshApList() {
|
||||
doNothing().when(mController).refreshSubscribedAccessPoints();
|
||||
|
||||
mController.onSuccess();
|
||||
|
||||
verify(mController).refreshSubscribedAccessPoints();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forget_onFailure_shouldRefreshApList() {
|
||||
doNothing().when(mController).refreshSubscribedAccessPoints();
|
||||
|
||||
mController.onFailure(0 /* reason */);
|
||||
|
||||
verify(mController).refreshSubscribedAccessPoints();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowAccessPoint.class)
|
||||
public void refreshSubscribedAccessPoints_shouldNotListNonSubscribedAPs() {
|
||||
@@ -133,7 +108,6 @@ public class SubscribedAccessPointsPreferenceControllerTest {
|
||||
mWifiManager.addNetwork(config);
|
||||
|
||||
mController.displayPreference(mPreferenceScreen);
|
||||
mController.refreshSubscribedAccessPoints();
|
||||
|
||||
verify(mPreferenceCategory, never()).addPreference(any(AccessPointPreference.class));
|
||||
}
|
||||
@@ -144,7 +118,6 @@ public class SubscribedAccessPointsPreferenceControllerTest {
|
||||
mWifiManager.addOrUpdatePasspointConfiguration(createMockPasspointConfiguration());
|
||||
|
||||
mController.displayPreference(mPreferenceScreen);
|
||||
mController.refreshSubscribedAccessPoints();
|
||||
|
||||
final ArgumentCaptor<AccessPointPreference> captor =
|
||||
ArgumentCaptor.forClass(AccessPointPreference.class);
|
||||
|
Reference in New Issue
Block a user