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

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: Flip-photo accessibility messages added to all 3 screens. 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
Nikita (slow) 2014/02/14 11:13:30 nit: drop empty line
41 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
42 media::SoundsManager* manager = media::SoundsManager::Get();
43 manager->Initialize(SOUND_OBJECT_DELETE,
44 bundle.GetRawDataResource(IDR_SOUND_OBJECT_DELETE_WAV));
45 manager->Initialize(SOUND_CAMERA_SNAP,
46 bundle.GetRawDataResource(IDR_SOUND_CAMERA_SNAP_WAV));
35 } 47 }
36 48
37 UserImageScreenHandler::~UserImageScreenHandler() { 49 UserImageScreenHandler::~UserImageScreenHandler() {
38 if (screen_) 50 if (screen_)
39 screen_->OnActorDestroyed(this); 51 screen_->OnActorDestroyed(this);
40 } 52 }
41 53
42 void UserImageScreenHandler::Initialize() { 54 void UserImageScreenHandler::Initialize() {
43 if (show_on_init_) { 55 if (show_on_init_) {
44 Show(); 56 Show();
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 IDS_OPTIONS_CHANGE_PICTURE_DIALOG_TEXT); 94 IDS_OPTIONS_CHANGE_PICTURE_DIALOG_TEXT);
83 builder->Add("takePhoto", IDS_OPTIONS_CHANGE_PICTURE_TAKE_PHOTO); 95 builder->Add("takePhoto", IDS_OPTIONS_CHANGE_PICTURE_TAKE_PHOTO);
84 builder->Add("discardPhoto", IDS_OPTIONS_CHANGE_PICTURE_DISCARD_PHOTO); 96 builder->Add("discardPhoto", IDS_OPTIONS_CHANGE_PICTURE_DISCARD_PHOTO);
85 builder->Add("flipPhoto", IDS_OPTIONS_CHANGE_PICTURE_FLIP_PHOTO); 97 builder->Add("flipPhoto", IDS_OPTIONS_CHANGE_PICTURE_FLIP_PHOTO);
86 builder->Add("profilePhoto", IDS_IMAGE_SCREEN_PROFILE_PHOTO); 98 builder->Add("profilePhoto", IDS_IMAGE_SCREEN_PROFILE_PHOTO);
87 builder->Add("profilePhotoLoading", 99 builder->Add("profilePhotoLoading",
88 IDS_IMAGE_SCREEN_PROFILE_LOADING_PHOTO); 100 IDS_IMAGE_SCREEN_PROFILE_LOADING_PHOTO);
89 builder->Add("okButtonText", IDS_OK); 101 builder->Add("okButtonText", IDS_OK);
90 builder->Add("authorCredit", IDS_OPTIONS_SET_WALLPAPER_AUTHOR_TEXT); 102 builder->Add("authorCredit", IDS_OPTIONS_SET_WALLPAPER_AUTHOR_TEXT);
91 builder->Add("photoFromCamera", IDS_OPTIONS_CHANGE_PICTURE_PHOTO_FROM_CAMERA); 103 builder->Add("photoFromCamera", IDS_OPTIONS_CHANGE_PICTURE_PHOTO_FROM_CAMERA);
104 builder->Add("photoFlippedAccessibleText",
105 IDS_OPTIONS_PHOTO_FLIP_ACCESSIBLE_TEXT);
106 builder->Add("photoFlippedBackAccessibleText",
107 IDS_OPTIONS_PHOTO_FLIPBACK_ACCESSIBLE_TEXT);
92 builder->Add("photoCaptureAccessibleText", 108 builder->Add("photoCaptureAccessibleText",
93 IDS_OPTIONS_PHOTO_CAPTURE_ACCESSIBLE_TEXT); 109 IDS_OPTIONS_PHOTO_CAPTURE_ACCESSIBLE_TEXT);
94 builder->Add("photoDiscardAccessibleText", 110 builder->Add("photoDiscardAccessibleText",
95 IDS_OPTIONS_PHOTO_DISCARD_ACCESSIBLE_TEXT); 111 IDS_OPTIONS_PHOTO_DISCARD_ACCESSIBLE_TEXT);
96 builder->Add("syncingPreferences", IDS_IMAGE_SCREEN_SYNCING_PREFERENCES); 112 builder->Add("syncingPreferences", IDS_IMAGE_SCREEN_SYNCING_PREFERENCES);
97 } 113 }
98 114
99 void UserImageScreenHandler::RegisterMessages() { 115 void UserImageScreenHandler::RegisterMessages() {
100 AddCallback("getImages", &UserImageScreenHandler::HandleGetImages); 116 AddCallback("getImages", &UserImageScreenHandler::HandleGetImages);
101 AddCallback("screenReady", &UserImageScreenHandler::HandleScreenReady); 117 AddCallback("screenReady", &UserImageScreenHandler::HandleScreenReady);
118 AddCallback("takePhoto", &UserImageScreenHandler::HandleTakePhoto);
119 AddCallback("discardPhoto", &UserImageScreenHandler::HandleDiscardPhoto);
102 AddCallback("photoTaken", &UserImageScreenHandler::HandlePhotoTaken); 120 AddCallback("photoTaken", &UserImageScreenHandler::HandlePhotoTaken);
103 AddCallback("selectImage", &UserImageScreenHandler::HandleSelectImage); 121 AddCallback("selectImage", &UserImageScreenHandler::HandleSelectImage);
104 AddCallback("checkCameraPresence", 122 AddCallback("checkCameraPresence",
105 &UserImageScreenHandler::HandleCheckCameraPresence); 123 &UserImageScreenHandler::HandleCheckCameraPresence);
106 AddCallback("onUserImageAccepted", 124 AddCallback("onUserImageAccepted",
107 &UserImageScreenHandler::HandleImageAccepted); 125 &UserImageScreenHandler::HandleImageAccepted);
108 AddCallback("onUserImageScreenShown", 126 AddCallback("onUserImageScreenShown",
109 &UserImageScreenHandler::HandleScreenShown); 127 &UserImageScreenHandler::HandleScreenShown);
110 } 128 }
111 129
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 void UserImageScreenHandler::HandlePhotoTaken(const std::string& image_url) { 178 void UserImageScreenHandler::HandlePhotoTaken(const std::string& image_url) {
161 std::string mime_type, charset, raw_data; 179 std::string mime_type, charset, raw_data;
162 if (!net::DataURL::Parse(GURL(image_url), &mime_type, &charset, &raw_data)) 180 if (!net::DataURL::Parse(GURL(image_url), &mime_type, &charset, &raw_data))
163 NOTREACHED(); 181 NOTREACHED();
164 DCHECK_EQ("image/png", mime_type); 182 DCHECK_EQ("image/png", mime_type);
165 183
166 if (screen_) 184 if (screen_)
167 screen_->OnPhotoTaken(raw_data); 185 screen_->OnPhotoTaken(raw_data);
168 } 186 }
169 187
188 void UserImageScreenHandler::HandleTakePhoto() {
189 ash::PlaySystemSound(SOUND_CAMERA_SNAP,
190 true /* honor_spoken_feedback */);
191 }
192
193 void UserImageScreenHandler::HandleDiscardPhoto() {
194 ash::PlaySystemSound(SOUND_OBJECT_DELETE,
195 true /* honor_spoken_feedback */);
196 }
197
170 void UserImageScreenHandler::HandleCheckCameraPresence() { 198 void UserImageScreenHandler::HandleCheckCameraPresence() {
171 if (!screen_) 199 if (!screen_)
172 return; 200 return;
173 screen_->CheckCameraPresence(); 201 screen_->CheckCameraPresence();
174 } 202 }
175 203
176 void UserImageScreenHandler::HandleSelectImage(const std::string& image_url, 204 void UserImageScreenHandler::HandleSelectImage(const std::string& image_url,
177 const std::string& image_type, 205 const std::string& image_type,
178 bool is_user_selection) { 206 bool is_user_selection) {
179 if (screen_) 207 if (screen_)
(...skipping 19 matching lines...) Expand all
199 227
200 void UserImageScreenHandler::HideCurtain() { 228 void UserImageScreenHandler::HideCurtain() {
201 CallJS("hideCurtain"); 229 CallJS("hideCurtain");
202 } 230 }
203 231
204 void UserImageScreenHandler::SetProfilePictureEnabled(bool enabled) { 232 void UserImageScreenHandler::SetProfilePictureEnabled(bool enabled) {
205 CallJS("setProfilePictureEnabled", enabled); 233 CallJS("setProfilePictureEnabled", enabled);
206 } 234 }
207 235
208 } // namespace chromeos 236 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698