Merge "Fix user icon visibility bugs" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
16d25c70c0
@@ -21,7 +21,7 @@ import android.content.res.Resources;
|
|||||||
import android.database.DataSetObserver;
|
import android.database.DataSetObserver;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.LayerDrawable;
|
import android.graphics.drawable.LayerDrawable;
|
||||||
import android.os.UserManager;
|
import android.os.UserHandle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -76,7 +76,6 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie
|
|||||||
private final KeyguardVisibilityHelper mKeyguardVisibilityHelper;
|
private final KeyguardVisibilityHelper mKeyguardVisibilityHelper;
|
||||||
private final KeyguardUserDetailAdapter mUserDetailAdapter;
|
private final KeyguardUserDetailAdapter mUserDetailAdapter;
|
||||||
private NotificationPanelViewController mNotificationPanelViewController;
|
private NotificationPanelViewController mNotificationPanelViewController;
|
||||||
private UserManager mUserManager;
|
|
||||||
UserSwitcherController.UserRecord mCurrentUser;
|
UserSwitcherController.UserRecord mCurrentUser;
|
||||||
|
|
||||||
// State info for the user switch and keyguard
|
// State info for the user switch and keyguard
|
||||||
@@ -115,7 +114,6 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie
|
|||||||
UserAvatarView view,
|
UserAvatarView view,
|
||||||
Context context,
|
Context context,
|
||||||
@Main Resources resources,
|
@Main Resources resources,
|
||||||
UserManager userManager,
|
|
||||||
ScreenLifecycle screenLifecycle,
|
ScreenLifecycle screenLifecycle,
|
||||||
UserSwitcherController userSwitcherController,
|
UserSwitcherController userSwitcherController,
|
||||||
KeyguardStateController keyguardStateController,
|
KeyguardStateController keyguardStateController,
|
||||||
@@ -129,7 +127,6 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie
|
|||||||
if (DEBUG) Log.d(TAG, "New KeyguardQsUserSwitchController");
|
if (DEBUG) Log.d(TAG, "New KeyguardQsUserSwitchController");
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mResources = resources;
|
mResources = resources;
|
||||||
mUserManager = userManager;
|
|
||||||
mScreenLifecycle = screenLifecycle;
|
mScreenLifecycle = screenLifecycle;
|
||||||
mUserSwitcherController = userSwitcherController;
|
mUserSwitcherController = userSwitcherController;
|
||||||
mKeyguardStateController = keyguardStateController;
|
mKeyguardStateController = keyguardStateController;
|
||||||
@@ -227,47 +224,39 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mCurrentUser == null) {
|
|
||||||
mView.setVisibility(View.GONE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mView.setVisibility(View.VISIBLE);
|
|
||||||
|
|
||||||
String currentUserName = mCurrentUser.info.name;
|
|
||||||
String contentDescription = null;
|
String contentDescription = null;
|
||||||
|
if (mCurrentUser != null && mCurrentUser.info != null && !TextUtils.isEmpty(
|
||||||
if (!TextUtils.isEmpty(currentUserName)) {
|
mCurrentUser.info.name)) {
|
||||||
|
// If we know the current user's name, have TalkBack to announce "Signed in as [user
|
||||||
|
// name]" when the icon is selected
|
||||||
|
contentDescription = mContext.getString(R.string.accessibility_quick_settings_user,
|
||||||
|
mCurrentUser.info.name);
|
||||||
|
} else {
|
||||||
|
// As a fallback, have TalkBack announce "Switch user"
|
||||||
contentDescription = mContext.getString(
|
contentDescription = mContext.getString(
|
||||||
R.string.accessibility_quick_settings_user,
|
R.string.accessibility_multi_user_switch_switcher);
|
||||||
currentUserName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TextUtils.equals(mView.getContentDescription(), contentDescription)) {
|
if (!TextUtils.equals(mView.getContentDescription(), contentDescription)) {
|
||||||
mView.setContentDescription(contentDescription);
|
mView.setContentDescription(contentDescription);
|
||||||
}
|
}
|
||||||
|
|
||||||
mView.setDrawableWithBadge(getCurrentUserIcon().mutate(), mCurrentUser.resolveId());
|
int userId = mCurrentUser != null ? mCurrentUser.resolveId() : UserHandle.USER_NULL;
|
||||||
|
mView.setDrawableWithBadge(getCurrentUserIcon().mutate(), userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Drawable getCurrentUserIcon() {
|
Drawable getCurrentUserIcon() {
|
||||||
Drawable drawable;
|
Drawable drawable;
|
||||||
if (mCurrentUser.picture == null) {
|
if (mCurrentUser == null || mCurrentUser.picture == null) {
|
||||||
if (mCurrentUser.isCurrent && mCurrentUser.isGuest) {
|
if (mCurrentUser != null && mCurrentUser.isGuest) {
|
||||||
drawable = mContext.getDrawable(R.drawable.ic_avatar_guest_user);
|
drawable = mContext.getDrawable(R.drawable.ic_avatar_guest_user);
|
||||||
} else {
|
} else {
|
||||||
drawable = mAdapter.getIconDrawable(mContext, mCurrentUser);
|
drawable = mContext.getDrawable(R.drawable.ic_avatar_user);
|
||||||
}
|
|
||||||
int iconColorRes;
|
|
||||||
if (mCurrentUser.isSwitchToEnabled) {
|
|
||||||
iconColorRes = R.color.kg_user_switcher_avatar_icon_color;
|
|
||||||
} else {
|
|
||||||
iconColorRes = R.color.kg_user_switcher_restricted_avatar_icon_color;
|
|
||||||
}
|
}
|
||||||
|
int iconColorRes = R.color.kg_user_switcher_avatar_icon_color;
|
||||||
drawable.setTint(mResources.getColor(iconColorRes, mContext.getTheme()));
|
drawable.setTint(mResources.getColor(iconColorRes, mContext.getTheme()));
|
||||||
} else {
|
} else {
|
||||||
int avatarSize =
|
int avatarSize = (int) mResources.getDimension(R.dimen.kg_framed_avatar_size);
|
||||||
(int) mResources.getDimension(R.dimen.kg_framed_avatar_size);
|
|
||||||
drawable = new CircleFramedDrawable(mCurrentUser.picture, avatarSize);
|
drawable = new CircleFramedDrawable(mCurrentUser.picture, avatarSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user