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

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.cc

Issue 158953002: Spoken feedback sounds for user photo capture/discard at image picker added. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: PlaySystemSound... functions introduced according to latest changes. Created 6 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/chromeos/login/user_image_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h"
6 6
7 #include "ash/audio/sounds.h"
7 #include "base/command_line.h" 8 #include "base/command_line.h"
8 #include "base/logging.h" 9 #include "base/logging.h"
9 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
10 #include "base/values.h" 11 #include "base/values.h"
11 #include "chrome/browser/chromeos/login/default_user_images.h" 12 #include "chrome/browser/chromeos/login/default_user_images.h"
13 #include "chrome/browser/chromeos/login/existing_user_controller.h"
12 #include "chrome/browser/chromeos/login/user.h" 14 #include "chrome/browser/chromeos/login/user.h"
13 #include "chrome/browser/chromeos/login/webui_login_display.h" 15 #include "chrome/browser/chromeos/login/webui_login_display.h"
14 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" 16 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
15 #include "chrome/common/chrome_switches.h" 17 #include "chrome/common/chrome_switches.h"
16 #include "chrome/common/url_constants.h" 18 #include "chrome/common/url_constants.h"
19 #include "chromeos/audio/chromeos_sounds.h"
20 #include "grit/browser_resources.h"
17 #include "grit/generated_resources.h" 21 #include "grit/generated_resources.h"
18 #include "net/base/data_url.h" 22 #include "net/base/data_url.h"
19 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
24 #include "ui/base/resource/resource_bundle.h"
20 #include "url/gurl.h" 25 #include "url/gurl.h"
21 26
22 namespace { 27 namespace {
23 28
24 const char kJsScreenPath[] = "login.UserImageScreen"; 29 const char kJsScreenPath[] = "login.UserImageScreen";
25 30
26 } // namespace 31 } // namespace
27 32
28 namespace chromeos { 33 namespace chromeos {
29 34
30 UserImageScreenHandler::UserImageScreenHandler() 35 UserImageScreenHandler::UserImageScreenHandler()
31 : BaseScreenHandler(kJsScreenPath), 36 : BaseScreenHandler(kJsScreenPath),
32 screen_(NULL), 37 screen_(NULL),
33 show_on_init_(false), 38 show_on_init_(false),
34 is_ready_(false) { 39 is_ready_(false) {
40 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
41 media::SoundsManager* manager = media::SoundsManager::Get();
42 manager->Initialize(SOUND_OBJECT_DELETE,
43 bundle.GetRawDataResource(IDR_SOUND_OBJECT_DELETE_WAV));
44 manager->Initialize(SOUND_CAMERA_SNAP,
45 bundle.GetRawDataResource(IDR_SOUND_CAMERA_SNAP_WAV));
35 } 46 }
36 47
37 UserImageScreenHandler::~UserImageScreenHandler() { 48 UserImageScreenHandler::~UserImageScreenHandler() {
38 if (screen_) 49 if (screen_)
39 screen_->OnActorDestroyed(this); 50 screen_->OnActorDestroyed(this);
40 } 51 }
41 52
42 void UserImageScreenHandler::Initialize() { 53 void UserImageScreenHandler::Initialize() {
43 if (show_on_init_) { 54 if (show_on_init_) {
44 Show(); 55 Show();
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 IDS_OPTIONS_CHANGE_PICTURE_DIALOG_TEXT); 93 IDS_OPTIONS_CHANGE_PICTURE_DIALOG_TEXT);
83 builder->Add("takePhoto", IDS_OPTIONS_CHANGE_PICTURE_TAKE_PHOTO); 94 builder->Add("takePhoto", IDS_OPTIONS_CHANGE_PICTURE_TAKE_PHOTO);
84 builder->Add("discardPhoto", IDS_OPTIONS_CHANGE_PICTURE_DISCARD_PHOTO); 95 builder->Add("discardPhoto", IDS_OPTIONS_CHANGE_PICTURE_DISCARD_PHOTO);
85 builder->Add("flipPhoto", IDS_OPTIONS_CHANGE_PICTURE_FLIP_PHOTO); 96 builder->Add("flipPhoto", IDS_OPTIONS_CHANGE_PICTURE_FLIP_PHOTO);
86 builder->Add("profilePhoto", IDS_IMAGE_SCREEN_PROFILE_PHOTO); 97 builder->Add("profilePhoto", IDS_IMAGE_SCREEN_PROFILE_PHOTO);
87 builder->Add("profilePhotoLoading", 98 builder->Add("profilePhotoLoading",
88 IDS_IMAGE_SCREEN_PROFILE_LOADING_PHOTO); 99 IDS_IMAGE_SCREEN_PROFILE_LOADING_PHOTO);
89 builder->Add("okButtonText", IDS_OK); 100 builder->Add("okButtonText", IDS_OK);
90 builder->Add("authorCredit", IDS_OPTIONS_SET_WALLPAPER_AUTHOR_TEXT); 101 builder->Add("authorCredit", IDS_OPTIONS_SET_WALLPAPER_AUTHOR_TEXT);
91 builder->Add("photoFromCamera", IDS_OPTIONS_CHANGE_PICTURE_PHOTO_FROM_CAMERA); 102 builder->Add("photoFromCamera", IDS_OPTIONS_CHANGE_PICTURE_PHOTO_FROM_CAMERA);
103 builder->Add("photoFlippedAccessibleText",
104 IDS_OPTIONS_PHOTO_FLIP_ACCESSIBLE_TEXT);
105 builder->Add("photoFlippedBackAccessibleText",
106 IDS_OPTIONS_PHOTO_FLIPBACK_ACCESSIBLE_TEXT);
92 builder->Add("photoCaptureAccessibleText", 107 builder->Add("photoCaptureAccessibleText",
93 IDS_OPTIONS_PHOTO_CAPTURE_ACCESSIBLE_TEXT); 108 IDS_OPTIONS_PHOTO_CAPTURE_ACCESSIBLE_TEXT);
94 builder->Add("photoDiscardAccessibleText", 109 builder->Add("photoDiscardAccessibleText",
95 IDS_OPTIONS_PHOTO_DISCARD_ACCESSIBLE_TEXT); 110 IDS_OPTIONS_PHOTO_DISCARD_ACCESSIBLE_TEXT);
96 builder->Add("syncingPreferences", IDS_IMAGE_SCREEN_SYNCING_PREFERENCES); 111 builder->Add("syncingPreferences", IDS_IMAGE_SCREEN_SYNCING_PREFERENCES);
97 } 112 }
98 113
99 void UserImageScreenHandler::RegisterMessages() { 114 void UserImageScreenHandler::RegisterMessages() {
100 AddCallback("getImages", &UserImageScreenHandler::HandleGetImages); 115 AddCallback("getImages", &UserImageScreenHandler::HandleGetImages);
101 AddCallback("screenReady", &UserImageScreenHandler::HandleScreenReady); 116 AddCallback("screenReady", &UserImageScreenHandler::HandleScreenReady);
117 AddCallback("takePhoto", &UserImageScreenHandler::HandleTakePhoto);
118 AddCallback("discardPhoto", &UserImageScreenHandler::HandleDiscardPhoto);
102 AddCallback("photoTaken", &UserImageScreenHandler::HandlePhotoTaken); 119 AddCallback("photoTaken", &UserImageScreenHandler::HandlePhotoTaken);
103 AddCallback("selectImage", &UserImageScreenHandler::HandleSelectImage); 120 AddCallback("selectImage", &UserImageScreenHandler::HandleSelectImage);
104 AddCallback("checkCameraPresence", 121 AddCallback("checkCameraPresence",
105 &UserImageScreenHandler::HandleCheckCameraPresence); 122 &UserImageScreenHandler::HandleCheckCameraPresence);
106 AddCallback("onUserImageAccepted", 123 AddCallback("onUserImageAccepted",
107 &UserImageScreenHandler::HandleImageAccepted); 124 &UserImageScreenHandler::HandleImageAccepted);
108 AddCallback("onUserImageScreenShown", 125 AddCallback("onUserImageScreenShown",
109 &UserImageScreenHandler::HandleScreenShown); 126 &UserImageScreenHandler::HandleScreenShown);
110 } 127 }
111 128
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 void UserImageScreenHandler::HandlePhotoTaken(const std::string& image_url) { 177 void UserImageScreenHandler::HandlePhotoTaken(const std::string& image_url) {
161 std::string mime_type, charset, raw_data; 178 std::string mime_type, charset, raw_data;
162 if (!net::DataURL::Parse(GURL(image_url), &mime_type, &charset, &raw_data)) 179 if (!net::DataURL::Parse(GURL(image_url), &mime_type, &charset, &raw_data))
163 NOTREACHED(); 180 NOTREACHED();
164 DCHECK_EQ("image/png", mime_type); 181 DCHECK_EQ("image/png", mime_type);
165 182
166 if (screen_) 183 if (screen_)
167 screen_->OnPhotoTaken(raw_data); 184 screen_->OnPhotoTaken(raw_data);
168 } 185 }
169 186
187 void UserImageScreenHandler::HandleTakePhoto() {
188 ash::PlaySystemSoundIfSpokenFeedback(SOUND_CAMERA_SNAP);
189 }
190
191 void UserImageScreenHandler::HandleDiscardPhoto() {
192 ash::PlaySystemSoundIfSpokenFeedback(SOUND_OBJECT_DELETE);
193 }
194
170 void UserImageScreenHandler::HandleCheckCameraPresence() { 195 void UserImageScreenHandler::HandleCheckCameraPresence() {
171 if (!screen_) 196 if (!screen_)
172 return; 197 return;
173 screen_->CheckCameraPresence(); 198 screen_->CheckCameraPresence();
174 } 199 }
175 200
176 void UserImageScreenHandler::HandleSelectImage(const std::string& image_url, 201 void UserImageScreenHandler::HandleSelectImage(const std::string& image_url,
177 const std::string& image_type, 202 const std::string& image_type,
178 bool is_user_selection) { 203 bool is_user_selection) {
179 if (screen_) 204 if (screen_)
(...skipping 19 matching lines...) Expand all
199 224
200 void UserImageScreenHandler::HideCurtain() { 225 void UserImageScreenHandler::HideCurtain() {
201 CallJS("hideCurtain"); 226 CallJS("hideCurtain");
202 } 227 }
203 228
204 void UserImageScreenHandler::SetProfilePictureEnabled(bool enabled) { 229 void UserImageScreenHandler::SetProfilePictureEnabled(bool enabled) {
205 CallJS("setProfilePictureEnabled", enabled); 230 CallJS("setProfilePictureEnabled", enabled);
206 } 231 }
207 232
208 } // namespace chromeos 233 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698