Settings: migrate usage of @hide NetworkSuggestion APIs

Settings uses @hide WifiNetworkSuggestion.
wifiConfiguration/passpointConfiguration.
Migrate to @SystemApi getters.

Removed call to PasspointConfiguration.validate()
as it is an @hide API, instead
WifiManager.addOrUpdatePasspointConfiguration()
will perform the required validation.

Bug: 138801922
Test: make RunSettingsRoboTests -j40
Change-Id: I748010b66634b1d24e89a175917492f638267cb1
This commit is contained in:
David Su
2020-01-17 13:50:46 -08:00
parent 6860eecdcc
commit 453d88568f
2 changed files with 19 additions and 29 deletions

View File

@@ -323,44 +323,34 @@ public class AddAppNetworksFragment extends InstrumentedFragment {
* networks, for creating UI to user. * networks, for creating UI to user.
*/ */
@VisibleForTesting @VisibleForTesting
void filterSavedNetworks( void filterSavedNetworks(List<WifiConfiguration> savedWifiConfigurations) {
List<WifiConfiguration> savedWifiConfigurations) {
if (mUiToRequestedList == null) { if (mUiToRequestedList == null) {
mUiToRequestedList = new ArrayList<>(); mUiToRequestedList = new ArrayList<>();
} else { } else {
mUiToRequestedList.clear(); mUiToRequestedList.clear();
} }
boolean foundInSavedList;
boolean foundError;
String displayedName = null;
int networkPositionInBundle = 0; int networkPositionInBundle = 0;
for (WifiNetworkSuggestion suggestion : mAllSpecifiedNetworksList) { for (WifiNetworkSuggestion suggestion : mAllSpecifiedNetworksList) {
foundInSavedList = false; String displayedName = null;
foundError = false; boolean foundInSavedList = false;
/** /*
* If specified is passpoint network, need to check with the existing passpoint * If specified is passpoint network, need to check with the existing passpoint
* networks. * networks.
*/ */
if (suggestion.passpointConfiguration != null) { final PasspointConfiguration passpointConfig = suggestion.getPasspointConfiguration();
if (!suggestion.passpointConfiguration.validate()) { if (passpointConfig != null) {
foundError = true; foundInSavedList = isSavedPasspointConfiguration(passpointConfig);
displayedName = passpointConfig.getHomeSp().getFriendlyName();
} else { } else {
foundInSavedList = isSavedPasspointConfiguration( final WifiConfiguration specifiedConfig = suggestion.getWifiConfiguration();
suggestion.passpointConfiguration);
displayedName = suggestion.passpointConfiguration.getHomeSp().getFriendlyName();
}
} else {
final WifiConfiguration specifiedConfig = suggestion.wifiConfiguration;
displayedName = removeDoubleQuotes(specifiedConfig.SSID); displayedName = removeDoubleQuotes(specifiedConfig.SSID);
foundInSavedList = isSavedWifiConfiguration(specifiedConfig, foundInSavedList = isSavedWifiConfiguration(specifiedConfig,
savedWifiConfigurations); savedWifiConfigurations);
} }
if (foundError) { if (foundInSavedList) {
mResultCodeArrayList.set(networkPositionInBundle, RESULT_NETWORK_ADD_ERROR);
} else if (foundInSavedList) {
// If this requested network already in the saved networks, mark this item in the // If this requested network already in the saved networks, mark this item in the
// result code list as existed. // result code list as existed.
mResultCodeArrayList.set(networkPositionInBundle, RESULT_NETWORK_ALREADY_EXISTS); mResultCodeArrayList.set(networkPositionInBundle, RESULT_NETWORK_ALREADY_EXISTS);
@@ -596,11 +586,12 @@ public class AddAppNetworksFragment extends InstrumentedFragment {
* Call framework API to save single network. * Call framework API to save single network.
*/ */
private void saveNetwork(int index) { private void saveNetwork(int index) {
if (mUiToRequestedList.get(index).mWifiNetworkSuggestion.passpointConfiguration != null) { final PasspointConfiguration passpointConfig =
mUiToRequestedList.get(index).mWifiNetworkSuggestion.getPasspointConfiguration();
if (passpointConfig != null) {
// Save passpoint, if no IllegalArgumentException, then treat it as success. // Save passpoint, if no IllegalArgumentException, then treat it as success.
try { try {
mWifiManager.addOrUpdatePasspointConfiguration(mUiToRequestedList.get( mWifiManager.addOrUpdatePasspointConfiguration(passpointConfig);
index).mWifiNetworkSuggestion.passpointConfiguration);
mAnyNetworkSavedSuccess = true; mAnyNetworkSavedSuccess = true;
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
mResultCodeArrayList.set(mUiToRequestedList.get(index).mIndex, mResultCodeArrayList.set(mUiToRequestedList.get(index).mIndex,
@@ -612,18 +603,17 @@ public class AddAppNetworksFragment extends InstrumentedFragment {
} }
// Show saved or failed according to all results. // Show saved or failed according to all results.
showSavedOrFail(); showSavedOrFail();
return;
} else { } else {
final WifiConfiguration wifiConfiguration = mUiToRequestedList.get( final WifiConfiguration wifiConfiguration =
index).mWifiNetworkSuggestion.wifiConfiguration; mUiToRequestedList.get(index).mWifiNetworkSuggestion.getWifiConfiguration();
wifiConfiguration.SSID = addQuotationIfNeeded(wifiConfiguration.SSID); wifiConfiguration.SSID = addQuotationIfNeeded(wifiConfiguration.SSID);
mWifiManager.save(wifiConfiguration, mSaveListener); mWifiManager.save(wifiConfiguration, mSaveListener);
} }
} }
private void connectNetwork(int index) { private void connectNetwork(int index) {
final WifiConfiguration wifiConfiguration = mUiToRequestedList.get( final WifiConfiguration wifiConfiguration =
index).mWifiNetworkSuggestion.wifiConfiguration; mUiToRequestedList.get(index).mWifiNetworkSuggestion.getWifiConfiguration();
mWifiManager.connect(wifiConfiguration, null /* ActionListener */); mWifiManager.connect(wifiConfiguration, null /* ActionListener */);
} }

View File

@@ -138,7 +138,7 @@ public class AddAppNetworksFragmentTest {
assertThat(mAddAppNetworksFragment.mResultCodeArrayList.get(0)).isEqualTo( assertThat(mAddAppNetworksFragment.mResultCodeArrayList.get(0)).isEqualTo(
mAddAppNetworksFragment.RESULT_NETWORK_ALREADY_EXISTS); mAddAppNetworksFragment.RESULT_NETWORK_ALREADY_EXISTS);
assertThat(mAddAppNetworksFragment.mUiToRequestedList.get( assertThat(mAddAppNetworksFragment.mUiToRequestedList.get(
0).mWifiNetworkSuggestion.wifiConfiguration.SSID).isEqualTo( 0).mWifiNetworkSuggestion.getWifiConfiguration().SSID).isEqualTo(
FAKE_NEW_OPEN_SSID_WITH_QUOTE); FAKE_NEW_OPEN_SSID_WITH_QUOTE);
} }