Index: chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc |
diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc |
index 75440991520d59fdc24697913a49e52952ec28e3..4683a6c432f57e89dc420c6068d7d91defb1852c 100644 |
--- a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc |
+++ b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc |
@@ -35,7 +35,9 @@ |
#include "components/user_manager/user_type.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/notification_service.h" |
+#include "grit/theme_resources.h" |
#include "policy/policy_constants.h" |
+#include "ui/base/resource/resource_bundle.h" |
#include "ui/gfx/image/image_skia.h" |
namespace chromeos { |
@@ -145,10 +147,10 @@ void AddProfileImageTimeHistogram(ProfileDownloadResult result, |
// Converts |image_index| to UMA histogram value. |
int ImageIndexToHistogramIndex(int image_index) { |
switch (image_index) { |
- case User::kExternalImageIndex: |
+ case user_manager::User::USER_IMAGE_EXTERNAL: |
// TODO(ivankr): Distinguish this from selected from file. |
return user_manager::kHistogramImageFromCamera; |
- case User::kProfileImageIndex: |
+ case user_manager::User::USER_IMAGE_PROFILE: |
return user_manager::kHistogramImageFromProfile; |
default: |
return image_index; |
@@ -305,8 +307,8 @@ void UserImageManagerImpl::Job::LoadImage(base::FilePath image_path, |
user_manager::UserImage(user_manager::GetDefaultImage(image_index_)); |
UpdateUser(); |
NotifyJobDone(); |
- } else if (image_index_ == User::kExternalImageIndex || |
- image_index_ == User::kProfileImageIndex) { |
+ } else if (image_index_ == user_manager::User::USER_IMAGE_EXTERNAL || |
+ image_index_ == user_manager::User::USER_IMAGE_PROFILE) { |
// Load the user image from a file referenced by |image_path|. This happens |
// asynchronously. The JPEG image loader can be used here because |
// LoadImage() is called only for users whose user image has previously |
@@ -345,8 +347,8 @@ void UserImageManagerImpl::Job::SetToImage( |
DCHECK(!run_); |
run_ = true; |
- DCHECK(image_index == User::kExternalImageIndex || |
- image_index == User::kProfileImageIndex); |
+ DCHECK(image_index == user_manager::User::USER_IMAGE_EXTERNAL || |
+ image_index == user_manager::User::USER_IMAGE_PROFILE); |
image_index_ = image_index; |
user_image_ = user_image; |
@@ -359,7 +361,7 @@ void UserImageManagerImpl::Job::SetToImageData(scoped_ptr<std::string> data) { |
DCHECK(!run_); |
run_ = true; |
- image_index_ = User::kExternalImageIndex; |
+ image_index_ = user_manager::User::USER_IMAGE_EXTERNAL; |
// This method uses the image_loader_, not the unsafe_image_loader_: |
// * This is necessary because the method is used to update the user image |
@@ -408,14 +410,21 @@ void UserImageManagerImpl::Job::OnLoadImageDone( |
} |
void UserImageManagerImpl::Job::UpdateUser() { |
- User* user = parent_->user_manager_->FindUserAndModify(user_id()); |
+ user_manager::User* user = |
+ parent_->user_manager_->FindUserAndModify(user_id()); |
if (!user) |
return; |
- if (!user_image_.image().isNull()) |
+ if (!user_image_.image().isNull()) { |
user->SetImage(user_image_, image_index_); |
- else |
- user->SetStubImage(image_index_, false); |
+ } else { |
+ user->SetStubImage( |
+ user_manager::UserImage( |
+ *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
+ IDR_PROFILE_PICTURE_LOADING)), |
+ image_index_, |
+ false); |
+ } |
user->SetImageURL(image_url_); |
parent_->OnJobChangedUserImage(); |
@@ -434,7 +443,7 @@ void UserImageManagerImpl::Job::SaveImageAndUpdateLocalState() { |
} |
void UserImageManagerImpl::Job::OnSaveImageDone(bool success) { |
- if (success || image_index_ == User::kProfileImageIndex) |
+ if (success || image_index_ == user_manager::User::USER_IMAGE_PROFILE) |
UpdateLocalState(); |
NotifyJobDone(); |
} |
@@ -492,7 +501,7 @@ void UserImageManagerImpl::LoadUserImage() { |
local_state->GetDictionary(kUserImageProperties); |
if (!prefs_images && !prefs_images_unsafe) |
return; |
- User* user = GetUserAndModify(); |
+ user_manager::User* user = GetUserAndModify(); |
bool needs_migration = false; |
// If entries are found in both |prefs_images_unsafe| and |prefs_images|, |
@@ -521,7 +530,7 @@ void UserImageManagerImpl::LoadUserImage() { |
return; |
} |
- int image_index = User::kInvalidImageIndex; |
+ int image_index = user_manager::User::USER_IMAGE_INVALID; |
image_properties->GetInteger(kImageIndexNodeName, &image_index); |
if (image_index >= 0 && image_index < user_manager::kDefaultImagesCount) { |
user->SetImage( |
@@ -530,8 +539,8 @@ void UserImageManagerImpl::LoadUserImage() { |
return; |
} |
- if (image_index != User::kExternalImageIndex && |
- image_index != User::kProfileImageIndex) { |
+ if (image_index != user_manager::User::USER_IMAGE_EXTERNAL && |
+ image_index != user_manager::User::USER_IMAGE_PROFILE) { |
NOTREACHED(); |
return; |
} |
@@ -543,8 +552,13 @@ void UserImageManagerImpl::LoadUserImage() { |
image_properties->GetString(kImagePathNodeName, &image_path); |
user->SetImageURL(image_url); |
- user->SetStubImage(image_index, true); |
- DCHECK(!image_path.empty() || image_index == User::kProfileImageIndex); |
+ user->SetStubImage(user_manager::UserImage( |
+ *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
+ IDR_PROFILE_PICTURE_LOADING)), |
+ image_index, |
+ true); |
+ DCHECK(!image_path.empty() || |
+ image_index == user_manager::User::USER_IMAGE_PROFILE); |
if (image_path.empty() || needs_migration) { |
// Return if either of the following is true: |
// * The profile image is to be used but has not been downloaded yet. The |
@@ -559,7 +573,7 @@ void UserImageManagerImpl::LoadUserImage() { |
void UserImageManagerImpl::UserLoggedIn(bool user_is_new, |
bool user_is_local) { |
- const User* user = GetUser(); |
+ const user_manager::User* user = GetUser(); |
if (user_is_new) { |
if (!user_is_local) |
SetInitialUserImage(); |
@@ -636,14 +650,14 @@ void UserImageManagerImpl::SaveUserImage( |
if (IsUserImageManaged()) |
return; |
job_.reset(new Job(this)); |
- job_->SetToImage(User::kExternalImageIndex, user_image); |
+ job_->SetToImage(user_manager::User::USER_IMAGE_EXTERNAL, user_image); |
} |
void UserImageManagerImpl::SaveUserImageFromFile(const base::FilePath& path) { |
if (IsUserImageManaged()) |
return; |
job_.reset(new Job(this)); |
- job_->SetToPath(path, User::kExternalImageIndex, GURL(), true); |
+ job_->SetToPath(path, user_manager::User::USER_IMAGE_EXTERNAL, GURL(), true); |
} |
void UserImageManagerImpl::SaveUserImageFromProfileImage() { |
@@ -652,7 +666,7 @@ void UserImageManagerImpl::SaveUserImageFromProfileImage() { |
// Use the profile image if it has been downloaded already. Otherwise, use a |
// stub image (gray avatar). |
job_.reset(new Job(this)); |
- job_->SetToImage(User::kProfileImageIndex, |
+ job_->SetToImage(user_manager::User::USER_IMAGE_PROFILE, |
downloaded_profile_image_.isNull() |
? user_manager::UserImage() |
: user_manager::UserImage::CreateAndEncode( |
@@ -695,7 +709,7 @@ void UserImageManagerImpl::OnExternalDataSet(const std::string& policy) { |
has_managed_image_ = true; |
job_.reset(); |
- const User* user = GetUser(); |
+ const user_manager::User* user = GetUser(); |
// If the user image for the currently logged-in user became managed, stop the |
// sync observer so that the policy-set image does not get synced out. |
if (user && user->is_logged_in()) |
@@ -800,8 +814,8 @@ void UserImageManagerImpl::OnProfileDownloadSuccess( |
downloader->GetProfilePicture()); |
profile_image_url_ = GURL(downloader->GetProfilePictureURL()); |
- const User* user = GetUser(); |
- if (user->image_index() == User::kProfileImageIndex) { |
+ const user_manager::User* user = GetUser(); |
+ if (user->image_index() == user_manager::User::USER_IMAGE_PROFILE) { |
VLOG(1) << "Updating profile image for logged-in user."; |
UMA_HISTOGRAM_ENUMERATION("UserImage.ProfileDownloadResult", |
kDownloadSuccessChanged, |
@@ -861,10 +875,9 @@ void UserImageManagerImpl::SetInitialUserImage() { |
} |
void UserImageManagerImpl::TryToInitDownloadedProfileImage() { |
- const User* user = GetUser(); |
- if (user->image_index() == User::kProfileImageIndex && |
- downloaded_profile_image_.isNull() && |
- !user->image_is_stub()) { |
+ const user_manager::User* user = GetUser(); |
+ if (user->image_index() == user_manager::User::USER_IMAGE_PROFILE && |
+ downloaded_profile_image_.isNull() && !user->image_is_stub()) { |
// Initialize the |downloaded_profile_image_| for the currently logged-in |
// user if it has not been initialized already, the user image is the |
// profile image and the user image has been loaded successfully. |
@@ -875,10 +888,10 @@ void UserImageManagerImpl::TryToInitDownloadedProfileImage() { |
} |
bool UserImageManagerImpl::NeedProfileImage() const { |
- const User* user = GetUser(); |
+ const user_manager::User* user = GetUser(); |
return IsUserLoggedInAndRegular() && |
- (user->image_index() == User::kProfileImageIndex || |
- profile_image_requested_); |
+ (user->image_index() == user_manager::User::USER_IMAGE_PROFILE || |
+ profile_image_requested_); |
} |
void UserImageManagerImpl::DownloadProfileData(const std::string& reason) { |
@@ -929,7 +942,7 @@ void UserImageManagerImpl::OnJobChangedUserImage() { |
content::NotificationService::current()->Notify( |
chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, |
content::Source<UserImageManagerImpl>(this), |
- content::Details<const User>(GetUser())); |
+ content::Details<const user_manager::User>(GetUser())); |
} |
void UserImageManagerImpl::OnJobDone() { |
@@ -952,7 +965,7 @@ void UserImageManagerImpl::OnJobDone() { |
return; |
} |
- int image_index = User::kInvalidImageIndex; |
+ int image_index = user_manager::User::USER_IMAGE_INVALID; |
image_properties->GetInteger(kImageIndexNodeName, &image_index); |
UMA_HISTOGRAM_ENUMERATION("UserImage.Migration", |
ImageIndexToHistogramIndex(image_index), |
@@ -986,7 +999,7 @@ void UserImageManagerImpl::UpdateLocalStateAfterMigration() { |
} |
void UserImageManagerImpl::TryToCreateImageSyncObserver() { |
- const User* user = GetUser(); |
+ const user_manager::User* user = GetUser(); |
// If the currently logged-in user's user image is managed, the sync observer |
// must not be started so that the policy-set image does not get synced out. |
if (!user_image_sync_observer_ && |
@@ -996,16 +1009,16 @@ void UserImageManagerImpl::TryToCreateImageSyncObserver() { |
} |
} |
-const User* UserImageManagerImpl::GetUser() const { |
+const user_manager::User* UserImageManagerImpl::GetUser() const { |
return user_manager_->FindUser(user_id()); |
} |
-User* UserImageManagerImpl::GetUserAndModify() const { |
+user_manager::User* UserImageManagerImpl::GetUserAndModify() const { |
return user_manager_->FindUserAndModify(user_id()); |
} |
bool UserImageManagerImpl::IsUserLoggedInAndRegular() const { |
- const User* user = GetUser(); |
+ const user_manager::User* user = GetUser(); |
if (!user) |
return false; |
return user->is_logged_in() && |