summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2020-05-27 12:48:29 -0700
committerRoshan Pius <rpius@google.com>2020-05-27 12:51:56 -0700
commitd8385620730a483b98a8db3b86b1a150450cf105 (patch)
treec9d68b7bcfade8a35042c5bf49f0a59846d06666 /service
parent2643b8eef2007c18d2e0e7d722e0372858bc66ed (diff)
WifiNetworkSuggestionsManager: Only use approved suggestions externally
Only expose approved network suggestions to external modules, unapproved suggestions by apps should not considered by platform for any behavior changes. Bug: 157579285 Test: atest com.android.server.wifi Change-Id: I09925b4498d435f35115a1680562c3765c067ca3
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WakeupController.java2
-rw-r--r--service/java/com/android/server/wifi/WifiConnectivityManager.java2
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java13
3 files changed, 15 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/WakeupController.java b/service/java/com/android/server/wifi/WakeupController.java
index d9882dbf3..a92bdf7f1 100644
--- a/service/java/com/android/server/wifi/WakeupController.java
+++ b/service/java/com/android/server/wifi/WakeupController.java
@@ -347,7 +347,7 @@ public class WakeupController {
}
Set<WifiNetworkSuggestion> networkSuggestions =
- mWifiNetworkSuggestionsManager.getAllNetworkSuggestions();
+ mWifiNetworkSuggestionsManager.getAllApprovedNetworkSuggestions();
for (WifiNetworkSuggestion suggestion : networkSuggestions) {
// TODO(b/127799111): Do we need to filter the list similar to saved networks above?
goodNetworks.add(
diff --git a/service/java/com/android/server/wifi/WifiConnectivityManager.java b/service/java/com/android/server/wifi/WifiConnectivityManager.java
index 8470d0c7d..bcf162275 100644
--- a/service/java/com/android/server/wifi/WifiConnectivityManager.java
+++ b/service/java/com/android/server/wifi/WifiConnectivityManager.java
@@ -1635,7 +1635,7 @@ public class WifiConnectivityManager {
}
Set<WifiNetworkSuggestion> suggestionsNetworks =
- mWifiNetworkSuggestionsManager.getAllNetworkSuggestions();
+ mWifiNetworkSuggestionsManager.getAllApprovedNetworkSuggestions();
// If total size not equal to 1, then no need to proceed
if (passpointNetworks.size() + savedNetworks.size() + suggestionsNetworks.size() != 1) {
return false;
diff --git a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
index f470039a7..5d5a7d782 100644
--- a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
+++ b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
@@ -1254,6 +1254,19 @@ public class WifiNetworkSuggestionsManager {
}
/**
+ * Returns a set of all network suggestions across all apps that have been approved by user.
+ */
+ public Set<WifiNetworkSuggestion> getAllApprovedNetworkSuggestions() {
+ final String activeScorerPackage = mNetworkScoreManager.getActiveScorerPackage();
+ return mActiveNetworkSuggestionsPerApp.values()
+ .stream()
+ .filter(e -> e.isApproved(activeScorerPackage))
+ .flatMap(e -> convertToWnsSet(e.extNetworkSuggestions)
+ .stream())
+ .collect(Collectors.toSet());
+ }
+
+ /**
* Get all user approved, non-passpoint networks from suggestion.
*/
public List<WifiConfiguration> getAllScanOptimizationSuggestionNetworks() {