summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/compat/UserManagerCompatVL.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2015-08-04 11:40:13 -0700
committerSunny Goyal <sunnygoyal@google.com>2015-08-04 12:37:05 -0700
commit823fd5090209017a029460e7dbd8ab9d51d013dd (patch)
tree9c8564ee6a098377aeb57b427bfeebbb6957355c /src/com/android/launcher3/compat/UserManagerCompatVL.java
parent317698bd012c1930b83bb4e2e47ac9e363fa6c6a (diff)
downloadandroid_packages_apps_Trebuchet-823fd5090209017a029460e7dbd8ab9d51d013dd.tar.gz
android_packages_apps_Trebuchet-823fd5090209017a029460e7dbd8ab9d51d013dd.tar.bz2
android_packages_apps_Trebuchet-823fd5090209017a029460e7dbd8ab9d51d013dd.zip
Creating a cache of users to avoid multiple calls to UserManager
Bug: 22805101 Change-Id: I9cd270efd74fdd34a7eb738fc25797e6f1bf2487
Diffstat (limited to 'src/com/android/launcher3/compat/UserManagerCompatVL.java')
-rw-r--r--src/com/android/launcher3/compat/UserManagerCompatVL.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/com/android/launcher3/compat/UserManagerCompatVL.java b/src/com/android/launcher3/compat/UserManagerCompatVL.java
index dd7a72617..04cd0fdb4 100644
--- a/src/com/android/launcher3/compat/UserManagerCompatVL.java
+++ b/src/com/android/launcher3/compat/UserManagerCompatVL.java
@@ -24,7 +24,10 @@ import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.UserHandle;
+
import com.android.launcher3.LauncherAppState;
+import com.android.launcher3.util.LongArrayMap;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -43,7 +46,31 @@ public class UserManagerCompatVL extends UserManagerCompatV17 {
}
@Override
+ public void enableAndResetCache() {
+ synchronized (this) {
+ mUsers = new LongArrayMap<UserHandleCompat>();
+ List<UserHandle> users = mUserManager.getUserProfiles();
+ if (users != null) {
+ for (UserHandle user : users) {
+ mUsers.put(mUserManager.getSerialNumberForUser(user),
+ UserHandleCompat.fromUser(user));
+ }
+ }
+ }
+ }
+
+ @Override
public List<UserHandleCompat> getUserProfiles() {
+ synchronized (this) {
+ if (mUsers != null) {
+ List<UserHandleCompat> users = new ArrayList<>();
+ for (UserHandleCompat user : mUsers) {
+ users.add(user);
+ }
+ return users;
+ }
+ }
+
List<UserHandle> users = mUserManager.getUserProfiles();
if (users == null) {
return Collections.emptyList();