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

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 camera presence observer 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 71%
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 1ceeaa79b6a60b07979561a199ce29db17288cd9..07e6072fabb8e4960ae795fcedf1f99c05b9e5a0 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,9 +76,10 @@ 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());
registrar_.Add(this, chrome::NOTIFICATION_PROFILE_IMAGE_UPDATE_FAILED,
@@ -94,76 +95,33 @@ 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() {
+void ChangePictureHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback("chooseFile",
- base::Bind(&ChangePictureOptionsHandler::HandleChooseFile,
+ base::Bind(&ChangePictureHandler::HandleChooseFile,
base::Unretained(this)));
web_ui()->RegisterMessageCallback("takePhoto",
- base::Bind(&ChangePictureOptionsHandler::HandleTakePhoto,
+ base::Bind(&ChangePictureHandler::HandleTakePhoto,
base::Unretained(this)));
web_ui()->RegisterMessageCallback("photoTaken",
- base::Bind(&ChangePictureOptionsHandler::HandlePhotoTaken,
+ base::Bind(&ChangePictureHandler::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::Bind(&ChangePictureHandler::HandleDiscardPhoto,
base::Unretained(this)));
web_ui()->RegisterMessageCallback("onChangePicturePageInitialized",
- base::Bind(&ChangePictureOptionsHandler::HandlePageInitialized,
+ base::Bind(&ChangePictureHandler::HandlePageInitialized,
base::Unretained(this)));
web_ui()->RegisterMessageCallback("selectImage",
- base::Bind(&ChangePictureOptionsHandler::HandleSelectImage,
+ base::Bind(&ChangePictureHandler::HandleSelectImage,
base::Unretained(this)));
}
-void ChangePictureOptionsHandler::SendDefaultImages() {
+void ChangePictureHandler::SendDefaultImages() {
base::ListValue image_urls;
for (int i = user_manager::kFirstDefaultImageIndex;
i < user_manager::kDefaultImagesCount;
@@ -179,11 +137,12 @@ void ChangePictureOptionsHandler::SendDefaultImages() {
image_data->SetString("title", user_manager::GetDefaultImageDescription(i));
image_urls.Append(image_data.release());
}
- web_ui()->CallJavascriptFunction("ChangePictureOptions.setDefaultImages",
- image_urls);
+ web_ui()->CallJavascriptFunction(
+ "settings.ChangePicturePrivateApi.receiveDefaultImages",
+ image_urls);
}
-void ChangePictureOptionsHandler::HandleChooseFile(
+void ChangePictureHandler::HandleChooseFile(
const base::ListValue* args) {
DCHECK(args && args->empty());
select_file_dialog_ = ui::SelectFileDialog::Create(
@@ -210,19 +169,19 @@ void ChangePictureOptionsHandler::HandleChooseFile(
NULL);
}
-void ChangePictureOptionsHandler::HandleTakePhoto(
+void ChangePictureHandler::HandleTakePhoto(
const base::ListValue* args) {
DCHECK(args->empty());
ash::PlaySystemSoundIfSpokenFeedback(SOUND_CAMERA_SNAP);
}
-void ChangePictureOptionsHandler::HandleDiscardPhoto(
+void ChangePictureHandler::HandleDiscardPhoto(
const base::ListValue* args) {
DCHECK(args->empty());
ash::PlaySystemSoundIfSpokenFeedback(SOUND_OBJECT_DELETE);
}
-void ChangePictureOptionsHandler::HandlePhotoTaken(
+void ChangePictureHandler::HandlePhotoTaken(
const base::ListValue* args) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
std::string image_url;
@@ -242,25 +201,20 @@ void ChangePictureOptionsHandler::HandlePhotoTaken(
ImageDecoder::Start(this, raw_data);
}
-void ChangePictureOptionsHandler::HandlePageInitialized(
+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());
@@ -285,7 +239,7 @@ void ChangePictureOptionsHandler::SendSelectedImage() {
base::StringValue image_url(
user_manager::GetDefaultImageUrl(previous_image_index_));
web_ui()->CallJavascriptFunction(
- "ChangePictureOptions.setSelectedImage", image_url);
+ "settings.ChangePicturePrivateApi.receiveSelectedImage", image_url);
} else {
// User has an old default image, so present it in the same manner as a
// previous image from file.
@@ -295,15 +249,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.ChangePicturePrivateApi.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
@@ -315,13 +269,14 @@ 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.ChangePicturePrivateApi.receiveOldImage", url);
}
-void ChangePictureOptionsHandler::HandleSelectImage(
+void ChangePictureHandler::HandleSelectImage(
const base::ListValue* args) {
std::string image_url;
std::string image_type;
@@ -392,9 +347,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);
@@ -404,7 +359,7 @@ void ChangePictureOptionsHandler::FileSelected(const base::FilePath& path,
VLOG(1) << "Selected image from file";
}
-void ChangePictureOptionsHandler::SetImageFromCamera(
+void ChangePictureHandler::SetImageFromCamera(
const gfx::ImageSkia& photo) {
ChromeUserManager::Get()
->GetUserImageManager(GetUser()->GetAccountId())
@@ -415,19 +370,19 @@ 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.ChangePicturePrivateApi.receiveCameraPresence", present_value);
}
-void ChangePictureOptionsHandler::OnCameraPresenceCheckDone(
+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) {
@@ -443,23 +398,23 @@ 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(
+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);
@@ -468,5 +423,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