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