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/ui/webui/options2/chromeos/change_picture_options_handl
er2.h" | 5 #include "chrome/browser/ui/webui/options2/chromeos/change_picture_options_handl
er2.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 DCHECK(args && args->empty()); | 182 DCHECK(args && args->empty()); |
183 // TODO(ivankr): If user opens settings and goes to Change Picture page right | 183 // TODO(ivankr): If user opens settings and goes to Change Picture page right |
184 // after the check started |HandlePageInitialized| has been completed, | 184 // after the check started |HandlePageInitialized| has been completed, |
185 // |CheckCameraPresence| will be called twice, should be throttled. | 185 // |CheckCameraPresence| will be called twice, should be throttled. |
186 CheckCameraPresence(); | 186 CheckCameraPresence(); |
187 SendSelectedImage(); | 187 SendSelectedImage(); |
188 UpdateProfileImage(); | 188 UpdateProfileImage(); |
189 } | 189 } |
190 | 190 |
191 void ChangePictureOptionsHandler::SendSelectedImage() { | 191 void ChangePictureOptionsHandler::SendSelectedImage() { |
192 const User& user = UserManager::Get()->logged_in_user(); | 192 const User& user = UserManager::Get()->GetLoggedInUser(); |
193 DCHECK(!user.email().empty()); | 193 DCHECK(!user.email().empty()); |
194 | 194 |
195 previous_image_index_ = user.image_index(); | 195 previous_image_index_ = user.image_index(); |
196 switch (previous_image_index_) { | 196 switch (previous_image_index_) { |
197 case User::kExternalImageIndex: { | 197 case User::kExternalImageIndex: { |
198 // User has image from camera/file, record it and add to the image list. | 198 // User has image from camera/file, record it and add to the image list. |
199 previous_image_ = user.image(); | 199 previous_image_ = user.image(); |
200 previous_image_data_url_ = web_ui_util::GetImageDataUrl(previous_image_); | 200 previous_image_data_url_ = web_ui_util::GetImageDataUrl(previous_image_); |
201 web_ui()->CallJavascriptFunction("ChangePictureOptions.setOldImage"); | 201 web_ui()->CallJavascriptFunction("ChangePictureOptions.setOldImage"); |
202 break; | 202 break; |
(...skipping 21 matching lines...) Expand all Loading... |
224 web_ui()->CallJavascriptFunction("ChangePictureOptions.setProfileImage", | 224 web_ui()->CallJavascriptFunction("ChangePictureOptions.setProfileImage", |
225 data_url, select); | 225 data_url, select); |
226 } | 226 } |
227 | 227 |
228 void ChangePictureOptionsHandler::UpdateProfileImage() { | 228 void ChangePictureOptionsHandler::UpdateProfileImage() { |
229 UserManager* user_manager = UserManager::Get(); | 229 UserManager* user_manager = UserManager::Get(); |
230 | 230 |
231 // If we have a downloaded profile image and haven't sent it in | 231 // If we have a downloaded profile image and haven't sent it in |
232 // |SendSelectedImage|, send it now (without selecting). | 232 // |SendSelectedImage|, send it now (without selecting). |
233 if (previous_image_index_ != User::kProfileImageIndex && | 233 if (previous_image_index_ != User::kProfileImageIndex && |
234 !user_manager->downloaded_profile_image().empty()) | 234 !user_manager->DownloadedProfileImage().empty()) |
235 SendProfileImage(user_manager->downloaded_profile_image(), false); | 235 SendProfileImage(user_manager->DownloadedProfileImage(), false); |
236 | 236 |
237 user_manager->DownloadProfileImage(kProfileDownloadReason); | 237 user_manager->DownloadProfileImage(kProfileDownloadReason); |
238 } | 238 } |
239 | 239 |
240 void ChangePictureOptionsHandler::HandleSelectImage(const ListValue* args) { | 240 void ChangePictureOptionsHandler::HandleSelectImage(const ListValue* args) { |
241 std::string image_url; | 241 std::string image_url; |
242 if (!args || | 242 if (!args || |
243 args->GetSize() != 1 || | 243 args->GetSize() != 1 || |
244 !args->GetString(0, &image_url)) { | 244 !args->GetString(0, &image_url)) { |
245 NOTREACHED(); | 245 NOTREACHED(); |
246 return; | 246 return; |
247 } | 247 } |
248 DCHECK(!image_url.empty()); | 248 DCHECK(!image_url.empty()); |
249 | 249 |
250 UserManager* user_manager = UserManager::Get(); | 250 UserManager* user_manager = UserManager::Get(); |
251 const User& user = user_manager->logged_in_user(); | 251 const User& user = user_manager->GetLoggedInUser(); |
252 int image_index = User::kInvalidImageIndex; | 252 int image_index = User::kInvalidImageIndex; |
253 | 253 |
254 if (StartsWithASCII(image_url, chrome::kChromeUIUserImageURL, false)) { | 254 if (StartsWithASCII(image_url, chrome::kChromeUIUserImageURL, false)) { |
255 // Image from file/camera uses kChromeUIUserImageURL as URL while | 255 // Image from file/camera uses kChromeUIUserImageURL as URL while |
256 // current profile image always has a full data URL. | 256 // current profile image always has a full data URL. |
257 // This way transition from (current profile image) to | 257 // This way transition from (current profile image) to |
258 // (profile image, current image from file) is easier. | 258 // (profile image, current image from file) is easier. |
259 | 259 |
260 DCHECK(!previous_image_.empty()); | 260 DCHECK(!previous_image_.empty()); |
261 user_manager->SaveUserImage(user.email(), previous_image_); | 261 user_manager->SaveUserImage(user.email(), previous_image_); |
(...skipping 25 matching lines...) Expand all Loading... |
287 kHistogramImagesCount); | 287 kHistogramImagesCount); |
288 VLOG(1) << "Selected profile image"; | 288 VLOG(1) << "Selected profile image"; |
289 } | 289 } |
290 } | 290 } |
291 } | 291 } |
292 | 292 |
293 void ChangePictureOptionsHandler::FileSelected(const FilePath& path, | 293 void ChangePictureOptionsHandler::FileSelected(const FilePath& path, |
294 int index, | 294 int index, |
295 void* params) { | 295 void* params) { |
296 UserManager* user_manager = UserManager::Get(); | 296 UserManager* user_manager = UserManager::Get(); |
297 user_manager->SaveUserImageFromFile(user_manager->logged_in_user().email(), | 297 user_manager->SaveUserImageFromFile(user_manager->GetLoggedInUser().email(), |
298 path); | 298 path); |
299 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", | 299 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", |
300 kHistogramImageFromFile, | 300 kHistogramImageFromFile, |
301 kHistogramImagesCount); | 301 kHistogramImagesCount); |
302 } | 302 } |
303 | 303 |
304 void ChangePictureOptionsHandler::OnPhotoAccepted(const SkBitmap& photo) { | 304 void ChangePictureOptionsHandler::OnPhotoAccepted(const SkBitmap& photo) { |
305 UserManager* user_manager = UserManager::Get(); | 305 UserManager* user_manager = UserManager::Get(); |
306 user_manager->SaveUserImage(user_manager->logged_in_user().email(), photo); | 306 user_manager->SaveUserImage(user_manager->GetLoggedInUser().email(), photo); |
307 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", | 307 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", |
308 kHistogramImageFromCamera, | 308 kHistogramImageFromCamera, |
309 kHistogramImagesCount); | 309 kHistogramImagesCount); |
310 } | 310 } |
311 | 311 |
312 void ChangePictureOptionsHandler::CheckCameraPresence() { | 312 void ChangePictureOptionsHandler::CheckCameraPresence() { |
313 CameraDetector::StartPresenceCheck( | 313 CameraDetector::StartPresenceCheck( |
314 base::Bind(&ChangePictureOptionsHandler::OnCameraPresenceCheckDone, | 314 base::Bind(&ChangePictureOptionsHandler::OnCameraPresenceCheckDone, |
315 weak_factory_.GetWeakPtr())); | 315 weak_factory_.GetWeakPtr())); |
316 } | 316 } |
(...skipping 23 matching lines...) Expand all Loading... |
340 gfx::NativeWindow ChangePictureOptionsHandler::GetBrowserWindow() const { | 340 gfx::NativeWindow ChangePictureOptionsHandler::GetBrowserWindow() const { |
341 Browser* browser = | 341 Browser* browser = |
342 BrowserList::FindBrowserWithProfile(Profile::FromWebUI(web_ui())); | 342 BrowserList::FindBrowserWithProfile(Profile::FromWebUI(web_ui())); |
343 if (!browser) | 343 if (!browser) |
344 return NULL; | 344 return NULL; |
345 return browser->window()->GetNativeHandle(); | 345 return browser->window()->GetNativeHandle(); |
346 } | 346 } |
347 | 347 |
348 } // namespace options2 | 348 } // namespace options2 |
349 } // namespace chromeos | 349 } // namespace chromeos |
OLD | NEW |