Loading src/com/android/launcher3/WidgetPreviewLoader.java +1 −10 Original line number Diff line number Diff line Loading @@ -212,7 +212,6 @@ public class WidgetPreviewLoader { public void removeObsoletePreviews(ArrayList<Object> list) { Utilities.assertWorkerThread(); LongSparseArray<UserHandleCompat> userIdCache = new LongSparseArray<>(); LongSparseArray<HashSet<String>> validPackages = new LongSparseArray<>(); for (Object obj : list) { Loading @@ -227,15 +226,7 @@ public class WidgetPreviewLoader { pkg = info.provider.getPackageName(); } int userIdIndex = userIdCache.indexOfValue(user); final long userId; if (userIdIndex < 0) { userId = mUserManager.getSerialNumberForUser(user); userIdCache.put(userId, user); } else { userId = userIdCache.keyAt(userIdIndex); } final long userId = mUserManager.getSerialNumberForUser(user); HashSet<String> packages = validPackages.get(userId); if (packages == null) { packages = new HashSet<>(); Loading src/com/android/launcher3/compat/UserManagerCompatV17.java +14 −5 Original line number Diff line number Diff line Loading @@ -23,10 +23,16 @@ import android.os.UserManager; import com.android.launcher3.util.LongArrayMap; import java.util.HashMap; @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) public class UserManagerCompatV17 extends UserManagerCompatV16 { protected LongArrayMap<UserHandleCompat> mUsers; // Create a separate reverse map as LongArrayMap.indexOfValue checks if objects are same // and not {@link Object#equals} protected HashMap<UserHandleCompat, Long> mUserToSerialMap; protected UserManager mUserManager; UserManagerCompatV17(Context context) { Loading @@ -35,9 +41,9 @@ public class UserManagerCompatV17 extends UserManagerCompatV16 { public long getSerialNumberForUser(UserHandleCompat user) { synchronized (this) { if (mUsers != null) { int index = mUsers.indexOfValue(user); return (index >= 0) ? mUsers.keyAt(index) : 0; if (mUserToSerialMap != null) { Long serial = mUserToSerialMap.get(user); return serial == null ? 0 : serial; } } return mUserManager.getSerialNumberForUser(user.getUser()); Loading @@ -55,9 +61,12 @@ public class UserManagerCompatV17 extends UserManagerCompatV16 { @Override public void enableAndResetCache() { synchronized (this) { mUsers = new LongArrayMap<UserHandleCompat>(); mUsers = new LongArrayMap<>(); mUserToSerialMap = new HashMap<>(); UserHandleCompat myUser = UserHandleCompat.myUserHandle(); mUsers.put(mUserManager.getSerialNumberForUser(myUser.getUser()), myUser); long serial = mUserManager.getSerialNumberForUser(myUser.getUser()); mUsers.put(serial, myUser); mUserToSerialMap.put(myUser, serial); } } } Loading src/com/android/launcher3/compat/UserManagerCompatVL.java +8 −6 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import com.android.launcher3.util.LongArrayMap; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; @TargetApi(Build.VERSION_CODES.LOLLIPOP) Loading @@ -48,12 +49,15 @@ public class UserManagerCompatVL extends UserManagerCompatV17 { @Override public void enableAndResetCache() { synchronized (this) { mUsers = new LongArrayMap<UserHandleCompat>(); mUsers = new LongArrayMap<>(); mUserToSerialMap = new HashMap<>(); List<UserHandle> users = mUserManager.getUserProfiles(); if (users != null) { for (UserHandle user : users) { mUsers.put(mUserManager.getSerialNumberForUser(user), UserHandleCompat.fromUser(user)); long serial = mUserManager.getSerialNumberForUser(user); UserHandleCompat userCompat = UserHandleCompat.fromUser(user); mUsers.put(serial, userCompat); mUserToSerialMap.put(userCompat, serial); } } } Loading @@ -64,9 +68,7 @@ public class UserManagerCompatVL extends UserManagerCompatV17 { synchronized (this) { if (mUsers != null) { List<UserHandleCompat> users = new ArrayList<>(); for (UserHandleCompat user : mUsers) { users.add(user); } users.addAll(mUserToSerialMap.keySet()); return users; } } Loading Loading
src/com/android/launcher3/WidgetPreviewLoader.java +1 −10 Original line number Diff line number Diff line Loading @@ -212,7 +212,6 @@ public class WidgetPreviewLoader { public void removeObsoletePreviews(ArrayList<Object> list) { Utilities.assertWorkerThread(); LongSparseArray<UserHandleCompat> userIdCache = new LongSparseArray<>(); LongSparseArray<HashSet<String>> validPackages = new LongSparseArray<>(); for (Object obj : list) { Loading @@ -227,15 +226,7 @@ public class WidgetPreviewLoader { pkg = info.provider.getPackageName(); } int userIdIndex = userIdCache.indexOfValue(user); final long userId; if (userIdIndex < 0) { userId = mUserManager.getSerialNumberForUser(user); userIdCache.put(userId, user); } else { userId = userIdCache.keyAt(userIdIndex); } final long userId = mUserManager.getSerialNumberForUser(user); HashSet<String> packages = validPackages.get(userId); if (packages == null) { packages = new HashSet<>(); Loading
src/com/android/launcher3/compat/UserManagerCompatV17.java +14 −5 Original line number Diff line number Diff line Loading @@ -23,10 +23,16 @@ import android.os.UserManager; import com.android.launcher3.util.LongArrayMap; import java.util.HashMap; @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) public class UserManagerCompatV17 extends UserManagerCompatV16 { protected LongArrayMap<UserHandleCompat> mUsers; // Create a separate reverse map as LongArrayMap.indexOfValue checks if objects are same // and not {@link Object#equals} protected HashMap<UserHandleCompat, Long> mUserToSerialMap; protected UserManager mUserManager; UserManagerCompatV17(Context context) { Loading @@ -35,9 +41,9 @@ public class UserManagerCompatV17 extends UserManagerCompatV16 { public long getSerialNumberForUser(UserHandleCompat user) { synchronized (this) { if (mUsers != null) { int index = mUsers.indexOfValue(user); return (index >= 0) ? mUsers.keyAt(index) : 0; if (mUserToSerialMap != null) { Long serial = mUserToSerialMap.get(user); return serial == null ? 0 : serial; } } return mUserManager.getSerialNumberForUser(user.getUser()); Loading @@ -55,9 +61,12 @@ public class UserManagerCompatV17 extends UserManagerCompatV16 { @Override public void enableAndResetCache() { synchronized (this) { mUsers = new LongArrayMap<UserHandleCompat>(); mUsers = new LongArrayMap<>(); mUserToSerialMap = new HashMap<>(); UserHandleCompat myUser = UserHandleCompat.myUserHandle(); mUsers.put(mUserManager.getSerialNumberForUser(myUser.getUser()), myUser); long serial = mUserManager.getSerialNumberForUser(myUser.getUser()); mUsers.put(serial, myUser); mUserToSerialMap.put(myUser, serial); } } } Loading
src/com/android/launcher3/compat/UserManagerCompatVL.java +8 −6 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import com.android.launcher3.util.LongArrayMap; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; @TargetApi(Build.VERSION_CODES.LOLLIPOP) Loading @@ -48,12 +49,15 @@ public class UserManagerCompatVL extends UserManagerCompatV17 { @Override public void enableAndResetCache() { synchronized (this) { mUsers = new LongArrayMap<UserHandleCompat>(); mUsers = new LongArrayMap<>(); mUserToSerialMap = new HashMap<>(); List<UserHandle> users = mUserManager.getUserProfiles(); if (users != null) { for (UserHandle user : users) { mUsers.put(mUserManager.getSerialNumberForUser(user), UserHandleCompat.fromUser(user)); long serial = mUserManager.getSerialNumberForUser(user); UserHandleCompat userCompat = UserHandleCompat.fromUser(user); mUsers.put(serial, userCompat); mUserToSerialMap.put(userCompat, serial); } } } Loading @@ -64,9 +68,7 @@ public class UserManagerCompatVL extends UserManagerCompatV17 { synchronized (this) { if (mUsers != null) { List<UserHandleCompat> users = new ArrayList<>(); for (UserHandleCompat user : mUsers) { users.add(user); } users.addAll(mUserToSerialMap.keySet()); return users; } } Loading