summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorNate Jiang <qiangjiang@google.com>2020-05-01 14:36:50 -0700
committerNate Jiang <qiangjiang@google.com>2020-05-01 15:52:41 -0700
commit4c783d941d4b7dd4c22dc94bcd7bd338678bf59a (patch)
treed10b5fc2005a77eb40c4c9f188b26a4c174ebb5b /service
parent11f1b3d49fc0c96e73eae0c993edda46228bba13 (diff)
[Suggestion] Add or remove suggestion before userData loaded will fail.
Bug: 155416628 Test: atest com.android.server.wifi Change-Id: I302b6513e1ac359ad7aedc5097cb6e880cfa39ba
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WifiCarrierInfoManager.java3
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java16
2 files changed, 18 insertions, 1 deletions
diff --git a/service/java/com/android/server/wifi/WifiCarrierInfoManager.java b/service/java/com/android/server/wifi/WifiCarrierInfoManager.java
index a0dcfe9f5..f35f59047 100644
--- a/service/java/com/android/server/wifi/WifiCarrierInfoManager.java
+++ b/service/java/com/android/server/wifi/WifiCarrierInfoManager.java
@@ -176,8 +176,9 @@ public class WifiCarrierInfoManager {
@Override
public void fromDeserialized(Map<Integer, Boolean> imsiProtectionExemptionMap) {
- mUserDataLoaded = true;
+ mImsiPrivacyProtectionExemptionMap.clear();
mImsiPrivacyProtectionExemptionMap.putAll(imsiProtectionExemptionMap);
+ mUserDataLoaded = true;
}
@Override
diff --git a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
index 685df0757..fdaf11b7e 100644
--- a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
+++ b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
@@ -372,6 +372,7 @@ public class WifiNetworkSuggestionsManager {
*/
private boolean mUserApprovalUiActive = false;
+ private boolean mUserDataLoaded = false;
/**
* Listener for app-ops changes for active suggestor apps.
*/
@@ -434,6 +435,7 @@ public class WifiNetworkSuggestionsManager {
@Override
public void fromDeserialized(Map<String, PerAppInfo> networkSuggestionsMap) {
+ mActiveNetworkSuggestionsPerApp.clear();
mActiveNetworkSuggestionsPerApp.putAll(networkSuggestionsMap);
// Build the scan cache.
for (Map.Entry<String, PerAppInfo> entry : networkSuggestionsMap.entrySet()) {
@@ -457,10 +459,12 @@ public class WifiNetworkSuggestionsManager {
}
}
}
+ mUserDataLoaded = true;
}
@Override
public void reset() {
+ mUserDataLoaded = false;
mActiveNetworkSuggestionsPerApp.clear();
mActiveScanResultMatchInfoWithBssid.clear();
mActiveScanResultMatchInfoWithNoBssid.clear();
@@ -802,6 +806,10 @@ public class WifiNetworkSuggestionsManager {
public @WifiManager.NetworkSuggestionsStatusCode int add(
List<WifiNetworkSuggestion> networkSuggestions, int uid, String packageName,
@Nullable String featureId) {
+ if (!mUserDataLoaded) {
+ Log.e(TAG, "Add Network suggestion before boot complete is not allowed.");
+ return WifiManager.STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL;
+ }
if (networkSuggestions == null || networkSuggestions.isEmpty()) {
Log.w(TAG, "Empty list of network suggestions for " + packageName + ". Ignoring");
return WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS;
@@ -1067,6 +1075,10 @@ public class WifiNetworkSuggestionsManager {
*/
public @WifiManager.NetworkSuggestionsStatusCode int remove(
List<WifiNetworkSuggestion> networkSuggestions, int uid, String packageName) {
+ if (!mUserDataLoaded) {
+ Log.e(TAG, "Remove Network suggestion before boot complete is not allowed.");
+ return WifiManager.STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL;
+ }
if (networkSuggestions == null) {
Log.w(TAG, "Null list of network suggestions for " + packageName + ". Ignoring");
return WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS;
@@ -1123,6 +1135,10 @@ public class WifiNetworkSuggestionsManager {
*/
public @NonNull List<WifiNetworkSuggestion> get(@NonNull String packageName) {
List<WifiNetworkSuggestion> networkSuggestionList = new ArrayList<>();
+ if (!mUserDataLoaded) {
+ Log.e(TAG, "Get Network suggestion before boot complete is not allowed.");
+ return networkSuggestionList;
+ }
PerAppInfo perAppInfo = mActiveNetworkSuggestionsPerApp.get(packageName);
// if App never suggested return empty list.
if (perAppInfo == null) return networkSuggestionList;