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

Side by Side Diff: ash/common/wm/maximize_mode/maximize_mode_controller.cc

Issue 2739763003: Moves maintaining ShellObservers back to Shell (Closed)
Patch Set: merge Created 3 years, 9 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ash/common/wm/maximize_mode/maximize_mode_controller.h" 5 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "ash/common/ash_switches.h" 9 #include "ash/common/ash_switches.h"
10 #include "ash/common/wm/maximize_mode/maximize_mode_window_manager.h" 10 #include "ash/common/wm/maximize_mode/maximize_mode_window_manager.h"
11 #include "ash/common/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard .h" 11 #include "ash/common/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard .h"
12 #include "ash/common/wm_shell.h" 12 #include "ash/common/wm_shell.h"
13 #include "ash/shell.h"
13 #include "base/command_line.h" 14 #include "base/command_line.h"
14 #include "base/metrics/histogram_macros.h" 15 #include "base/metrics/histogram_macros.h"
15 #include "base/time/default_tick_clock.h" 16 #include "base/time/default_tick_clock.h"
16 #include "base/time/tick_clock.h" 17 #include "base/time/tick_clock.h"
17 #include "chromeos/dbus/dbus_thread_manager.h" 18 #include "chromeos/dbus/dbus_thread_manager.h"
18 #include "ui/base/accelerators/accelerator.h" 19 #include "ui/base/accelerators/accelerator.h"
19 #include "ui/chromeos/accelerometer/accelerometer_util.h" 20 #include "ui/chromeos/accelerometer/accelerometer_util.h"
20 #include "ui/display/display.h" 21 #include "ui/display/display.h"
21 #include "ui/events/event.h" 22 #include "ui/events/event.h"
22 #include "ui/events/keycodes/keyboard_codes.h" 23 #include "ui/events/keycodes/keyboard_codes.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 } 85 }
85 86
86 } // namespace 87 } // namespace
87 88
88 MaximizeModeController::MaximizeModeController() 89 MaximizeModeController::MaximizeModeController()
89 : have_seen_accelerometer_data_(false), 90 : have_seen_accelerometer_data_(false),
90 touchview_usage_interval_start_time_(base::Time::Now()), 91 touchview_usage_interval_start_time_(base::Time::Now()),
91 tick_clock_(new base::DefaultTickClock()), 92 tick_clock_(new base::DefaultTickClock()),
92 tablet_mode_switch_is_on_(false), 93 tablet_mode_switch_is_on_(false),
93 lid_is_closed_(false) { 94 lid_is_closed_(false) {
94 WmShell::Get()->AddShellObserver(this); 95 Shell::GetInstance()->AddShellObserver(this);
95 WmShell::Get()->RecordUserMetricsAction(UMA_MAXIMIZE_MODE_INITIALLY_DISABLED); 96 WmShell::Get()->RecordUserMetricsAction(UMA_MAXIMIZE_MODE_INITIALLY_DISABLED);
96 97
97 // TODO(jonross): Do not create MaximizeModeController if the flag is 98 // TODO(jonross): Do not create MaximizeModeController if the flag is
98 // unavailable. This will require refactoring 99 // unavailable. This will require refactoring
99 // IsMaximizeModeWindowManagerEnabled to check for the existance of the 100 // IsMaximizeModeWindowManagerEnabled to check for the existance of the
100 // controller. 101 // controller.
101 if (IsEnabled()) { 102 if (IsEnabled()) {
102 WmShell::Get()->AddDisplayObserver(this); 103 WmShell::Get()->AddDisplayObserver(this);
103 chromeos::AccelerometerReader::GetInstance()->AddObserver(this); 104 chromeos::AccelerometerReader::GetInstance()->AddObserver(this);
104 } 105 }
105 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver( 106 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(
106 this); 107 this);
107 } 108 }
108 109
109 MaximizeModeController::~MaximizeModeController() { 110 MaximizeModeController::~MaximizeModeController() {
110 WmShell::Get()->RemoveShellObserver(this); 111 Shell::GetInstance()->RemoveShellObserver(this);
111 112
112 if (IsEnabled()) { 113 if (IsEnabled()) {
113 WmShell::Get()->RemoveDisplayObserver(this); 114 WmShell::Get()->RemoveDisplayObserver(this);
114 chromeos::AccelerometerReader::GetInstance()->RemoveObserver(this); 115 chromeos::AccelerometerReader::GetInstance()->RemoveObserver(this);
115 } 116 }
116 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver( 117 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(
117 this); 118 this);
118 } 119 }
119 120
120 bool MaximizeModeController::CanEnterMaximizeMode() { 121 bool MaximizeModeController::CanEnterMaximizeMode() {
(...skipping 11 matching lines...) Expand all
132 if (should_enable == is_enabled) 133 if (should_enable == is_enabled)
133 return; 134 return;
134 135
135 WmShell* shell = WmShell::Get(); 136 WmShell* shell = WmShell::Get();
136 137
137 if (should_enable) { 138 if (should_enable) {
138 maximize_mode_window_manager_.reset(new MaximizeModeWindowManager()); 139 maximize_mode_window_manager_.reset(new MaximizeModeWindowManager());
139 // TODO(jonross): Move the maximize mode notifications from ShellObserver 140 // TODO(jonross): Move the maximize mode notifications from ShellObserver
140 // to MaximizeModeController::Observer 141 // to MaximizeModeController::Observer
141 shell->RecordUserMetricsAction(UMA_MAXIMIZE_MODE_ENABLED); 142 shell->RecordUserMetricsAction(UMA_MAXIMIZE_MODE_ENABLED);
142 shell->OnMaximizeModeStarted(); 143 Shell::GetInstance()->NotifyMaximizeModeStarted();
143 144
144 observers_.ForAllPtrs([](mojom::TouchViewObserver* observer) { 145 observers_.ForAllPtrs([](mojom::TouchViewObserver* observer) {
145 observer->OnTouchViewToggled(true); 146 observer->OnTouchViewToggled(true);
146 }); 147 });
147 148
148 } else { 149 } else {
149 shell->OnMaximizeModeEnding(); 150 Shell::GetInstance()->NotifyMaximizeModeEnding();
150 maximize_mode_window_manager_.reset(); 151 maximize_mode_window_manager_.reset();
151 shell->RecordUserMetricsAction(UMA_MAXIMIZE_MODE_DISABLED); 152 shell->RecordUserMetricsAction(UMA_MAXIMIZE_MODE_DISABLED);
152 shell->OnMaximizeModeEnded(); 153 Shell::GetInstance()->NotifyMaximizeModeEnded();
153 154
154 observers_.ForAllPtrs([](mojom::TouchViewObserver* observer) { 155 observers_.ForAllPtrs([](mojom::TouchViewObserver* observer) {
155 observer->OnTouchViewToggled(false); 156 observer->OnTouchViewToggled(false);
156 }); 157 });
157 } 158 }
158 } 159 }
159 160
160 bool MaximizeModeController::IsMaximizeModeWindowManagerEnabled() const { 161 bool MaximizeModeController::IsMaximizeModeWindowManagerEnabled() const {
161 return maximize_mode_window_manager_.get() != NULL; 162 return maximize_mode_window_manager_.get() != NULL;
162 } 163 }
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 return elapsed_time.InSeconds() <= kLidRecentlyOpenedDurationSeconds; 419 return elapsed_time.InSeconds() <= kLidRecentlyOpenedDurationSeconds;
419 } 420 }
420 421
421 void MaximizeModeController::SetTickClockForTest( 422 void MaximizeModeController::SetTickClockForTest(
422 std::unique_ptr<base::TickClock> tick_clock) { 423 std::unique_ptr<base::TickClock> tick_clock) {
423 DCHECK(tick_clock_); 424 DCHECK(tick_clock_);
424 tick_clock_ = std::move(tick_clock); 425 tick_clock_ = std::move(tick_clock);
425 } 426 }
426 427
427 } // namespace ash 428 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/wm/lock_layout_manager.cc ('k') | ash/common/wm/maximize_mode/maximize_mode_window_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698