OSDN Git Service

Cache default circle avatar for faster creation of UserSettings
authorAmith Yamasani <yamasani@google.com>
Tue, 28 May 2013 18:17:07 +0000 (11:17 -0700)
committerAmith Yamasani <yamasani@google.com>
Tue, 28 May 2013 18:17:43 +0000 (11:17 -0700)
Change-Id: Ie2ed9d032f71fad7a89edde147f231a1dc479aae

src/com/android/settings/users/UserSettings.java

index a19158f..193e8c9 100644 (file)
@@ -134,6 +134,7 @@ public class UserSettings extends SettingsPreferenceFragment
     private final Object mUserLock = new Object();
     private UserManager mUserManager;
     private SparseArray<Bitmap> mUserIcons = new SparseArray<Bitmap>();
+    private Drawable mDefaultCircleAvatar;
     private boolean mIsOwner = UserHandle.myUserId() == UserHandle.USER_OWNER;
 
 
@@ -283,6 +284,13 @@ public class UserSettings extends SettingsPreferenceFragment
         }
     }
 
+    private Drawable getDefaultCircleAvatar() {
+        if (mDefaultCircleAvatar == null) {
+            mDefaultCircleAvatar = encircle(R.drawable.avatar_default_1);
+        }
+        return mDefaultCircleAvatar;
+    }
+
     private boolean hasLockscreenSecurity() {
         LockPatternUtils lpu = new LockPatternUtils(getActivity());
         return lpu.isLockPasswordEnabled() || lpu.isLockPatternEnabled();
@@ -638,7 +646,7 @@ public class UserSettings extends SettingsPreferenceFragment
             if (user.iconPath != null) {
                 if (mUserIcons.get(user.id) == null) {
                     missingIcons.add(user.id);
-                    pref.setIcon(encircle(R.drawable.avatar_default_1));
+                    pref.setIcon(getDefaultCircleAvatar());
                 } else {
                     setPhotoId(pref, user);
                 }
@@ -650,7 +658,7 @@ public class UserSettings extends SettingsPreferenceFragment
                     null, null);
             pref.setEnabled(false);
             pref.setTitle(R.string.user_new_user_name);
-            pref.setIcon(encircle(R.drawable.avatar_default_1));
+            pref.setIcon(getDefaultCircleAvatar());
             mUserListCategory.addPreference(pref);
         }
         getActivity().invalidateOptionsMenu();