OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/login/screens/user_image_screen.h" | 5 #include "chrome/browser/chromeos/login/screens/user_image_screen.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 #include "chrome/browser/chromeos/login/users/user_manager.h" | 24 #include "chrome/browser/chromeos/login/users/user_manager.h" |
25 #include "chrome/browser/chromeos/login/wizard_controller.h" | 25 #include "chrome/browser/chromeos/login/wizard_controller.h" |
26 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 26 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
27 #include "chrome/browser/policy/profile_policy_connector.h" | 27 #include "chrome/browser/policy/profile_policy_connector.h" |
28 #include "chrome/browser/policy/profile_policy_connector_factory.h" | 28 #include "chrome/browser/policy/profile_policy_connector_factory.h" |
29 #include "chrome/browser/profiles/profile.h" | 29 #include "chrome/browser/profiles/profile.h" |
30 #include "chrome/common/url_constants.h" | 30 #include "chrome/common/url_constants.h" |
31 #include "components/policy/core/common/policy_map.h" | 31 #include "components/policy/core/common/policy_map.h" |
32 #include "components/policy/core/common/policy_namespace.h" | 32 #include "components/policy/core/common/policy_namespace.h" |
33 #include "components/policy/core/common/policy_service.h" | 33 #include "components/policy/core/common/policy_service.h" |
| 34 #include "components/user_manager/user.h" |
34 #include "components/user_manager/user_image/default_user_images.h" | 35 #include "components/user_manager/user_image/default_user_images.h" |
35 #include "components/user_manager/user_image/user_image.h" | 36 #include "components/user_manager/user_image/user_image.h" |
36 #include "content/public/browser/browser_thread.h" | 37 #include "content/public/browser/browser_thread.h" |
37 #include "content/public/browser/notification_service.h" | 38 #include "content/public/browser/notification_service.h" |
38 #include "grit/generated_resources.h" | 39 #include "grit/generated_resources.h" |
39 #include "grit/theme_resources.h" | 40 #include "grit/theme_resources.h" |
40 #include "policy/policy_constants.h" | 41 #include "policy/policy_constants.h" |
41 #include "third_party/skia/include/core/SkBitmap.h" | 42 #include "third_party/skia/include/core/SkBitmap.h" |
42 #include "ui/base/l10n/l10n_util.h" | 43 #include "ui/base/l10n/l10n_util.h" |
43 #include "ui/base/resource/resource_bundle.h" | 44 #include "ui/base/resource/resource_bundle.h" |
(...skipping 13 matching lines...) Expand all Loading... |
57 // The screen is shown iff sync failed or time limit exceeded. | 58 // The screen is shown iff sync failed or time limit exceeded. |
58 const int kSyncTimeoutSeconds = 10; | 59 const int kSyncTimeoutSeconds = 10; |
59 | 60 |
60 } // namespace | 61 } // namespace |
61 | 62 |
62 UserImageScreen::UserImageScreen(ScreenObserver* screen_observer, | 63 UserImageScreen::UserImageScreen(ScreenObserver* screen_observer, |
63 UserImageScreenActor* actor) | 64 UserImageScreenActor* actor) |
64 : WizardScreen(screen_observer), | 65 : WizardScreen(screen_observer), |
65 actor_(actor), | 66 actor_(actor), |
66 accept_photo_after_decoding_(false), | 67 accept_photo_after_decoding_(false), |
67 selected_image_(User::kInvalidImageIndex), | 68 selected_image_(user_manager::User::USER_IMAGE_INVALID), |
68 profile_picture_enabled_(false), | 69 profile_picture_enabled_(false), |
69 profile_picture_data_url_(url::kAboutBlankURL), | 70 profile_picture_data_url_(url::kAboutBlankURL), |
70 profile_picture_absent_(false), | 71 profile_picture_absent_(false), |
71 is_screen_ready_(false), | 72 is_screen_ready_(false), |
72 user_has_selected_image_(false) { | 73 user_has_selected_image_(false) { |
73 actor_->SetDelegate(this); | 74 actor_->SetDelegate(this); |
74 SetProfilePictureEnabled(true); | 75 SetProfilePictureEnabled(true); |
75 notification_registrar_.Add(this, | 76 notification_registrar_.Add(this, |
76 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, | 77 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, |
77 content::NotificationService::AllSources()); | 78 content::NotificationService::AllSources()); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 } | 159 } |
159 | 160 |
160 void UserImageScreen::OnImageSelected(const std::string& image_type, | 161 void UserImageScreen::OnImageSelected(const std::string& image_type, |
161 const std::string& image_url, | 162 const std::string& image_url, |
162 bool is_user_selection) { | 163 bool is_user_selection) { |
163 if (is_user_selection) { | 164 if (is_user_selection) { |
164 user_has_selected_image_ = true; | 165 user_has_selected_image_ = true; |
165 } | 166 } |
166 if (image_url.empty()) | 167 if (image_url.empty()) |
167 return; | 168 return; |
168 int user_image_index = User::kInvalidImageIndex; | 169 int user_image_index = user_manager::User::USER_IMAGE_INVALID; |
169 if (image_type == "default" && | 170 if (image_type == "default" && |
170 user_manager::IsDefaultImageUrl(image_url, &user_image_index)) { | 171 user_manager::IsDefaultImageUrl(image_url, &user_image_index)) { |
171 selected_image_ = user_image_index; | 172 selected_image_ = user_image_index; |
172 } else if (image_type == "camera") { | 173 } else if (image_type == "camera") { |
173 selected_image_ = User::kExternalImageIndex; | 174 selected_image_ = user_manager::User::USER_IMAGE_EXTERNAL; |
174 } else if (image_type == "profile") { | 175 } else if (image_type == "profile") { |
175 selected_image_ = User::kProfileImageIndex; | 176 selected_image_ = user_manager::User::USER_IMAGE_PROFILE; |
176 } else { | 177 } else { |
177 NOTREACHED() << "Unexpected image type: " << image_type; | 178 NOTREACHED() << "Unexpected image type: " << image_type; |
178 } | 179 } |
179 } | 180 } |
180 | 181 |
181 void UserImageScreen::OnImageAccepted() { | 182 void UserImageScreen::OnImageAccepted() { |
182 UserImageManager* image_manager = GetUserImageManager(); | 183 UserImageManager* image_manager = GetUserImageManager(); |
183 int uma_index = 0; | 184 int uma_index = 0; |
184 switch (selected_image_) { | 185 switch (selected_image_) { |
185 case User::kExternalImageIndex: | 186 case user_manager::User::USER_IMAGE_EXTERNAL: |
186 // Photo decoding may not have been finished yet. | 187 // Photo decoding may not have been finished yet. |
187 if (user_photo_.isNull()) { | 188 if (user_photo_.isNull()) { |
188 accept_photo_after_decoding_ = true; | 189 accept_photo_after_decoding_ = true; |
189 return; | 190 return; |
190 } | 191 } |
191 image_manager->SaveUserImage( | 192 image_manager->SaveUserImage( |
192 user_manager::UserImage::CreateAndEncode(user_photo_)); | 193 user_manager::UserImage::CreateAndEncode(user_photo_)); |
193 uma_index = user_manager::kHistogramImageFromCamera; | 194 uma_index = user_manager::kHistogramImageFromCamera; |
194 break; | 195 break; |
195 case User::kProfileImageIndex: | 196 case user_manager::User::USER_IMAGE_PROFILE: |
196 image_manager->SaveUserImageFromProfileImage(); | 197 image_manager->SaveUserImageFromProfileImage(); |
197 uma_index = user_manager::kHistogramImageFromProfile; | 198 uma_index = user_manager::kHistogramImageFromProfile; |
198 break; | 199 break; |
199 default: | 200 default: |
200 DCHECK(selected_image_ >= 0 && | 201 DCHECK(selected_image_ >= 0 && |
201 selected_image_ < user_manager::kDefaultImagesCount); | 202 selected_image_ < user_manager::kDefaultImagesCount); |
202 image_manager->SaveUserDefaultImageIndex(selected_image_); | 203 image_manager->SaveUserDefaultImageIndex(selected_image_); |
203 uma_index = user_manager::GetDefaultImageHistogramValue(selected_image_); | 204 uma_index = user_manager::GetDefaultImageHistogramValue(selected_image_); |
204 break; | 205 break; |
205 } | 206 } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 void UserImageScreen::SetUserID(const std::string& user_id) { | 241 void UserImageScreen::SetUserID(const std::string& user_id) { |
241 DCHECK(!user_id.empty()); | 242 DCHECK(!user_id.empty()); |
242 user_id_ = user_id; | 243 user_id_ = user_id; |
243 } | 244 } |
244 | 245 |
245 void UserImageScreen::PrepareToShow() { | 246 void UserImageScreen::PrepareToShow() { |
246 if (actor_) | 247 if (actor_) |
247 actor_->PrepareToShow(); | 248 actor_->PrepareToShow(); |
248 } | 249 } |
249 | 250 |
250 const User* UserImageScreen::GetUser() { | 251 const user_manager::User* UserImageScreen::GetUser() { |
251 if (user_id_.empty()) | 252 if (user_id_.empty()) |
252 return UserManager::Get()->GetLoggedInUser(); | 253 return UserManager::Get()->GetLoggedInUser(); |
253 return UserManager::Get()->FindUser(user_id_); | 254 return UserManager::Get()->FindUser(user_id_); |
254 } | 255 } |
255 | 256 |
256 UserImageManager* UserImageScreen::GetUserImageManager() { | 257 UserImageManager* UserImageScreen::GetUserImageManager() { |
257 return UserManager::Get()->GetUserImageManager(GetUser()->email()); | 258 return UserManager::Get()->GetUserImageManager(GetUser()->email()); |
258 } | 259 } |
259 | 260 |
260 UserImageSyncObserver* UserImageScreen::GetSyncObserver() { | 261 UserImageSyncObserver* UserImageScreen::GetSyncObserver() { |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 | 383 |
383 void UserImageScreen::ExitScreen() { | 384 void UserImageScreen::ExitScreen() { |
384 policy_registrar_.reset(); | 385 policy_registrar_.reset(); |
385 sync_timer_.reset(); | 386 sync_timer_.reset(); |
386 if (UserImageSyncObserver* sync_observer = GetSyncObserver()) | 387 if (UserImageSyncObserver* sync_observer = GetSyncObserver()) |
387 sync_observer->RemoveObserver(this); | 388 sync_observer->RemoveObserver(this); |
388 get_screen_observer()->OnExit(ScreenObserver::USER_IMAGE_SELECTED); | 389 get_screen_observer()->OnExit(ScreenObserver::USER_IMAGE_SELECTED); |
389 } | 390 } |
390 | 391 |
391 } // namespace chromeos | 392 } // namespace chromeos |
OLD | NEW |