Loading packages/SystemUI/src/com/android/systemui/qs/tiles/UserTile.java +1 −1 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ public class UserTile extends QSTile<QSTile.State> implements UserInfoController } @Override public void onUserInfoChanged(String name, Drawable picture) { public void onUserInfoChanged(String name, Drawable picture, String userAccount) { mLastUpdate = new Pair<>(name, picture); refreshState(mLastUpdate); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java +1 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,7 @@ public class KeyguardStatusBarView extends RelativeLayout public void setUserInfoController(UserInfoController userInfoController) { userInfoController.addListener(new UserInfoController.OnUserInfoChangedListener() { @Override public void onUserInfoChanged(String name, Drawable picture) { public void onUserInfoChanged(String name, Drawable picture, String userAccount) { mMultiUserAvatar.setImageDrawable(picture); } }); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +1 −1 Original line number Diff line number Diff line Loading @@ -395,7 +395,7 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements } @Override public void onUserInfoChanged(String name, Drawable picture) { public void onUserInfoChanged(String name, Drawable picture, String userAccount) { mMultiUserAvatar.setImageDrawable(picture); } } packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java +1 −1 Original line number Diff line number Diff line Loading @@ -504,7 +504,7 @@ public class StatusBarHeaderView extends BaseStatusBarHeader implements View.OnC public void setUserInfoController(UserInfoController userInfoController) { userInfoController.addListener(new UserInfoController.OnUserInfoChangedListener() { @Override public void onUserInfoChanged(String name, Drawable picture) { public void onUserInfoChanged(String name, Drawable picture, String userAccount) { mMultiUserAvatar.setImageDrawable(picture); } }); Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/UserInfoController.java +39 −11 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.policy; import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.content.BroadcastReceiver; import android.content.Context; Loading @@ -33,7 +34,6 @@ import android.os.UserHandle; import android.os.UserManager; import android.provider.ContactsContract; import android.util.Log; import android.util.Pair; import com.android.internal.util.UserIcons; import com.android.settingslib.drawable.UserIconDrawable; Loading @@ -48,10 +48,11 @@ public final class UserInfoController { private final Context mContext; private final ArrayList<OnUserInfoChangedListener> mCallbacks = new ArrayList<OnUserInfoChangedListener>(); private AsyncTask<Void, Void, Pair<String, Drawable>> mUserInfoTask; private AsyncTask<Void, Void, UserInfoQueryResult> mUserInfoTask; private String mUserName; private Drawable mUserDrawable; private String mUserAccount; public UserInfoController(Context context) { mContext = context; Loading @@ -68,7 +69,7 @@ public final class UserInfoController { public void addListener(OnUserInfoChangedListener callback) { mCallbacks.add(callback); callback.onUserInfoChanged(mUserName, mUserDrawable); callback.onUserInfoChanged(mUserName, mUserDrawable, mUserAccount); } public void remListener(OnUserInfoChangedListener callback) { Loading Loading @@ -137,9 +138,10 @@ public final class UserInfoController { res.getDimensionPixelSize(R.dimen.multi_user_avatar_keyguard_size)); final Context context = currentUserContext; mUserInfoTask = new AsyncTask<Void, Void, Pair<String, Drawable>>() { mUserInfoTask = new AsyncTask<Void, Void, UserInfoQueryResult>() { @Override protected Pair<String, Drawable> doInBackground(Void... params) { protected UserInfoQueryResult doInBackground(Void... params) { final UserManager um = UserManager.get(mContext); // Fall back to the UserManager nickname if we can't read the name from the local Loading Loading @@ -175,13 +177,15 @@ public final class UserInfoController { } } } return new Pair<String, Drawable>(name, avatar); String userAccount = um.getUserAccount(userId); return new UserInfoQueryResult(name, avatar, userAccount); } @Override protected void onPostExecute(Pair<String, Drawable> result) { mUserName = result.first; mUserDrawable = result.second; protected void onPostExecute(UserInfoQueryResult result) { mUserName = result.getName(); mUserDrawable = result.getAvatar(); mUserAccount = result.getUserAccount(); mUserInfoTask = null; notifyChanged(); } Loading @@ -191,7 +195,7 @@ public final class UserInfoController { private void notifyChanged() { for (OnUserInfoChangedListener listener : mCallbacks) { listener.onUserInfoChanged(mUserName, mUserDrawable); listener.onUserInfoChanged(mUserName, mUserDrawable, mUserAccount); } } Loading @@ -200,6 +204,30 @@ public final class UserInfoController { } public interface OnUserInfoChangedListener { public void onUserInfoChanged(String name, Drawable picture); public void onUserInfoChanged(String name, Drawable picture, String userAccount); } private static class UserInfoQueryResult { private String mName; private Drawable mAvatar; private String mUserAccount; public UserInfoQueryResult(String name, Drawable avatar, String userAccount) { mName = name; mAvatar = avatar; mUserAccount = userAccount; } public String getName() { return mName; } public Drawable getAvatar() { return mAvatar; } public String getUserAccount() { return mUserAccount; } } } Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/UserTile.java +1 −1 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ public class UserTile extends QSTile<QSTile.State> implements UserInfoController } @Override public void onUserInfoChanged(String name, Drawable picture) { public void onUserInfoChanged(String name, Drawable picture, String userAccount) { mLastUpdate = new Pair<>(name, picture); refreshState(mLastUpdate); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java +1 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,7 @@ public class KeyguardStatusBarView extends RelativeLayout public void setUserInfoController(UserInfoController userInfoController) { userInfoController.addListener(new UserInfoController.OnUserInfoChangedListener() { @Override public void onUserInfoChanged(String name, Drawable picture) { public void onUserInfoChanged(String name, Drawable picture, String userAccount) { mMultiUserAvatar.setImageDrawable(picture); } }); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +1 −1 Original line number Diff line number Diff line Loading @@ -395,7 +395,7 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements } @Override public void onUserInfoChanged(String name, Drawable picture) { public void onUserInfoChanged(String name, Drawable picture, String userAccount) { mMultiUserAvatar.setImageDrawable(picture); } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java +1 −1 Original line number Diff line number Diff line Loading @@ -504,7 +504,7 @@ public class StatusBarHeaderView extends BaseStatusBarHeader implements View.OnC public void setUserInfoController(UserInfoController userInfoController) { userInfoController.addListener(new UserInfoController.OnUserInfoChangedListener() { @Override public void onUserInfoChanged(String name, Drawable picture) { public void onUserInfoChanged(String name, Drawable picture, String userAccount) { mMultiUserAvatar.setImageDrawable(picture); } }); Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/UserInfoController.java +39 −11 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.policy; import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.content.BroadcastReceiver; import android.content.Context; Loading @@ -33,7 +34,6 @@ import android.os.UserHandle; import android.os.UserManager; import android.provider.ContactsContract; import android.util.Log; import android.util.Pair; import com.android.internal.util.UserIcons; import com.android.settingslib.drawable.UserIconDrawable; Loading @@ -48,10 +48,11 @@ public final class UserInfoController { private final Context mContext; private final ArrayList<OnUserInfoChangedListener> mCallbacks = new ArrayList<OnUserInfoChangedListener>(); private AsyncTask<Void, Void, Pair<String, Drawable>> mUserInfoTask; private AsyncTask<Void, Void, UserInfoQueryResult> mUserInfoTask; private String mUserName; private Drawable mUserDrawable; private String mUserAccount; public UserInfoController(Context context) { mContext = context; Loading @@ -68,7 +69,7 @@ public final class UserInfoController { public void addListener(OnUserInfoChangedListener callback) { mCallbacks.add(callback); callback.onUserInfoChanged(mUserName, mUserDrawable); callback.onUserInfoChanged(mUserName, mUserDrawable, mUserAccount); } public void remListener(OnUserInfoChangedListener callback) { Loading Loading @@ -137,9 +138,10 @@ public final class UserInfoController { res.getDimensionPixelSize(R.dimen.multi_user_avatar_keyguard_size)); final Context context = currentUserContext; mUserInfoTask = new AsyncTask<Void, Void, Pair<String, Drawable>>() { mUserInfoTask = new AsyncTask<Void, Void, UserInfoQueryResult>() { @Override protected Pair<String, Drawable> doInBackground(Void... params) { protected UserInfoQueryResult doInBackground(Void... params) { final UserManager um = UserManager.get(mContext); // Fall back to the UserManager nickname if we can't read the name from the local Loading Loading @@ -175,13 +177,15 @@ public final class UserInfoController { } } } return new Pair<String, Drawable>(name, avatar); String userAccount = um.getUserAccount(userId); return new UserInfoQueryResult(name, avatar, userAccount); } @Override protected void onPostExecute(Pair<String, Drawable> result) { mUserName = result.first; mUserDrawable = result.second; protected void onPostExecute(UserInfoQueryResult result) { mUserName = result.getName(); mUserDrawable = result.getAvatar(); mUserAccount = result.getUserAccount(); mUserInfoTask = null; notifyChanged(); } Loading @@ -191,7 +195,7 @@ public final class UserInfoController { private void notifyChanged() { for (OnUserInfoChangedListener listener : mCallbacks) { listener.onUserInfoChanged(mUserName, mUserDrawable); listener.onUserInfoChanged(mUserName, mUserDrawable, mUserAccount); } } Loading @@ -200,6 +204,30 @@ public final class UserInfoController { } public interface OnUserInfoChangedListener { public void onUserInfoChanged(String name, Drawable picture); public void onUserInfoChanged(String name, Drawable picture, String userAccount); } private static class UserInfoQueryResult { private String mName; private Drawable mAvatar; private String mUserAccount; public UserInfoQueryResult(String name, Drawable avatar, String userAccount) { mName = name; mAvatar = avatar; mUserAccount = userAccount; } public String getName() { return mName; } public Drawable getAvatar() { return mAvatar; } public String getUserAccount() { return mUserAccount; } } }