| 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..bf045b9a708cde237bbc32392bede7d85c1f1b27 100644
|
| --- a/ash/common/system/user/tray_user.cc
|
| +++ b/ash/common/system/user/tray_user.cc
|
| @@ -8,7 +8,6 @@
|
| #include "ash/common/shelf/wm_shelf_util.h"
|
| #include "ash/common/system/tray/system_tray.h"
|
| #include "ash/common/system/tray/system_tray_delegate.h"
|
| -#include "ash/common/system/tray/system_tray_notifier.h"
|
| #include "ash/common/system/tray/tray_constants.h"
|
| #include "ash/common/system/tray/tray_item_view.h"
|
| #include "ash/common/system/tray/tray_utils.h"
|
| @@ -39,17 +38,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 +210,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.
|
| @@ -233,7 +225,11 @@ void TrayUser::OnUserAddedToSession() {
|
| UpdateLayoutOfItem();
|
|
|
| // Update the user item.
|
| - UpdateAvatarImage(Shell::Get()->system_tray_delegate()->GetUserLoginStatus());
|
| + UpdateAvatarImage(Shell::Get()->session_controller()->GetLoginStatus());
|
| +}
|
| +
|
| +void TrayUser::UserSessionUpdated(const AccountId& account_id) {
|
| + UpdateAvatarImage(Shell::Get()->session_controller()->GetLoginStatus());
|
| }
|
|
|
| void TrayUser::UpdateAvatarImage(LoginStatus status) {
|
|
|