Index: chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc |
diff --git a/chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.cc b/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc |
similarity index 65% |
copy from chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.cc |
copy to chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc |
index fc4a85d3a848c983a3e0c6734394ef53ee982502..8a523a347cf2d54cf21ecf68ebdab91579552c68 100644 |
--- a/chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.cc |
+++ b/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc |
@@ -1,8 +1,8 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.h" |
+#include "chrome/browser/ui/webui/settings/chromeos/change_picture_handler.h" |
#include "ash/audio/sounds.h" |
#include "base/bind.h" |
@@ -45,7 +45,7 @@ |
using content::BrowserThread; |
namespace chromeos { |
-namespace options { |
+namespace settings { |
namespace { |
@@ -76,15 +76,16 @@ const char kProfileDownloadReason[] = "Preferences"; |
} // namespace |
-ChangePictureOptionsHandler::ChangePictureOptionsHandler() |
+ChangePictureHandler::ChangePictureHandler() |
: previous_image_url_(url::kAboutBlankURL), |
- previous_image_index_(user_manager::User::USER_IMAGE_INVALID) { |
+ previous_image_index_(user_manager::User::USER_IMAGE_INVALID), |
+ camera_observer_(this) { |
registrar_.Add(this, chrome::NOTIFICATION_PROFILE_IMAGE_UPDATED, |
- content::NotificationService::AllSources()); |
+ content::NotificationService::AllSources()); |
registrar_.Add(this, chrome::NOTIFICATION_PROFILE_IMAGE_UPDATE_FAILED, |
- content::NotificationService::AllSources()); |
+ content::NotificationService::AllSources()); |
registrar_.Add(this, chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, |
- content::NotificationService::AllSources()); |
+ content::NotificationService::AllSources()); |
ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); |
media::SoundsManager* manager = media::SoundsManager::Get(); |
@@ -94,76 +95,34 @@ ChangePictureOptionsHandler::ChangePictureOptionsHandler() |
bundle.GetRawDataResource(IDR_SOUND_CAMERA_SNAP_WAV)); |
} |
-ChangePictureOptionsHandler::~ChangePictureOptionsHandler() { |
- CameraPresenceNotifier::GetInstance()->RemoveObserver(this); |
+ChangePictureHandler::~ChangePictureHandler() { |
if (select_file_dialog_.get()) |
select_file_dialog_->ListenerDestroyed(); |
} |
-void ChangePictureOptionsHandler::GetLocalizedValues( |
- base::DictionaryValue* localized_strings) { |
- DCHECK(localized_strings); |
- localized_strings->SetString("changePicturePage", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_CHANGE_PICTURE_DIALOG_TITLE)); |
- localized_strings->SetString("changePicturePageDescription", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_CHANGE_PICTURE_DIALOG_TEXT)); |
- localized_strings->SetString("takePhoto", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_CHANGE_PICTURE_TAKE_PHOTO)); |
- localized_strings->SetString("discardPhoto", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_CHANGE_PICTURE_DISCARD_PHOTO)); |
- localized_strings->SetString("flipPhoto", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_CHANGE_PICTURE_FLIP_PHOTO)); |
- localized_strings->SetString("chooseFile", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_CHANGE_PICTURE_CHOOSE_FILE)); |
- localized_strings->SetString("profilePhoto", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_CHANGE_PICTURE_PROFILE_PHOTO)); |
- localized_strings->SetString("profilePhotoLoading", |
- l10n_util::GetStringUTF16( |
- IDS_OPTIONS_CHANGE_PICTURE_PROFILE_LOADING_PHOTO)); |
- localized_strings->SetString("previewAltText", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_CHANGE_PICTURE_PREVIEW_ALT)); |
- localized_strings->SetString("authorCredit", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_SET_WALLPAPER_AUTHOR_TEXT)); |
- localized_strings->SetString("photoFromCamera", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_CHANGE_PICTURE_PHOTO_FROM_CAMERA)); |
- localized_strings->SetString("photoFlippedAccessibleText", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_PHOTO_FLIP_ACCESSIBLE_TEXT)); |
- localized_strings->SetString("photoFlippedBackAccessibleText", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_PHOTO_FLIPBACK_ACCESSIBLE_TEXT)); |
- localized_strings->SetString("photoCaptureAccessibleText", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_PHOTO_CAPTURE_ACCESSIBLE_TEXT)); |
- localized_strings->SetString("photoDiscardAccessibleText", |
- l10n_util::GetStringUTF16(IDS_OPTIONS_PHOTO_DISCARD_ACCESSIBLE_TEXT)); |
-} |
- |
-void ChangePictureOptionsHandler::RegisterMessages() { |
- web_ui()->RegisterMessageCallback("chooseFile", |
- base::Bind(&ChangePictureOptionsHandler::HandleChooseFile, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("takePhoto", |
- base::Bind(&ChangePictureOptionsHandler::HandleTakePhoto, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("photoTaken", |
- base::Bind(&ChangePictureOptionsHandler::HandlePhotoTaken, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("discardPhoto", |
- base::Bind(&ChangePictureOptionsHandler::HandleDiscardPhoto, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("onChangePicturePageShown", |
- base::Bind(&ChangePictureOptionsHandler::HandlePageShown, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("onChangePicturePageHidden", |
- base::Bind(&ChangePictureOptionsHandler::HandlePageHidden, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("onChangePicturePageInitialized", |
- base::Bind(&ChangePictureOptionsHandler::HandlePageInitialized, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("selectImage", |
- base::Bind(&ChangePictureOptionsHandler::HandleSelectImage, |
+void ChangePictureHandler::RegisterMessages() { |
+ web_ui()->RegisterMessageCallback( |
+ "chooseFile", base::Bind(&ChangePictureHandler::HandleChooseFile, |
+ base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback( |
+ "takePhoto", base::Bind(&ChangePictureHandler::HandleTakePhoto, |
+ base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback( |
+ "photoTaken", base::Bind(&ChangePictureHandler::HandlePhotoTaken, |
+ base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback( |
+ "discardPhoto", base::Bind(&ChangePictureHandler::HandleDiscardPhoto, |
+ base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback( |
+ "onChangePicturePageInitialized", |
+ base::Bind(&ChangePictureHandler::HandlePageInitialized, |
base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback( |
+ "selectImage", base::Bind(&ChangePictureHandler::HandleSelectImage, |
+ base::Unretained(this))); |
} |
-void ChangePictureOptionsHandler::SendDefaultImages() { |
+void ChangePictureHandler::SendDefaultImages() { |
base::ListValue image_urls; |
for (int i = default_user_image::kFirstDefaultImageIndex; |
i < default_user_image::kDefaultImagesCount; ++i) { |
@@ -179,12 +138,11 @@ void ChangePictureOptionsHandler::SendDefaultImages() { |
default_user_image::GetDefaultImageDescription(i)); |
image_urls.Append(image_data.release()); |
} |
- web_ui()->CallJavascriptFunction("ChangePictureOptions.setDefaultImages", |
- image_urls); |
+ web_ui()->CallJavascriptFunction( |
+ "settings.ChangePicturePage.receiveDefaultImages", image_urls); |
} |
-void ChangePictureOptionsHandler::HandleChooseFile( |
- const base::ListValue* args) { |
+void ChangePictureHandler::HandleChooseFile(const base::ListValue* args) { |
DCHECK(args && args->empty()); |
select_file_dialog_ = ui::SelectFileDialog::Create( |
this, new ChromeSelectFilePolicy(web_ui()->GetWebContents())); |
@@ -197,33 +155,25 @@ void ChangePictureOptionsHandler::HandleChooseFile( |
// Static so we initialize it only once. |
CR_DEFINE_STATIC_LOCAL(ui::SelectFileDialog::FileTypeInfo, file_type_info, |
- (GetUserImageFileTypeInfo())); |
+ (GetUserImageFileTypeInfo())); |
select_file_dialog_->SelectFile( |
ui::SelectFileDialog::SELECT_OPEN_FILE, |
- l10n_util::GetStringUTF16(IDS_DOWNLOAD_TITLE), |
- downloads_path, |
- &file_type_info, |
- 0, |
- FILE_PATH_LITERAL(""), |
- GetBrowserWindow(), |
- NULL); |
+ l10n_util::GetStringUTF16(IDS_DOWNLOAD_TITLE), downloads_path, |
+ &file_type_info, 0, FILE_PATH_LITERAL(""), GetBrowserWindow(), NULL); |
} |
-void ChangePictureOptionsHandler::HandleTakePhoto( |
- const base::ListValue* args) { |
+void ChangePictureHandler::HandleTakePhoto(const base::ListValue* args) { |
DCHECK(args->empty()); |
ash::PlaySystemSoundIfSpokenFeedback(SOUND_CAMERA_SNAP); |
} |
-void ChangePictureOptionsHandler::HandleDiscardPhoto( |
- const base::ListValue* args) { |
+void ChangePictureHandler::HandleDiscardPhoto(const base::ListValue* args) { |
DCHECK(args->empty()); |
ash::PlaySystemSoundIfSpokenFeedback(SOUND_OBJECT_DELETE); |
} |
-void ChangePictureOptionsHandler::HandlePhotoTaken( |
- const base::ListValue* args) { |
+void ChangePictureHandler::HandlePhotoTaken(const base::ListValue* args) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
std::string image_url; |
if (!args || args->GetSize() != 1 || !args->GetString(0, &image_url)) |
@@ -242,25 +192,19 @@ void ChangePictureOptionsHandler::HandlePhotoTaken( |
ImageDecoder::Start(this, raw_data); |
} |
-void ChangePictureOptionsHandler::HandlePageInitialized( |
- const base::ListValue* args) { |
+void ChangePictureHandler::HandlePageInitialized(const base::ListValue* args) { |
DCHECK(args && args->empty()); |
- SendDefaultImages(); |
-} |
-void ChangePictureOptionsHandler::HandlePageShown(const base::ListValue* args) { |
- DCHECK(args && args->empty()); |
+ CameraPresenceNotifier* camera = CameraPresenceNotifier::GetInstance(); |
+ if (!camera_observer_.IsObserving(camera)) |
+ camera_observer_.Add(camera); |
+ |
+ SendDefaultImages(); |
SendSelectedImage(); |
UpdateProfileImage(); |
- CameraPresenceNotifier::GetInstance()->AddObserver(this); |
-} |
- |
-void ChangePictureOptionsHandler::HandlePageHidden( |
- const base::ListValue* args) { |
- CameraPresenceNotifier::GetInstance()->RemoveObserver(this); |
} |
-void ChangePictureOptionsHandler::SendSelectedImage() { |
+void ChangePictureHandler::SendSelectedImage() { |
const user_manager::User* user = GetUser(); |
DCHECK(!user->email().empty()); |
@@ -286,7 +230,7 @@ void ChangePictureOptionsHandler::SendSelectedImage() { |
base::StringValue image_url( |
default_user_image::GetDefaultImageUrl(previous_image_index_)); |
web_ui()->CallJavascriptFunction( |
- "ChangePictureOptions.setSelectedImage", image_url); |
+ "settings.ChangePicturePage.receiveSelectedImage", image_url); |
} else { |
// User has an old default image, so present it in the same manner as a |
// previous image from file. |
@@ -297,15 +241,15 @@ void ChangePictureOptionsHandler::SendSelectedImage() { |
} |
} |
-void ChangePictureOptionsHandler::SendProfileImage(const gfx::ImageSkia& image, |
- bool should_select) { |
+void ChangePictureHandler::SendProfileImage(const gfx::ImageSkia& image, |
+ bool should_select) { |
base::StringValue data_url(webui::GetBitmapDataUrl(*image.bitmap())); |
base::FundamentalValue select(should_select); |
- web_ui()->CallJavascriptFunction("ChangePictureOptions.setProfileImage", |
- data_url, select); |
+ web_ui()->CallJavascriptFunction( |
+ "settings.ChangePicturePage.receiveProfileImage", data_url, select); |
} |
-void ChangePictureOptionsHandler::UpdateProfileImage() { |
+void ChangePictureHandler::UpdateProfileImage() { |
UserImageManager* user_image_manager = |
ChromeUserManager::Get()->GetUserImageManager(GetUser()->GetAccountId()); |
// If we have a downloaded profile image and haven't sent it in |
@@ -317,19 +261,17 @@ void ChangePictureOptionsHandler::UpdateProfileImage() { |
user_image_manager->DownloadProfileImage(kProfileDownloadReason); |
} |
-void ChangePictureOptionsHandler::SendOldImage(const std::string& image_url) { |
+void ChangePictureHandler::SendOldImage(const std::string& image_url) { |
previous_image_url_ = image_url; |
base::StringValue url(image_url); |
- web_ui()->CallJavascriptFunction("ChangePictureOptions.setOldImage", url); |
+ web_ui()->CallJavascriptFunction("settings.ChangePicturePage.receiveOldImage", |
+ url); |
} |
-void ChangePictureOptionsHandler::HandleSelectImage( |
- const base::ListValue* args) { |
+void ChangePictureHandler::HandleSelectImage(const base::ListValue* args) { |
std::string image_url; |
std::string image_type; |
- if (!args || |
- args->GetSize() != 2 || |
- !args->GetString(0, &image_url) || |
+ if (!args || args->GetSize() != 2 || !args->GetString(0, &image_url) || |
!args->GetString(1, &image_type)) { |
NOTREACHED(); |
return; |
@@ -394,9 +336,9 @@ void ChangePictureOptionsHandler::HandleSelectImage( |
ImageDecoder::Cancel(this); |
} |
-void ChangePictureOptionsHandler::FileSelected(const base::FilePath& path, |
- int index, |
- void* params) { |
+void ChangePictureHandler::FileSelected(const base::FilePath& path, |
+ int index, |
+ void* params) { |
ChromeUserManager::Get() |
->GetUserImageManager(GetUser()->GetAccountId()) |
->SaveUserImageFromFile(path); |
@@ -406,8 +348,7 @@ void ChangePictureOptionsHandler::FileSelected(const base::FilePath& path, |
VLOG(1) << "Selected image from file"; |
} |
-void ChangePictureOptionsHandler::SetImageFromCamera( |
- const gfx::ImageSkia& photo) { |
+void ChangePictureHandler::SetImageFromCamera(const gfx::ImageSkia& photo) { |
ChromeUserManager::Get() |
->GetUserImageManager(GetUser()->GetAccountId()) |
->SaveUserImage(user_manager::UserImage::CreateAndEncode(photo)); |
@@ -417,19 +358,18 @@ void ChangePictureOptionsHandler::SetImageFromCamera( |
VLOG(1) << "Selected camera photo"; |
} |
-void ChangePictureOptionsHandler::SetCameraPresent(bool present) { |
+void ChangePictureHandler::SetCameraPresent(bool present) { |
base::FundamentalValue present_value(present); |
- web_ui()->CallJavascriptFunction("ChangePictureOptions.setCameraPresent", |
- present_value); |
+ web_ui()->CallJavascriptFunction( |
+ "settings.ChangePicturePage.receiveCameraPresence", present_value); |
} |
-void ChangePictureOptionsHandler::OnCameraPresenceCheckDone( |
- bool is_camera_present) { |
+void ChangePictureHandler::OnCameraPresenceCheckDone(bool is_camera_present) { |
SetCameraPresent(is_camera_present); |
} |
-void ChangePictureOptionsHandler::Observe( |
+void ChangePictureHandler::Observe( |
int type, |
const content::NotificationSource& source, |
const content::NotificationDetails& details) { |
@@ -445,23 +385,22 @@ void ChangePictureOptionsHandler::Observe( |
} |
} |
-gfx::NativeWindow ChangePictureOptionsHandler::GetBrowserWindow() const { |
+gfx::NativeWindow ChangePictureHandler::GetBrowserWindow() const { |
Browser* browser = |
chrome::FindBrowserWithWebContents(web_ui()->GetWebContents()); |
return browser->window()->GetNativeWindow(); |
} |
-void ChangePictureOptionsHandler::OnImageDecoded( |
- const SkBitmap& decoded_image) { |
+void ChangePictureHandler::OnImageDecoded(const SkBitmap& decoded_image) { |
user_photo_ = gfx::ImageSkia::CreateFrom1xBitmap(decoded_image); |
SetImageFromCamera(user_photo_); |
} |
-void ChangePictureOptionsHandler::OnDecodeImageFailed() { |
+void ChangePictureHandler::OnDecodeImageFailed() { |
NOTREACHED() << "Failed to decode PNG image from WebUI"; |
} |
-const user_manager::User* ChangePictureOptionsHandler::GetUser() const { |
+const user_manager::User* ChangePictureHandler::GetUser() const { |
Profile* profile = Profile::FromWebUI(web_ui()); |
const user_manager::User* user = |
ProfileHelper::Get()->GetUserByProfile(profile); |
@@ -470,5 +409,5 @@ const user_manager::User* ChangePictureOptionsHandler::GetUser() const { |
return user; |
} |
-} // namespace options |
+} // namespace settings |
} // namespace chromeos |