summaryrefslogtreecommitdiffstats
path: root/service/java/com/android/server/wifi/WifiConfigManager.java
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2018-08-10 10:48:05 -0700
committerRoshan Pius <rpius@google.com>2018-08-31 10:12:41 -0700
commitb9e43730218a5c413be1ce73153016971ebec75d (patch)
tree4ec7da00a09ceb0a82a54220bfbf6975100f135b /service/java/com/android/server/wifi/WifiConfigManager.java
parent48990505b3bf1efaa7288d0839b274dbfd816883 (diff)
downloadandroid_frameworks_opt_net_wifi-b9e43730218a5c413be1ce73153016971ebec75d.tar.gz
android_frameworks_opt_net_wifi-b9e43730218a5c413be1ce73153016971ebec75d.tar.bz2
android_frameworks_opt_net_wifi-b9e43730218a5c413be1ce73153016971ebec75d.zip
WifiConfigManager: Handle user switch before store load
On most devices, user 0 (system user) is fully started before allowing a user switch. For the typical use case, the order of events expected: BOOT_COMPLETED, USER_UNLOCK(ID=0), USER_SWITCH(ID=user_x), USER_UNLOCK(ID=user_x). On Android auto, another user (ID=10) is first started. So, the order of events there: USER_SWITCH(ID=10), BOOT_COMPLETED, USER_UNLOCK(ID=10). Make changes in WifiConfigManager to handle this sequence. Bug: 112432082 Test: Unit tests Test: Verified that wifi connection works on Android auto after the change. Change-Id: I5770790582dd9485a7b74bb5d3836820b512f3fa
Diffstat (limited to 'service/java/com/android/server/wifi/WifiConfigManager.java')
-rw-r--r--service/java/com/android/server/wifi/WifiConfigManager.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java
index 558a1f3bb..40f487471 100644
--- a/service/java/com/android/server/wifi/WifiConfigManager.java
+++ b/service/java/com/android/server/wifi/WifiConfigManager.java
@@ -2555,7 +2555,11 @@ public class WifiConfigManager {
return new HashSet<>();
}
if (mPendingStoreRead) {
- Log.wtf(TAG, "Unexpected user switch before store is read!");
+ Log.w(TAG, "User switch before store is read!");
+ mConfiguredNetworks.setNewUser(userId);
+ mCurrentUserId = userId;
+ // Cannot read data from new user's CE store file before they log-in.
+ mPendingUnlockStoreRead = true;
return new HashSet<>();
}
if (mUserManager.isUserUnlockingOrUnlocked(mCurrentUserId)) {