Merge "Update Passpoint R1 AccessPoint with R2 config" into qt-dev
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
index 02bcc09..baa3544 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
@@ -1111,7 +1111,7 @@
* Return true if this AccessPoint represents a Passpoint provider configuration.
*/
public boolean isPasspointConfig() {
- return mFqdn != null;
+ return mFqdn != null && mConfig == null;
}
/**
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
index d8172a0..49c8ce3 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
@@ -718,6 +718,7 @@
if (accessPoint == null) {
accessPoint = new AccessPoint(mContext, config, homeScans, roamingScans);
} else {
+ accessPoint.update(config);
accessPoint.setScanResultsPasspoint(homeScans, roamingScans);
}
return accessPoint;
diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java
index 683ec8b..7fac812 100644
--- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java
+++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java
@@ -314,7 +314,8 @@
private List<Pair<WifiConfiguration, Map<Integer, List<ScanResult>>>>
createPasspointMatchingWifiConfigWithScanResults(
- List<ScanResult> homeList, List<ScanResult> roamingList) {
+ List<ScanResult> homeList, List<ScanResult> roamingList,
+ String fqdn, String friendlyName) {
List<Pair<WifiConfiguration, Map<Integer, List<ScanResult>>>> matchingList =
new ArrayList<>();
Map<Integer, List<ScanResult>> mapping = new HashMap<>();
@@ -326,7 +327,7 @@
mapping.put(WifiManager.PASSPOINT_ROAMING_NETWORK, roamingList);
}
- matchingList.add(new Pair(buildPasspointConfiguration(FQDN_1, PROVIDER_FRIENDLY_NAME_1),
+ matchingList.add(new Pair(buildPasspointConfiguration(fqdn, friendlyName),
mapping));
return matchingList;
@@ -1077,7 +1078,7 @@
List<AccessPoint> passpointAccessPointsFirstUpdate = tracker.updatePasspointAccessPoints(
createPasspointMatchingWifiConfigWithScanResults(Arrays.asList(result),
- null), new ArrayList<>());
+ null, FQDN_1, PROVIDER_FRIENDLY_NAME_1), new ArrayList<>());
List<AccessPoint> cachedAccessPoints = new ArrayList<>(passpointAccessPointsFirstUpdate);
int prevRssi = result.level;
@@ -1086,7 +1087,7 @@
List<AccessPoint> passpointAccessPointsSecondUpdate = tracker.updatePasspointAccessPoints(
createPasspointMatchingWifiConfigWithScanResults(Arrays.asList(result),
- null), cachedAccessPoints);
+ null, FQDN_1, PROVIDER_FRIENDLY_NAME_1), cachedAccessPoints);
// Verify second update AP is the same object as the first update AP
assertThat(passpointAccessPointsFirstUpdate.get(0))
@@ -1097,6 +1098,28 @@
}
/**
+ * Verifies that the internal WifiConfiguration of a Passpoint AccessPoint is updated
+ */
+ @Test
+ public void updatePasspointAccessPoints_updatesConfig() {
+ WifiTracker tracker = createMockedWifiTracker();
+
+ ScanResult result = buildScanResult1();
+
+ List<AccessPoint> passpointAccessPoints = tracker.updatePasspointAccessPoints(
+ createPasspointMatchingWifiConfigWithScanResults(Arrays.asList(result),
+ null, FQDN_1, PROVIDER_FRIENDLY_NAME_1), new ArrayList<>());
+
+ AccessPoint ap = passpointAccessPoints.get(0);
+ assertEquals(ap.getTitle(), PROVIDER_FRIENDLY_NAME_1);
+
+ tracker.updatePasspointAccessPoints(
+ createPasspointMatchingWifiConfigWithScanResults(Arrays.asList(result),
+ null, FQDN_1, PROVIDER_FRIENDLY_NAME_2), passpointAccessPoints);
+ assertEquals(ap.getTitle(), PROVIDER_FRIENDLY_NAME_2);
+ }
+
+ /**
* Verifies that updateOsuAccessPoints will only return AccessPoints whose
* isOsuProvider() evaluates as true.
*/