Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3e89b0c authored by Fengjiang Li's avatar Fengjiang Li Committed by Android (Google) Code Review
Browse files

Merge "Log warning when UserHandle in UserManagerState#allUsers get overridden" into main

parents 57198089 172e454e
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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);