#include "chrome/browser/chromeos/camera_presence_notifier.h"
#include "chrome/browser/chromeos/login/login_utils.h"
#include "chrome/browser/chromeos/login/screens/screen_observer.h"
-#include "chrome/browser/chromeos/login/users/avatar/default_user_images.h"
-#include "chrome/browser/chromeos/login/users/avatar/user_image.h"
#include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h"
-#include "chrome/browser/chromeos/login/users/user_manager.h"
+#include "chrome/browser/chromeos/login/users/chrome_user_manager.h"
#include "chrome/browser/chromeos/login/wizard_controller.h"
+#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/policy/profile_policy_connector.h"
#include "chrome/browser/policy/profile_policy_connector_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "components/policy/core/common/policy_map.h"
#include "components/policy/core/common/policy_namespace.h"
#include "components/policy/core/common/policy_service.h"
+#include "components/user_manager/user.h"
+#include "components/user_manager/user_image/default_user_images.h"
+#include "components/user_manager/user_image/user_image.h"
+#include "components/user_manager/user_manager.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_service.h"
-#include "grit/generated_resources.h"
-#include "grit/theme_resources.h"
#include "policy/policy_constants.h"
#include "third_party/skia/include/core/SkBitmap.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
#include "ui/base/webui/web_ui_util.h"
#include "ui/gfx/image/image_skia.h"
: WizardScreen(screen_observer),
actor_(actor),
accept_photo_after_decoding_(false),
- selected_image_(User::kInvalidImageIndex),
- profile_picture_enabled_(false),
+ selected_image_(user_manager::User::USER_IMAGE_INVALID),
profile_picture_data_url_(url::kAboutBlankURL),
profile_picture_absent_(false),
is_screen_ready_(false),
user_has_selected_image_(false) {
actor_->SetDelegate(this);
- SetProfilePictureEnabled(true);
+ 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());
}
if (image_url.empty())
return;
- int user_image_index = User::kInvalidImageIndex;
+ int user_image_index = user_manager::User::USER_IMAGE_INVALID;
if (image_type == "default" &&
- IsDefaultImageUrl(image_url, &user_image_index)) {
+ user_manager::IsDefaultImageUrl(image_url, &user_image_index)) {
selected_image_ = user_image_index;
} else if (image_type == "camera") {
- selected_image_ = User::kExternalImageIndex;
+ selected_image_ = user_manager::User::USER_IMAGE_EXTERNAL;
} else if (image_type == "profile") {
- selected_image_ = User::kProfileImageIndex;
+ selected_image_ = user_manager::User::USER_IMAGE_PROFILE;
} else {
NOTREACHED() << "Unexpected image type: " << image_type;
}
UserImageManager* image_manager = GetUserImageManager();
int uma_index = 0;
switch (selected_image_) {
- case User::kExternalImageIndex:
+ case user_manager::User::USER_IMAGE_EXTERNAL:
// Photo decoding may not have been finished yet.
if (user_photo_.isNull()) {
accept_photo_after_decoding_ = true;
return;
}
- image_manager->SaveUserImage(UserImage::CreateAndEncode(user_photo_));
- uma_index = kHistogramImageFromCamera;
+ image_manager->SaveUserImage(
+ user_manager::UserImage::CreateAndEncode(user_photo_));
+ uma_index = user_manager::kHistogramImageFromCamera;
break;
- case User::kProfileImageIndex:
+ case user_manager::User::USER_IMAGE_PROFILE:
image_manager->SaveUserImageFromProfileImage();
- uma_index = kHistogramImageFromProfile;
+ uma_index = user_manager::kHistogramImageFromProfile;
break;
default:
- DCHECK(selected_image_ >= 0 && selected_image_ < kDefaultImagesCount);
+ DCHECK(selected_image_ >= 0 &&
+ selected_image_ < user_manager::kDefaultImagesCount);
image_manager->SaveUserDefaultImageIndex(selected_image_);
- uma_index = GetDefaultImageHistogramValue(selected_image_);
+ uma_index = user_manager::GetDefaultImageHistogramValue(selected_image_);
break;
}
if (user_has_selected_image_) {
UMA_HISTOGRAM_ENUMERATION("UserImage.FirstTimeChoice",
uma_index,
- kHistogramImagesCount);
+ user_manager::kHistogramImagesCount);
}
ExitScreen();
}
-void UserImageScreen::SetProfilePictureEnabled(bool profile_picture_enabled) {
- if (profile_picture_enabled_ == profile_picture_enabled)
- return;
- profile_picture_enabled_ = profile_picture_enabled;
- if (profile_picture_enabled) {
- 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());
- } else {
- notification_registrar_.Remove(this,
- chrome::NOTIFICATION_PROFILE_IMAGE_UPDATED,
- content::NotificationService::AllSources());
- notification_registrar_.Remove(
- this,
- chrome::NOTIFICATION_PROFILE_IMAGE_UPDATE_FAILED,
- content::NotificationService::AllSources());
- }
- if (actor_)
- actor_->SetProfilePictureEnabled(profile_picture_enabled);
-}
-
-void UserImageScreen::SetUserID(const std::string& user_id) {
- DCHECK(!user_id.empty());
- user_id_ = user_id;
-}
-
void UserImageScreen::PrepareToShow() {
if (actor_)
actor_->PrepareToShow();
}
-const User* UserImageScreen::GetUser() {
- if (user_id_.empty())
- return UserManager::Get()->GetLoggedInUser();
- return UserManager::Get()->FindUser(user_id_);
+const user_manager::User* UserImageScreen::GetUser() {
+ return user_manager::UserManager::Get()->GetLoggedInUser();
}
UserImageManager* UserImageScreen::GetUserImageManager() {
- return UserManager::Get()->GetUserImageManager(GetUser()->email());
+ return ChromeUserManager::Get()->GetUserImageManager(GetUser()->email());
}
UserImageSyncObserver* UserImageScreen::GetSyncObserver() {
return;
DCHECK(!policy_registrar_);
- Profile* profile = UserManager::Get()->GetProfileByUser(GetUser());
- if (profile) {
+ if (Profile* profile = ProfileHelper::Get()->GetProfileByUser(GetUser())) {
policy::PolicyService* policy_service =
policy::ProfilePolicyConnectorFactory::GetForProfile(profile)->
policy_service();
}
CameraPresenceNotifier::GetInstance()->AddObserver(this);
actor_->Show();
- actor_->SetProfilePictureEnabled(profile_picture_enabled_);
selected_image_ = GetUser()->image_index();
actor_->SelectImage(selected_image_);
- if (profile_picture_enabled_) {
- // Start fetching the profile image.
- GetUserImageManager()->DownloadProfileImage(kProfileDownloadReason);
- }
+ // Start fetching the profile image.
+ GetUserImageManager()->DownloadProfileImage(kProfileDownloadReason);
}
void UserImageScreen::Hide() {
CameraPresenceNotifier::GetInstance()->RemoveObserver(this);
+ notification_registrar_.RemoveAll();
if (actor_)
actor_->Hide();
}
void UserImageScreen::Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) {
- DCHECK(profile_picture_enabled_);
switch (type) {
case chrome::NOTIFICATION_PROFILE_IMAGE_UPDATED: {
// We've got a new profile image.