diff options
author | avayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-12 12:16:01 +0000 |
---|---|---|
committer | avayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-12 12:16:01 +0000 |
commit | e23e08a6eb5773fcb15ecfe45dd878afd4cc5d14 (patch) | |
tree | 4ecf6a9a006cd8b43dedb86e8dbfbb022144edea | |
parent | 88fd2dc54e84f3eeba1107fc7a399bd9da6a5a02 (diff) | |
download | chromium_src-e23e08a6eb5773fcb15ecfe45dd878afd4cc5d14.zip chromium_src-e23e08a6eb5773fcb15ecfe45dd878afd4cc5d14.tar.gz chromium_src-e23e08a6eb5773fcb15ecfe45dd878afd4cc5d14.tar.bz2 |
Set logged in user image when image is selected.
BUG=chromium-os:5636
TEST=See instructions in the bug.
Review URL: http://codereview.chromium.org/3122011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55877 0039d316-1c4b-4281-b951-d872f2087c98
4 files changed, 17 insertions, 1 deletions
diff --git a/chrome/browser/chromeos/login/user_image_downloader.cc b/chrome/browser/chromeos/login/user_image_downloader.cc index 83f5d45..490ca77 100644 --- a/chrome/browser/chromeos/login/user_image_downloader.cc +++ b/chrome/browser/chromeos/login/user_image_downloader.cc @@ -85,8 +85,12 @@ void UserImageDownloader::OnURLFetchComplete(const URLFetcher* source, void UserImageDownloader::OnImageDecoded(const SkBitmap& decoded_image) { // Save the image to file and its path to preferences. chromeos::UserManager* user_manager = chromeos::UserManager::Get(); - if (user_manager) + if (user_manager) { + if (user_manager->logged_in_user().email() == username_) { + user_manager->SetLoggedInUserImage(decoded_image); + } user_manager->SaveUserImage(username_, decoded_image); + } } bool UserImageDownloader::GetImageURL(const std::string& json_data, diff --git a/chrome/browser/chromeos/login/user_image_screen.cc b/chrome/browser/chromeos/login/user_image_screen.cc index 9b617cc..a79c4ce 100644 --- a/chrome/browser/chromeos/login/user_image_screen.cc +++ b/chrome/browser/chromeos/login/user_image_screen.cc @@ -71,6 +71,7 @@ void UserImageScreen::OnOK(const SkBitmap& image) { UserManager* user_manager = UserManager::Get(); if (user_manager) { // TODO(avayvod): Check that there's logged in user actually. + user_manager->SetLoggedInUserImage(image); const UserManager::User& user = user_manager->logged_in_user(); user_manager->SaveUserImage(user.email(), image); } diff --git a/chrome/browser/chromeos/login/user_manager.cc b/chrome/browser/chromeos/login/user_manager.cc index 98d629b..baba41a 100644 --- a/chrome/browser/chromeos/login/user_manager.cc +++ b/chrome/browser/chromeos/login/user_manager.cc @@ -206,6 +206,13 @@ void UserManager::RemoveUser(const std::string& email) { prefs->SavePersistentPrefs(); } +void UserManager::SetLoggedInUserImage(const SkBitmap& image) { + if (logged_in_user_.email().empty()) + return; + logged_in_user_.set_image(image); + OnImageLoaded(logged_in_user_.email(), image); +} + void UserManager::SaveUserImage(const std::string& username, const SkBitmap& image) { DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); diff --git a/chrome/browser/chromeos/login/user_manager.h b/chrome/browser/chromeos/login/user_manager.h index 5e89067..1d712cd 100644 --- a/chrome/browser/chromeos/login/user_manager.h +++ b/chrome/browser/chromeos/login/user_manager.h @@ -71,6 +71,10 @@ class UserManager : public UserImageLoader::Delegate { return logged_in_user_; } + // Sets image for logged-in user and sends LOGIN_USER_IMAGE_CHANGED + // notification about the image changed via NotificationService. + void SetLoggedInUserImage(const SkBitmap& image); + // Saves image to file and saves image path in local state preferences. void SaveUserImage(const std::string& username, const SkBitmap& image); |