Chromium Code Reviews| Index: ash/wm/maximize_mode/maximize_mode_controller.h |
| diff --git a/ash/wm/maximize_mode/maximize_mode_controller.h b/ash/wm/maximize_mode/maximize_mode_controller.h |
| index 54db3f3a48539de4f53fb4781960be6b52876918..3b640d8af7ffd4507b20e4d871b1c78f6c8db3de 100644 |
| --- a/ash/wm/maximize_mode/maximize_mode_controller.h |
| +++ b/ash/wm/maximize_mode/maximize_mode_controller.h |
| @@ -13,13 +13,19 @@ |
| #include "base/macros.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/observer_list.h" |
| -#include "base/power_monitor/power_observer.h" |
| +#if defined(OS_CHROMEOS) |
| +#include "chromeos/dbus/power_manager_client.h" |
|
jonross
2014/07/25 13:39:06
The one time we break include order is to separate
bruthig
2014/07/25 15:20:42
Done.
|
| +#endif // OS_CHROMEOS |
| #include "ui/gfx/display.h" |
| namespace ui { |
| class EventHandler; |
| } |
| +namespace base { |
| +class TickClock; |
| +} |
|
jonross
2014/07/25 13:39:06
Keep namespace forward declarations in alphabetica
bruthig
2014/07/25 15:20:42
Done.
|
| + |
| namespace ash { |
| class MaximizeModeControllerTest; |
| @@ -31,7 +37,9 @@ class MaximizeModeWindowManagerTest; |
| // enters and exits maximize mode when the lid is opened beyond the triggering |
| // angle and rotates the display to match the device when in maximize mode. |
| class ASH_EXPORT MaximizeModeController : public AccelerometerObserver, |
| - public base::PowerObserver, |
| +#if defined(OS_CHROMEOS) |
| + public chromeos::PowerManagerClient::Observer, |
| +#endif // OS_CHROMEOS |
| public ShellObserver, |
| public DisplayController::Observer { |
| public: |
| @@ -98,17 +106,27 @@ class ASH_EXPORT MaximizeModeController : public AccelerometerObserver, |
| virtual void OnMaximizeModeStarted() OVERRIDE; |
| virtual void OnMaximizeModeEnded() OVERRIDE; |
| - // base::PowerObserver: |
| - virtual void OnSuspend() OVERRIDE; |
| - virtual void OnResume() OVERRIDE; |
| - |
| // DisplayController::Observer: |
| virtual void OnDisplayConfigurationChanged() OVERRIDE; |
| +#if defined(OS_CHROMEOS) |
| + // PowerManagerClient::Observer: |
| + virtual void LidEventReceived(bool open, |
| + const base::TimeTicks& time) OVERRIDE; |
| + virtual void SuspendImminent() OVERRIDE; |
| + virtual void SuspendDone(const base::TimeDelta& sleep_duration) OVERRIDE; |
| +#endif // OS_CHROMEOS |
| + |
| private: |
| friend class MaximizeModeControllerTest; |
| friend class MaximizeModeWindowManagerTest; |
| + // Set the TickClock. |
| + // This is only to be used by tests that need to artificially and |
| + // deterministically control the current time. |
| + // Ownership of |tick_clock| is assumed by this. |
| + void SetTickClockForTest(base::TickClock* tick_clock); |
| + |
| // Detect hinge rotation from |base| and |lid| accelerometers and |
| // automatically start / stop maximize mode. |
| void HandleHingeRotation(const gfx::Vector3dF& base, |
| @@ -122,6 +140,9 @@ class ASH_EXPORT MaximizeModeController : public AccelerometerObserver, |
| void SetDisplayRotation(DisplayManager* display_manager, |
| gfx::Display::Rotation rotation); |
| + // Returns true if the lid was recently opened. |
| + bool WasLidOpenedRecently() const; |
| + |
| // Enables MaximizeModeWindowManager, and determines the current state of |
| // rotation lock. |
| void EnterMaximizeMode(); |
| @@ -169,6 +190,19 @@ class ASH_EXPORT MaximizeModeController : public AccelerometerObserver, |
| base::TimeDelta total_touchview_time_; |
| base::TimeDelta total_non_touchview_time_; |
| + // Tracks the last time we received a lid open event. |
| + // This is used to suppress erroneous acceleromter readings as the lid |
| + // is opened but the acceleromater reports readings that make |
| + // the lid to appear near fully open. |
| + base::TimeTicks last_lid_open_time_; |
| + |
| + // Source for the current time in base::TimeTicks. |
| + scoped_ptr<base::TickClock> tick_clock_; |
| + |
| + // Tracks when the lid is closed. |
| + // Used to prevent entering maximize mode. |
|
jonross
2014/07/25 13:39:06
nit: only overflow comments when at the 80 char li
bruthig
2014/07/25 15:20:42
Done.
|
| + bool lid_is_closed_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(MaximizeModeController); |
| }; |