diff options
author | Roshan Pius <rpius@google.com> | 2018-08-10 10:48:05 -0700 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2018-08-31 10:12:41 -0700 |
commit | b9e43730218a5c413be1ce73153016971ebec75d (patch) | |
tree | 4ec7da00a09ceb0a82a54220bfbf6975100f135b /service/java/com/android/server/wifi/WifiConfigManager.java | |
parent | 48990505b3bf1efaa7288d0839b274dbfd816883 (diff) | |
download | android_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.java | 6 |
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)) { |