Log warning when UserHandle in UserManagerState#allUsers get overridden
Bug: 340362067 Test: manual Flag: NONE Change-Id: I123f02f52408db0f7c711ee420743ac01df04156
This commit is contained in:
@@ -17,6 +17,7 @@ package com.android.launcher3.model;
|
||||
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.util.Log;
|
||||
import android.util.LongSparseArray;
|
||||
import android.util.SparseBooleanArray;
|
||||
|
||||
@@ -27,6 +28,8 @@ import com.android.launcher3.pm.UserCache;
|
||||
*/
|
||||
public class UserManagerState {
|
||||
|
||||
private static final String TAG = "UserManagerState";
|
||||
|
||||
public final LongSparseArray<UserHandle> allUsers = new LongSparseArray<>();
|
||||
|
||||
private final LongSparseArray<Boolean> mQuietUsersSerialNoMap = new LongSparseArray<>();
|
||||
@@ -39,6 +42,13 @@ public class UserManagerState {
|
||||
for (UserHandle user : userManager.getUserProfiles()) {
|
||||
long serialNo = userCache.getSerialNumberForUser(user);
|
||||
boolean isUserQuiet = userManager.isQuietModeEnabled(user);
|
||||
// Mapping different UserHandles to the same serialNo in allUsers could lead to losing
|
||||
// UserHandle and cause a series of problems, such as incorrectly marking app as
|
||||
// disabled and deleting app icons from workspace.
|
||||
if (allUsers.get(serialNo) != null) {
|
||||
Log.w(TAG, String.format("Override allUsers[%d]=%s with %s",
|
||||
serialNo, allUsers.get(serialNo), user));
|
||||
}
|
||||
allUsers.put(serialNo, user);
|
||||
mQuietUsersHashCodeMap.put(user.hashCode(), isUserQuiet);
|
||||
mQuietUsersSerialNoMap.put(serialNo, isUserQuiet);
|
||||
|
||||
Reference in New Issue
Block a user