Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(681)

Unified Diff: ash/common/system/user/tray_user.cc

Issue 2780963002: ash: Fix system tray avatar not updated regression (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/common/system/user/tray_user.cc
diff --git a/ash/common/system/user/tray_user.cc b/ash/common/system/user/tray_user.cc
index bd35a469e065e3d1ccdceab42cabb98773366cef..95edc235009e06cf6c49ed03ff0c81f566f2f0db 100644
--- a/ash/common/system/user/tray_user.cc
+++ b/ash/common/system/user/tray_user.cc
@@ -39,17 +39,10 @@ namespace ash {
TrayUser::TrayUser(SystemTray* system_tray, UserIndex index)
: SystemTrayItem(system_tray, UMA_USER),
- user_index_(index),
- user_(nullptr),
- layout_view_(nullptr),
- avatar_(nullptr),
- label_(nullptr) {
- Shell::Get()->system_tray_notifier()->AddUserObserver(this);
-}
+ scoped_session_observer_(this),
+ user_index_(index) {}
-TrayUser::~TrayUser() {
- Shell::Get()->system_tray_notifier()->RemoveUserObserver(this);
-}
+TrayUser::~TrayUser() {}
TrayUser::TestState TrayUser::GetStateForTest() const {
if (!user_)
@@ -218,11 +211,11 @@ void TrayUser::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) {
}
}
-void TrayUser::OnUserUpdate() {
- UpdateAvatarImage(Shell::Get()->system_tray_delegate()->GetUserLoginStatus());
+void TrayUser::ActiveUserChanged(const AccountId& account_id) {
+ UserSessionUpdated(account_id);
}
-void TrayUser::OnUserAddedToSession() {
+void TrayUser::UserAddedToSession(const AccountId& account_id) {
const SessionController* const session_controller =
Shell::Get()->session_controller();
// Only create views for user items which are logged in.
@@ -236,6 +229,10 @@ void TrayUser::OnUserAddedToSession() {
UpdateAvatarImage(Shell::Get()->system_tray_delegate()->GetUserLoginStatus());
}
+void TrayUser::UserSessionUpdated(const AccountId& account_id) {
+ UpdateAvatarImage(Shell::Get()->system_tray_delegate()->GetUserLoginStatus());
James Cook 2017/03/29 00:51:23 You have to use SystemTrayDelegate because Session
xiyuan 2017/03/29 20:45:30 Nope. Brain-dead copy. Changed to use SystemContro
+}
+
void TrayUser::UpdateAvatarImage(LoginStatus status) {
const SessionController* const session_controller =
Shell::Get()->session_controller();

Powered by Google App Engine
This is Rietveld 408576698