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

Unified Diff: chrome/browser/chromeos/login/screens/user_image_screen.cc

Issue 2568973002: chromeos: Replace user image notifications with observer (Closed)
Patch Set: rebase Created 4 years 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/chromeos/login/screens/user_image_screen.cc
diff --git a/chrome/browser/chromeos/login/screens/user_image_screen.cc b/chrome/browser/chromeos/login/screens/user_image_screen.cc
index bd038496217671ea3fbe6eb467212c624d3c6e76..9549c15d36f27dadc73d53a273f065de3ec2399b 100644
--- a/chrome/browser/chromeos/login/screens/user_image_screen.cc
+++ b/chrome/browser/chromeos/login/screens/user_image_screen.cc
@@ -73,19 +73,12 @@ UserImageScreen::UserImageScreen(BaseScreenDelegate* base_screen_delegate,
user_has_selected_image_(false) {
if (view_)
view_->Bind(*this);
- notification_registrar_.Add(this,
- chrome::NOTIFICATION_PROFILE_IMAGE_UPDATED,
- content::NotificationService::AllSources());
- notification_registrar_.Add(this,
- chrome::NOTIFICATION_PROFILE_IMAGE_UPDATE_FAILED,
- content::NotificationService::AllSources());
- notification_registrar_.Add(this,
- chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED,
- content::NotificationService::AllSources());
+ user_manager::UserManager::Get()->AddObserver(this);
GetContextEditor().SetString(kContextKeyProfilePictureDataURL, std::string());
}
UserImageScreen::~UserImageScreen() {
+ user_manager::UserManager::Get()->RemoveObserver(this);
CameraPresenceNotifier::GetInstance()->RemoveObserver(this);
if (view_)
view_->Unbind();
@@ -293,7 +286,7 @@ void UserImageScreen::Show() {
void UserImageScreen::Hide() {
CameraPresenceNotifier::GetInstance()->RemoveObserver(this);
- notification_registrar_.RemoveAll();
+ user_manager::UserManager::Get()->RemoveObserver(this);
policy_registrar_.reset();
sync_timer_.reset();
if (UserImageSyncObserver* sync_observer = GetSyncObserver())
@@ -307,35 +300,25 @@ void UserImageScreen::OnViewDestroyed(UserImageView* view) {
view_ = nullptr;
}
-void UserImageScreen::Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
- switch (type) {
- case chrome::NOTIFICATION_PROFILE_IMAGE_UPDATED: {
- // We've got a new profile image.
- GetContextEditor().SetString(
- kContextKeyProfilePictureDataURL,
- webui::GetBitmapDataUrl(
- *content::Details<const gfx::ImageSkia>(details)
- .ptr()
- ->bitmap()));
- break;
- }
- case chrome::NOTIFICATION_PROFILE_IMAGE_UPDATE_FAILED: {
- // User has a default profile image or fetching profile image has failed.
- GetContextEditor().SetString(kContextKeyProfilePictureDataURL,
- std::string());
- break;
- }
- case chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED: {
- GetContextEditor().SetString(
- kContextKeySelectedImageURL,
- default_user_image::GetDefaultImageUrl(GetUser()->image_index()));
- break;
- }
- default:
- NOTREACHED();
- }
+void UserImageScreen::OnUserImageChanged(const user_manager::User& user) {
+ GetContextEditor().SetString(
+ kContextKeySelectedImageURL,
+ default_user_image::GetDefaultImageUrl(GetUser()->image_index()));
+}
+
+void UserImageScreen::OnUserProfileImageUpdateFailed(
+ const user_manager::User& user) {
+ // User has a default profile image or fetching profile image has failed.
+ GetContextEditor().SetString(kContextKeyProfilePictureDataURL, std::string());
+}
+
+void UserImageScreen::OnUserProfileImageUpdated(
+ const user_manager::User& user,
+ const gfx::ImageSkia& profile_image) {
+ // We've got a new profile image.
+ GetContextEditor().SetString(
+ kContextKeyProfilePictureDataURL,
+ webui::GetBitmapDataUrl(*profile_image.bitmap()));
}
void UserImageScreen::ExitScreen() {
« no previous file with comments | « chrome/browser/chromeos/login/screens/user_image_screen.h ('k') | chrome/browser/chromeos/login/signin_screen_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698