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

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

Issue 2684883002: cros: Fold UserImageModel into UserImageScreen (Closed)
Patch Set: Address comments Created 3 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
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/metrics/histogram_macros.h" 11 #include "base/metrics/histogram_macros.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" 13 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
14 #include "chrome/browser/chromeos/login/existing_user_controller.h" 14 #include "chrome/browser/chromeos/login/existing_user_controller.h"
15 #include "chrome/browser/chromeos/login/oobe_screen.h" 15 #include "chrome/browser/chromeos/login/oobe_screen.h"
16 #include "chrome/browser/chromeos/login/screens/user_image_model.h" 16 #include "chrome/browser/chromeos/login/screens/user_image_screen.h"
17 #include "chrome/browser/chromeos/login/ui/webui_login_display.h" 17 #include "chrome/browser/chromeos/login/ui/webui_login_display.h"
18 #include "chrome/browser/chromeos/login/users/default_user_image/default_user_im ages.h" 18 #include "chrome/browser/chromeos/login/users/default_user_image/default_user_im ages.h"
19 #include "chrome/common/chrome_switches.h" 19 #include "chrome/common/chrome_switches.h"
20 #include "chrome/common/url_constants.h" 20 #include "chrome/common/url_constants.h"
21 #include "chrome/grit/browser_resources.h" 21 #include "chrome/grit/browser_resources.h"
22 #include "chrome/grit/generated_resources.h" 22 #include "chrome/grit/generated_resources.h"
23 #include "chromeos/audio/chromeos_sounds.h" 23 #include "chromeos/audio/chromeos_sounds.h"
24 #include "components/login/localized_values_builder.h" 24 #include "components/login/localized_values_builder.h"
25 #include "components/strings/grit/components_strings.h" 25 #include "components/strings/grit/components_strings.h"
26 #include "components/user_manager/user.h" 26 #include "components/user_manager/user.h"
27 #include "media/audio/sounds/sounds_manager.h" 27 #include "media/audio/sounds/sounds_manager.h"
28 #include "net/base/data_url.h" 28 #include "net/base/data_url.h"
29 #include "ui/base/l10n/l10n_util.h" 29 #include "ui/base/l10n/l10n_util.h"
30 #include "ui/base/resource/resource_bundle.h" 30 #include "ui/base/resource/resource_bundle.h"
31 #include "url/gurl.h" 31 #include "url/gurl.h"
32 32
33 namespace { 33 namespace {
34 34
35 const char kJsScreenPath[] = "login.UserImageScreen"; 35 const char kJsScreenPath[] = "login.UserImageScreen";
36 36
37 } // namespace 37 } // namespace
38 38
39 namespace chromeos { 39 namespace chromeos {
40 40
41 UserImageScreenHandler::UserImageScreenHandler() 41 UserImageScreenHandler::UserImageScreenHandler()
42 : BaseScreenHandler(kJsScreenPath), 42 : BaseScreenHandler(kJsScreenPath) {
43 model_(nullptr),
44 show_on_init_(false),
45 is_ready_(false) {
46 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); 43 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
47 media::SoundsManager* manager = media::SoundsManager::Get(); 44 media::SoundsManager* manager = media::SoundsManager::Get();
48 manager->Initialize(SOUND_OBJECT_DELETE, 45 manager->Initialize(SOUND_OBJECT_DELETE,
49 bundle.GetRawDataResource(IDR_SOUND_OBJECT_DELETE_WAV)); 46 bundle.GetRawDataResource(IDR_SOUND_OBJECT_DELETE_WAV));
50 manager->Initialize(SOUND_CAMERA_SNAP, 47 manager->Initialize(SOUND_CAMERA_SNAP,
51 bundle.GetRawDataResource(IDR_SOUND_CAMERA_SNAP_WAV)); 48 bundle.GetRawDataResource(IDR_SOUND_CAMERA_SNAP_WAV));
52 } 49 }
53 50
54 UserImageScreenHandler::~UserImageScreenHandler() { 51 UserImageScreenHandler::~UserImageScreenHandler() {
55 if (model_) 52 if (screen_)
56 model_->OnViewDestroyed(this); 53 screen_->OnViewDestroyed(this);
57 } 54 }
58 55
59 void UserImageScreenHandler::Initialize() { 56 void UserImageScreenHandler::Initialize() {
60 if (show_on_init_) { 57 if (show_on_init_) {
61 Show(); 58 Show();
62 show_on_init_ = false; 59 show_on_init_ = false;
63 } 60 }
64 } 61 }
65 62
66 void UserImageScreenHandler::Bind(UserImageModel& model) { 63 void UserImageScreenHandler::Bind(UserImageScreen* screen) {
67 model_ = &model; 64 screen_ = screen;
68 BaseScreenHandler::SetBaseScreen(model_); 65 BaseScreenHandler::SetBaseScreen(screen_);
69 } 66 }
70 67
71 void UserImageScreenHandler::Unbind() { 68 void UserImageScreenHandler::Unbind() {
72 model_ = nullptr; 69 screen_ = nullptr;
73 BaseScreenHandler::SetBaseScreen(nullptr); 70 BaseScreenHandler::SetBaseScreen(nullptr);
74 } 71 }
75 72
76 void UserImageScreenHandler::Show() { 73 void UserImageScreenHandler::Show() {
77 if (!page_is_ready()) { 74 if (!page_is_ready()) {
78 show_on_init_ = true; 75 show_on_init_ = true;
79 return; 76 return;
80 } 77 }
81 screen_show_time_ = base::Time::Now(); 78 screen_show_time_ = base::Time::Now();
82 ShowScreen(OobeScreen::SCREEN_USER_IMAGE_PICKER); 79 ShowScreen(OobeScreen::SCREEN_USER_IMAGE_PICKER);
83 80
84 // When shown, query camera presence. 81 // When shown, query camera presence.
85 if (model_ && is_ready_) 82 if (screen_ && is_ready_)
86 model_->OnScreenReady(); 83 screen_->OnScreenReady();
87 } 84 }
88 85
89 void UserImageScreenHandler::Hide() { 86 void UserImageScreenHandler::Hide() {
90 } 87 }
91 88
92 void UserImageScreenHandler::DeclareLocalizedValues( 89 void UserImageScreenHandler::DeclareLocalizedValues(
93 ::login::LocalizedValuesBuilder* builder) { 90 ::login::LocalizedValuesBuilder* builder) {
94 builder->Add("userImageScreenTitle", IDS_USER_IMAGE_SCREEN_TITLE); 91 builder->Add("userImageScreenTitle", IDS_USER_IMAGE_SCREEN_TITLE);
95 builder->Add("userImageScreenDescription", 92 builder->Add("userImageScreenDescription",
96 IDS_OPTIONS_CHANGE_PICTURE_DIALOG_TEXT); 93 IDS_OPTIONS_CHANGE_PICTURE_DIALOG_TEXT);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 default_user_image::kDefaultImageWebsiteIDs[i])); 140 default_user_image::kDefaultImageWebsiteIDs[i]));
144 image_data->SetString("title", 141 image_data->SetString("title",
145 default_user_image::GetDefaultImageDescription(i)); 142 default_user_image::GetDefaultImageDescription(i));
146 image_urls.Append(std::move(image_data)); 143 image_urls.Append(std::move(image_data));
147 } 144 }
148 CallJS("setDefaultImages", image_urls); 145 CallJS("setDefaultImages", image_urls);
149 } 146 }
150 147
151 void UserImageScreenHandler::HandleScreenReady() { 148 void UserImageScreenHandler::HandleScreenReady() {
152 is_ready_ = true; 149 is_ready_ = true;
153 if (model_) 150 if (screen_)
154 model_->OnScreenReady(); 151 screen_->OnScreenReady();
155 } 152 }
156 153
157 void UserImageScreenHandler::HandlePhotoTaken(const std::string& image_url) { 154 void UserImageScreenHandler::HandlePhotoTaken(const std::string& image_url) {
158 std::string mime_type, charset, raw_data; 155 std::string mime_type, charset, raw_data;
159 if (!net::DataURL::Parse(GURL(image_url), &mime_type, &charset, &raw_data)) 156 if (!net::DataURL::Parse(GURL(image_url), &mime_type, &charset, &raw_data))
160 NOTREACHED(); 157 NOTREACHED();
161 DCHECK_EQ("image/png", mime_type); 158 DCHECK_EQ("image/png", mime_type);
162 159
163 if (model_) 160 if (screen_)
164 model_->OnPhotoTaken(raw_data); 161 screen_->OnPhotoTaken(raw_data);
165 } 162 }
166 163
167 void UserImageScreenHandler::HandleTakePhoto() { 164 void UserImageScreenHandler::HandleTakePhoto() {
168 AccessibilityManager::Get()->PlayEarcon( 165 AccessibilityManager::Get()->PlayEarcon(
169 SOUND_CAMERA_SNAP, PlaySoundOption::SPOKEN_FEEDBACK_ENABLED); 166 SOUND_CAMERA_SNAP, PlaySoundOption::SPOKEN_FEEDBACK_ENABLED);
170 } 167 }
171 168
172 void UserImageScreenHandler::HandleDiscardPhoto() { 169 void UserImageScreenHandler::HandleDiscardPhoto() {
173 AccessibilityManager::Get()->PlayEarcon( 170 AccessibilityManager::Get()->PlayEarcon(
174 SOUND_OBJECT_DELETE, PlaySoundOption::SPOKEN_FEEDBACK_ENABLED); 171 SOUND_OBJECT_DELETE, PlaySoundOption::SPOKEN_FEEDBACK_ENABLED);
175 } 172 }
176 173
177 void UserImageScreenHandler::HandleSelectImage(const std::string& image_url, 174 void UserImageScreenHandler::HandleSelectImage(const std::string& image_url,
178 const std::string& image_type, 175 const std::string& image_type,
179 bool is_user_selection) { 176 bool is_user_selection) {
180 if (model_) 177 if (screen_)
181 model_->OnImageSelected(image_type, image_url, is_user_selection); 178 screen_->OnImageSelected(image_type, image_url, is_user_selection);
182 } 179 }
183 180
184 void UserImageScreenHandler::HandleImageAccepted() { 181 void UserImageScreenHandler::HandleImageAccepted() {
185 if (model_) 182 if (screen_)
186 model_->OnImageAccepted(); 183 screen_->OnImageAccepted();
187 } 184 }
188 185
189 void UserImageScreenHandler::HandleScreenShown() { 186 void UserImageScreenHandler::HandleScreenShown() {
190 DCHECK(!screen_show_time_.is_null()); 187 DCHECK(!screen_show_time_.is_null());
191 188
192 base::TimeDelta delta = base::Time::Now() - screen_show_time_; 189 base::TimeDelta delta = base::Time::Now() - screen_show_time_;
193 VLOG(1) << "Screen load time: " << delta.InSecondsF(); 190 VLOG(1) << "Screen load time: " << delta.InSecondsF();
194 UMA_HISTOGRAM_TIMES("UserImage.ScreenIsShownTime", delta); 191 UMA_HISTOGRAM_TIMES("UserImage.ScreenIsShownTime", delta);
195 } 192 }
196 193
197 void UserImageScreenHandler::HideCurtain() { 194 void UserImageScreenHandler::HideCurtain() {
198 CallJS("hideCurtain"); 195 CallJS("hideCurtain");
199 } 196 }
200 197
201 } // namespace chromeos 198 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698