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

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

Issue 213623005: CameraPresenceNotifier observers removal supported. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Logic moved to screens. Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/locally_managed_user_creation_screen_handler.cc ('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 "ash/audio/sounds.h" 7 #include "ash/audio/sounds.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chrome/browser/chromeos/camera_presence_notifier.h"
13 #include "chrome/browser/chromeos/login/default_user_images.h" 12 #include "chrome/browser/chromeos/login/default_user_images.h"
14 #include "chrome/browser/chromeos/login/existing_user_controller.h" 13 #include "chrome/browser/chromeos/login/existing_user_controller.h"
15 #include "chrome/browser/chromeos/login/user.h" 14 #include "chrome/browser/chromeos/login/user.h"
16 #include "chrome/browser/chromeos/login/webui_login_display.h" 15 #include "chrome/browser/chromeos/login/webui_login_display.h"
17 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" 16 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
18 #include "chrome/common/chrome_switches.h" 17 #include "chrome/common/chrome_switches.h"
19 #include "chrome/common/url_constants.h" 18 #include "chrome/common/url_constants.h"
20 #include "chromeos/audio/chromeos_sounds.h" 19 #include "chromeos/audio/chromeos_sounds.h"
21 #include "grit/browser_resources.h" 20 #include "grit/browser_resources.h"
22 #include "grit/generated_resources.h" 21 #include "grit/generated_resources.h"
(...skipping 18 matching lines...) Expand all
41 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); 40 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
42 media::SoundsManager* manager = media::SoundsManager::Get(); 41 media::SoundsManager* manager = media::SoundsManager::Get();
43 manager->Initialize(SOUND_OBJECT_DELETE, 42 manager->Initialize(SOUND_OBJECT_DELETE,
44 bundle.GetRawDataResource(IDR_SOUND_OBJECT_DELETE_WAV)); 43 bundle.GetRawDataResource(IDR_SOUND_OBJECT_DELETE_WAV));
45 manager->Initialize(SOUND_CAMERA_SNAP, 44 manager->Initialize(SOUND_CAMERA_SNAP,
46 bundle.GetRawDataResource(IDR_SOUND_CAMERA_SNAP_WAV)); 45 bundle.GetRawDataResource(IDR_SOUND_CAMERA_SNAP_WAV));
47 } 46 }
48 47
49 UserImageScreenHandler::~UserImageScreenHandler() { 48 UserImageScreenHandler::~UserImageScreenHandler() {
50 if (screen_) { 49 if (screen_) {
51 CameraPresenceNotifier::GetInstance()->RemoveObserver(screen_);
52 screen_->OnActorDestroyed(this); 50 screen_->OnActorDestroyed(this);
53 } 51 }
54 } 52 }
55 53
56 void UserImageScreenHandler::Initialize() { 54 void UserImageScreenHandler::Initialize() {
57 if (show_on_init_) { 55 if (show_on_init_) {
58 Show(); 56 Show();
59 show_on_init_ = false; 57 show_on_init_ = false;
60 } 58 }
61 } 59 }
62 60
63 void UserImageScreenHandler::SetDelegate( 61 void UserImageScreenHandler::SetDelegate(
64 UserImageScreenActor::Delegate* screen) { 62 UserImageScreenActor::Delegate* screen) {
65 screen_ = screen; 63 screen_ = screen;
66 } 64 }
67 65
68 void UserImageScreenHandler::Show() { 66 void UserImageScreenHandler::Show() {
69 if (!page_is_ready()) { 67 if (!page_is_ready()) {
70 show_on_init_ = true; 68 show_on_init_ = true;
71 return; 69 return;
72 } 70 }
73 screen_show_time_ = base::Time::Now(); 71 screen_show_time_ = base::Time::Now();
74 ShowScreen(OobeUI::kScreenUserImagePicker, NULL); 72 ShowScreen(OobeUI::kScreenUserImagePicker, NULL);
75 73
76 // When shown, query camera presence. 74 // When shown, query camera presence.
77 if (!screen_) 75 if (!screen_)
78 return; 76 return;
79 CameraPresenceNotifier::GetInstance()->AddObserver(screen_);
80 if (is_ready_) 77 if (is_ready_)
81 screen_->OnScreenReady(); 78 screen_->OnScreenReady();
82 } 79 }
83 80
84 void UserImageScreenHandler::Hide() { 81 void UserImageScreenHandler::Hide() {
85 CameraPresenceNotifier::GetInstance()->RemoveObserver(screen_);
86 } 82 }
87 83
88 void UserImageScreenHandler::PrepareToShow() { 84 void UserImageScreenHandler::PrepareToShow() {
89 } 85 }
90 86
91 void UserImageScreenHandler::DeclareLocalizedValues( 87 void UserImageScreenHandler::DeclareLocalizedValues(
92 LocalizedValuesBuilder* builder) { 88 LocalizedValuesBuilder* builder) {
93 builder->Add("userImageScreenTitle", IDS_USER_IMAGE_SCREEN_TITLE); 89 builder->Add("userImageScreenTitle", IDS_USER_IMAGE_SCREEN_TITLE);
94 builder->Add("userImageScreenDescription", 90 builder->Add("userImageScreenDescription",
95 IDS_OPTIONS_CHANGE_PICTURE_DIALOG_TEXT); 91 IDS_OPTIONS_CHANGE_PICTURE_DIALOG_TEXT);
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 214
219 void UserImageScreenHandler::HideCurtain() { 215 void UserImageScreenHandler::HideCurtain() {
220 CallJS("hideCurtain"); 216 CallJS("hideCurtain");
221 } 217 }
222 218
223 void UserImageScreenHandler::SetProfilePictureEnabled(bool enabled) { 219 void UserImageScreenHandler::SetProfilePictureEnabled(bool enabled) {
224 CallJS("setProfilePictureEnabled", enabled); 220 CallJS("setProfilePictureEnabled", enabled);
225 } 221 }
226 222
227 } // namespace chromeos 223 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/locally_managed_user_creation_screen_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698