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

Unified Diff: chrome/browser/ui/ash/session_state_delegate_chromeos.cc

Issue 15718003: Add SessionStateObserver with ActiveUserChanged() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge & add SessionStateDelegateChromeos Created 7 years, 6 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: chrome/browser/ui/ash/session_state_delegate_chromeos.cc
diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
index c9bb73e8c67ec9560ebd93a0779b9b8e9c3740f5..a44c8924e3da49398d0701428ec0f754185194b4 100644
--- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
+++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
@@ -2,42 +2,45 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ui/ash/session_state_delegate.h"
+#include "chrome/browser/ui/ash/session_state_delegate_chromeos.h"
+#include "ash/session_state_observer.h"
#include "base/logging.h"
#include "chrome/browser/chromeos/login/screen_locker.h"
+#include "chrome/browser/chromeos/login/user.h"
#include "chrome/browser/chromeos/login/user_manager.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/session_manager_client.h"
-SessionStateDelegate::SessionStateDelegate() {
+SessionStateDelegateChromeos::SessionStateDelegateChromeos() {
+ chromeos::UserManager::Get()->AddSessionStateObserver(this);
}
-SessionStateDelegate::~SessionStateDelegate() {
+SessionStateDelegateChromeos::~SessionStateDelegateChromeos() {
}
-int SessionStateDelegate::GetMaximumNumberOfLoggedInUsers() const {
+int SessionStateDelegateChromeos::GetMaximumNumberOfLoggedInUsers() const {
return 3;
}
-int SessionStateDelegate::NumberOfLoggedInUsers() const {
+int SessionStateDelegateChromeos::NumberOfLoggedInUsers() const {
return chromeos::UserManager::Get()->GetLoggedInUsers().size();
}
-bool SessionStateDelegate::IsActiveUserSessionStarted() const {
+bool SessionStateDelegateChromeos::IsActiveUserSessionStarted() const {
return chromeos::UserManager::Get()->IsSessionStarted();
}
-bool SessionStateDelegate::CanLockScreen() const {
+bool SessionStateDelegateChromeos::CanLockScreen() const {
return chromeos::UserManager::Get()->CanCurrentUserLock();
}
-bool SessionStateDelegate::IsScreenLocked() const {
+bool SessionStateDelegateChromeos::IsScreenLocked() const {
return chromeos::ScreenLocker::default_screen_locker() &&
chromeos::ScreenLocker::default_screen_locker()->locked();
}
-void SessionStateDelegate::LockScreen() {
+void SessionStateDelegateChromeos::LockScreen() {
if (!CanLockScreen())
return;
@@ -47,33 +50,32 @@ void SessionStateDelegate::LockScreen() {
RequestLockScreen();
}
-void SessionStateDelegate::UnlockScreen() {
+void SessionStateDelegateChromeos::UnlockScreen() {
// This is used only for testing thus far.
NOTIMPLEMENTED();
}
-const base::string16 SessionStateDelegate::GetUserDisplayName(
+const base::string16 SessionStateDelegateChromeos::GetUserDisplayName(
ash::MultiProfileIndex index) const {
DCHECK_LT(index, NumberOfLoggedInUsers());
return chromeos::UserManager::Get()->
GetLRULoggedInUsers()[index]->display_name();
}
-const std::string SessionStateDelegate::GetUserEmail(
+const std::string SessionStateDelegateChromeos::GetUserEmail(
ash::MultiProfileIndex index) const {
DCHECK_LT(index, NumberOfLoggedInUsers());
return chromeos::UserManager::Get()->
GetLRULoggedInUsers()[index]->display_email();
}
-const gfx::ImageSkia& SessionStateDelegate::GetUserImage(
+const gfx::ImageSkia& SessionStateDelegateChromeos::GetUserImage(
ash::MultiProfileIndex index) const {
DCHECK_LT(index, NumberOfLoggedInUsers());
return chromeos::UserManager::Get()->GetLRULoggedInUsers()[index]->image();
}
-void SessionStateDelegate::GetLoggedInUsers(
- ash::UserEmailList* users) {
+void SessionStateDelegateChromeos::GetLoggedInUsers(ash::UserIdList* users) {
const chromeos::UserList& logged_in_users =
chromeos::UserManager::Get()->GetLoggedInUsers();
for (chromeos::UserList::const_iterator it = logged_in_users.begin();
@@ -83,6 +85,24 @@ void SessionStateDelegate::GetLoggedInUsers(
}
}
-void SessionStateDelegate::SwitchActiveUser(const std::string& email) {
- chromeos::UserManager::Get()->SwitchActiveUser(email);
+void SessionStateDelegateChromeos::SwitchActiveUser(
+ const std::string& user_id) {
+ chromeos::UserManager::Get()->SwitchActiveUser(user_id);
+}
+
+void SessionStateDelegateChromeos::AddSessionStateObserver(
+ ash::SessionStateObserver* observer) {
+ session_state_observer_list_.AddObserver(observer);
+}
+
+void SessionStateDelegateChromeos::RemoveSessionStateObserver(
+ ash::SessionStateObserver* observer) {
+ session_state_observer_list_.RemoveObserver(observer);
+}
+
+void SessionStateDelegateChromeos::ActiveUserChanged(
+ const chromeos::User* active_user) {
+ FOR_EACH_OBSERVER(ash::SessionStateObserver,
+ session_state_observer_list_,
+ ActiveUserChanged(active_user->email()));
}
« no previous file with comments | « chrome/browser/ui/ash/session_state_delegate_chromeos.h ('k') | chrome/browser/ui/ash/session_state_delegate_views.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698