Chromium Code Reviews| 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 24936e92002d982118004c262589a074eb8fdfd3..552935d03a40c105fab4edd9e08f14711f209444 100644 |
| --- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc |
| +++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc |
| @@ -10,14 +10,23 @@ |
| #include "chromeos/dbus/dbus_thread_manager.h" |
| #include "chromeos/dbus/session_manager_client.h" |
| +// TODO(skuhne): To be able to test this I had to hardcode the number of known |
| +// users. Get rid of it once it works. |
| +#define ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT 0 |
|
Nikita (slow)
2013/05/17 17:00:32
Why is this needed?
Mr4D (OOO till 08-26)
2013/05/17 18:45:09
As stated - only for testing all the different men
|
| + |
| SessionStateDelegate::SessionStateDelegate() { |
| } |
| SessionStateDelegate::~SessionStateDelegate() { |
| } |
| -bool SessionStateDelegate::HasActiveUser() const { |
| - return chromeos::UserManager::Get()->IsUserLoggedIn(); |
| +int SessionStateDelegate::GetMaximumNumberOfLoggedInUsers() const { |
| + return 3; |
| +} |
| + |
| +int SessionStateDelegate::NumberOfLoggedInUsers() const { |
| + return chromeos::UserManager::Get()->GetLoggedInUsers().size() + |
| + ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT; |
| } |
| bool SessionStateDelegate::IsActiveUserSessionStarted() const { |
| @@ -47,3 +56,50 @@ void SessionStateDelegate::UnlockScreen() { |
| // This is used only for testing thus far. |
| NOTIMPLEMENTED(); |
| } |
| + |
| +const base::string16 SessionStateDelegate::GetUserDisplayName( |
| + ash::MultiProfileIndex index) const { |
| + if (ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT && |
| + static_cast<size_t>(index) >= |
| + chromeos::UserManager::Get()->GetLoggedInUsers().size()) |
| + index = 0; |
|
Nikita (slow)
2013/05/17 17:00:32
nit: Add {}
Mr4D (OOO till 08-26)
2013/05/17 18:45:09
Done.
|
| + DCHECK_LT(index, NumberOfLoggedInUsers()); |
| + return chromeos::UserManager::Get()->GetLRULoggedInUsers()[ |
|
Nikita (slow)
2013/05/17 17:00:32
nit: Makes sense to move method name to next line:
Mr4D (OOO till 08-26)
2013/05/17 18:45:09
Done.
|
| + index]->display_name(); |
| +} |
| + |
| +const std::string SessionStateDelegate::GetUserEmail( |
| + ash::MultiProfileIndex index) const { |
| + if (ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT && |
| + static_cast<size_t>(index) >= |
| + chromeos::UserManager::Get()->GetLoggedInUsers().size()) |
| + index = 0; |
| + DCHECK_LT(index, NumberOfLoggedInUsers()); |
| + return chromeos::UserManager::Get()->GetLRULoggedInUsers()[ |
|
Nikita (slow)
2013/05/17 17:00:32
nit: Same here.
Mr4D (OOO till 08-26)
2013/05/17 18:45:09
Done.
|
| + index]->display_email(); |
| +} |
| + |
| +const gfx::ImageSkia& SessionStateDelegate::GetUserImage( |
| + ash::MultiProfileIndex index) const { |
| + if (ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT && |
|
Nikita (slow)
2013/05/17 17:00:32
Makes sense to extract code that returns user by i
Mr4D (OOO till 08-26)
2013/05/17 18:45:09
This is only for the lifetime of this CL. My next
|
| + static_cast<size_t>(index) >= |
| + chromeos::UserManager::Get()->GetLoggedInUsers().size()) |
| + index = 0; |
| + DCHECK_LT(index, NumberOfLoggedInUsers()); |
| + return chromeos::UserManager::Get()->GetLRULoggedInUsers()[index]->image(); |
| +} |
| + |
| +void SessionStateDelegate::GetLoggedInUsers( |
| + ash::UserEmailList* users) { |
| + const chromeos::UserList& logged_in_users = |
| + chromeos::UserManager::Get()->GetLoggedInUsers(); |
| + for (chromeos::UserList::const_iterator it = logged_in_users.begin(); |
| + it != logged_in_users.end(); ++it) { |
| + const chromeos::User* user = (*it); |
| + users->push_back(user->email()); |
| + } |
| +} |
| + |
| +void SessionStateDelegate::SwitchActiveUser(const std::string& email) { |
| + chromeos::UserManager::Get()->SwitchActiveUser(email); |
| +} |