diff options
author | Nate Jiang <qiangjiang@google.com> | 2020-05-01 14:36:50 -0700 |
---|---|---|
committer | Nate Jiang <qiangjiang@google.com> | 2020-05-01 15:52:41 -0700 |
commit | 4c783d941d4b7dd4c22dc94bcd7bd338678bf59a (patch) | |
tree | d10b5fc2005a77eb40c4c9f188b26a4c174ebb5b /service | |
parent | 11f1b3d49fc0c96e73eae0c993edda46228bba13 (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.java | 3 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java | 16 |
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; |