Loading src/com/android/launcher3/model/UserManagerState.java +10 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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<>(); Loading @@ -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); Loading Loading
src/com/android/launcher3/model/UserManagerState.java +10 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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<>(); Loading @@ -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); Loading