summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-12 12:16:01 +0000
committeravayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-12 12:16:01 +0000
commite23e08a6eb5773fcb15ecfe45dd878afd4cc5d14 (patch)
tree4ecf6a9a006cd8b43dedb86e8dbfbb022144edea
parent88fd2dc54e84f3eeba1107fc7a399bd9da6a5a02 (diff)
downloadchromium_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
-rw-r--r--chrome/browser/chromeos/login/user_image_downloader.cc6
-rw-r--r--chrome/browser/chromeos/login/user_image_screen.cc1
-rw-r--r--chrome/browser/chromeos/login/user_manager.cc7
-rw-r--r--chrome/browser/chromeos/login/user_manager.h4
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);