diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2015-08-04 11:40:13 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2015-08-04 12:37:05 -0700 |
commit | 823fd5090209017a029460e7dbd8ab9d51d013dd (patch) | |
tree | 9c8564ee6a098377aeb57b427bfeebbb6957355c /src/com/android/launcher3/compat/UserManagerCompatVL.java | |
parent | 317698bd012c1930b83bb4e2e47ac9e363fa6c6a (diff) | |
download | android_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.java | 27 |
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(); |