Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6744)

Unified Diff: chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc

Issue 1575543003: Settings People Revamp: Implement parts of ChromeOS Change Picture (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix change_picture_handler to accomodate origin/master changes Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698