OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 #ifndef ASH_WM_LOCK_STATE_CONTROLLER_H_ | 5 #ifndef ASH_WM_LOCK_STATE_CONTROLLER_H_ |
6 #define ASH_WM_LOCK_STATE_CONTROLLER_H_ | 6 #define ASH_WM_LOCK_STATE_CONTROLLER_H_ |
7 | 7 |
8 #include "ash/ash_export.h" | 8 #include "ash/ash_export.h" |
9 #include "ash/shell_observer.h" | 9 #include "ash/shell_observer.h" |
10 #include "ash/wm/lock_state_observer.h" | 10 #include "ash/wm/lock_state_observer.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 private: | 45 private: |
46 DISALLOW_COPY_AND_ASSIGN(LockStateControllerDelegate); | 46 DISALLOW_COPY_AND_ASSIGN(LockStateControllerDelegate); |
47 }; | 47 }; |
48 | 48 |
49 // Displays onscreen animations and locks or suspends the system in response to | 49 // Displays onscreen animations and locks or suspends the system in response to |
50 // the power button being pressed or released. | 50 // the power button being pressed or released. |
51 // Lock workflow: | 51 // Lock workflow: |
52 // Entry points: | 52 // Entry points: |
53 // * StartLockAnimation (bool shutdown after lock) - starts lock that can be | 53 // * StartLockAnimation (bool shutdown after lock) - starts lock that can be |
54 // cancelled. | 54 // cancelled. |
55 // * StartLockAnimationAndLockImmediately - starts uninterruptible lock | 55 // * StartLockAnimationAndLockImmediately (bool shutdown after lock) - starts |
56 // animation. | 56 // uninterruptible lock animation. |
57 // This leads to call of either StartImmediatePreLockAnimation or | 57 // This leads to call of either StartImmediatePreLockAnimation or |
58 // StartCancellablePreLockAnimation. Once they complete | 58 // StartCancellablePreLockAnimation. Once they complete |
59 // PreLockAnimationFinished is called, and system lock is requested. | 59 // PreLockAnimationFinished is called, and system lock is requested. |
60 // Once system locks and lock UI is created, OnLockStateChanged is called, and | 60 // Once system locks and lock UI is created, OnLockStateChanged is called, and |
61 // StartPostLockAnimation is called. In PostLockAnimationFinished two | 61 // StartPostLockAnimation is called. In PostLockAnimationFinished two |
62 // things happen : EVENT_LOCK_ANIMATION_FINISHED notification is sent (it | 62 // things happen : EVENT_LOCK_ANIMATION_FINISHED notification is sent (it |
63 // triggers third part of animation within lock UI), and check for continuing to | 63 // triggers third part of animation within lock UI), and check for continuing to |
64 // shutdown is made. | 64 // shutdown is made. |
65 // | 65 // |
66 // Unlock workflow: | 66 // Unlock workflow: |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 controller_->lock_to_shutdown_timer_.Stop(); | 128 controller_->lock_to_shutdown_timer_.Stop(); |
129 } | 129 } |
130 void trigger_shutdown_timeout() { | 130 void trigger_shutdown_timeout() { |
131 controller_->OnPreShutdownAnimationTimeout(); | 131 controller_->OnPreShutdownAnimationTimeout(); |
132 controller_->pre_shutdown_timer_.Stop(); | 132 controller_->pre_shutdown_timer_.Stop(); |
133 } | 133 } |
134 void trigger_real_shutdown_timeout() { | 134 void trigger_real_shutdown_timeout() { |
135 controller_->OnRealShutdownTimeout(); | 135 controller_->OnRealShutdownTimeout(); |
136 controller_->real_shutdown_timer_.Stop(); | 136 controller_->real_shutdown_timer_.Stop(); |
137 } | 137 } |
| 138 |
138 private: | 139 private: |
139 LockStateController* controller_; // not owned | 140 LockStateController* controller_; // not owned |
140 | 141 |
141 DISALLOW_COPY_AND_ASSIGN(TestApi); | 142 DISALLOW_COPY_AND_ASSIGN(TestApi); |
142 }; | 143 }; |
143 | 144 |
144 LockStateController(); | 145 LockStateController(); |
145 virtual ~LockStateController(); | 146 virtual ~LockStateController(); |
146 | 147 |
147 // Takes ownership of |delegate|. | 148 void SetDelegate(scoped_ptr<LockStateControllerDelegate> delegate); |
148 void SetDelegate(LockStateControllerDelegate* delegate); | |
149 | 149 |
150 void AddObserver(LockStateObserver* observer); | 150 void AddObserver(LockStateObserver* observer); |
151 void RemoveObserver(LockStateObserver* observer); | 151 void RemoveObserver(LockStateObserver* observer); |
152 bool HasObserver(LockStateObserver* observer); | 152 bool HasObserver(LockStateObserver* observer); |
153 | 153 |
154 // Starts locking (with slow animation) that can be cancelled. | 154 // Starts locking (with slow animation) that can be cancelled. |
155 // After locking and |kLockToShutdownTimeoutMs| StartShutdownAnimation() | 155 // After locking and |kLockToShutdownTimeoutMs| StartShutdownAnimation() |
156 // will be called unless CancelShutdownAnimation() is called, if | 156 // will be called unless CancelShutdownAnimation() is called, if |
157 // |shutdown_after_lock| is true. | 157 // |shutdown_after_lock| is true. |
158 void StartLockAnimation(bool shutdown_after_lock); | 158 void StartLockAnimation(bool shutdown_after_lock); |
159 | 159 |
160 // Starts shutting down (with slow animation) that can be cancelled. | 160 // Starts shutting down (with slow animation) that can be cancelled. |
161 void StartShutdownAnimation(); | 161 void StartShutdownAnimation(); |
162 | 162 |
163 // Starts usual lock animation, but locks immediately. | 163 // Starts usual lock animation, but locks immediately. After locking and |
164 // Unlike StartLockAnimation it does no lead to StartShutdownAnimation. | 164 // |kLockToShutdownTimeoutMs| StartShutdownAnimation() will be called unless |
165 void StartLockAnimationAndLockImmediately(); | 165 // CancelShutdownAnimation() is called, if |shutdown_after_lock| is true. |
| 166 void StartLockAnimationAndLockImmediately(bool shutdown_after_lock); |
166 | 167 |
167 // Returns true if we have requested system to lock, but haven't received | 168 // Returns true if we have requested system to lock, but haven't received |
168 // confirmation yet. | 169 // confirmation yet. |
169 bool LockRequested(); | 170 bool LockRequested(); |
170 | 171 |
171 // Returns true if we are shutting down. | 172 // Returns true if we are shutting down. |
172 bool ShutdownRequested(); | 173 bool ShutdownRequested(); |
173 | 174 |
174 // Returns true if we are within cancellable lock timeframe. | 175 // Returns true if we are within cancellable lock timeframe. |
175 bool CanCancelLockAnimation(); | 176 bool CanCancelLockAnimation(); |
(...skipping 23 matching lines...) Expand all Loading... |
199 void SetLockScreenDisplayedCallback(const base::Closure& callback); | 200 void SetLockScreenDisplayedCallback(const base::Closure& callback); |
200 | 201 |
201 // aura::WindowTreeHostObserver override: | 202 // aura::WindowTreeHostObserver override: |
202 virtual void OnHostCloseRequested(const aura::WindowTreeHost* host) OVERRIDE; | 203 virtual void OnHostCloseRequested(const aura::WindowTreeHost* host) OVERRIDE; |
203 | 204 |
204 // ShellObserver overrides: | 205 // ShellObserver overrides: |
205 virtual void OnLoginStateChanged(user::LoginStatus status) OVERRIDE; | 206 virtual void OnLoginStateChanged(user::LoginStatus status) OVERRIDE; |
206 virtual void OnAppTerminating() OVERRIDE; | 207 virtual void OnAppTerminating() OVERRIDE; |
207 virtual void OnLockStateChanged(bool locked) OVERRIDE; | 208 virtual void OnLockStateChanged(bool locked) OVERRIDE; |
208 | 209 |
| 210 void set_animator_for_test(SessionStateAnimator* animator) { |
| 211 animator_.reset(animator); |
| 212 } |
| 213 |
209 private: | 214 private: |
210 friend class test::PowerButtonControllerTest; | 215 friend class test::PowerButtonControllerTest; |
211 friend class test::LockStateControllerTest; | 216 friend class test::LockStateControllerTest; |
212 | 217 |
213 struct UnlockedStateProperties { | 218 struct UnlockedStateProperties { |
214 bool background_is_hidden; | 219 bool background_is_hidden; |
215 }; | 220 }; |
216 | 221 |
217 // Reverts the pre-lock animation, reports the error. | 222 // Reverts the pre-lock animation, reports the error. |
218 void OnLockFailTimeout(); | 223 void OnLockFailTimeout(); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 void PostLockAnimationFinished(); | 264 void PostLockAnimationFinished(); |
260 void UnlockAnimationAfterUIDestroyedFinished(); | 265 void UnlockAnimationAfterUIDestroyedFinished(); |
261 | 266 |
262 // Stores properties of UI that have to be temporarily modified while locking. | 267 // Stores properties of UI that have to be temporarily modified while locking. |
263 void StoreUnlockedProperties(); | 268 void StoreUnlockedProperties(); |
264 void RestoreUnlockedProperties(); | 269 void RestoreUnlockedProperties(); |
265 | 270 |
266 // Fades in background layer with |speed| if it was hidden in unlocked state. | 271 // Fades in background layer with |speed| if it was hidden in unlocked state. |
267 void AnimateBackgroundAppearanceIfNecessary( | 272 void AnimateBackgroundAppearanceIfNecessary( |
268 ash::SessionStateAnimator::AnimationSpeed speed, | 273 ash::SessionStateAnimator::AnimationSpeed speed, |
269 ui::LayerAnimationObserver* observer); | 274 SessionStateAnimator::AnimationSequence* animation_sequence); |
270 | 275 |
271 // Fades out background layer with |speed| if it was hidden in unlocked state. | 276 // Fades out background layer with |speed| if it was hidden in unlocked state. |
272 void AnimateBackgroundHidingIfNecessary( | 277 void AnimateBackgroundHidingIfNecessary( |
273 ash::SessionStateAnimator::AnimationSpeed speed, | 278 ash::SessionStateAnimator::AnimationSpeed speed, |
274 ui::LayerAnimationObserver* observer); | 279 SessionStateAnimator::AnimationSequence* animation_sequence); |
275 | 280 |
276 scoped_ptr<SessionStateAnimator> animator_; | 281 scoped_ptr<SessionStateAnimator> animator_; |
277 | 282 |
278 scoped_ptr<LockStateControllerDelegate> delegate_; | 283 scoped_ptr<LockStateControllerDelegate> delegate_; |
279 | 284 |
280 ObserverList<LockStateObserver> observers_; | 285 ObserverList<LockStateObserver> observers_; |
281 | 286 |
282 // The current login status, or original login status from before we locked. | 287 // The current login status, or original login status from before we locked. |
283 user::LoginStatus login_status_; | 288 user::LoginStatus login_status_; |
284 | 289 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 base::Closure lock_screen_displayed_callback_; | 326 base::Closure lock_screen_displayed_callback_; |
322 | 327 |
323 base::WeakPtrFactory<LockStateController> weak_ptr_factory_; | 328 base::WeakPtrFactory<LockStateController> weak_ptr_factory_; |
324 | 329 |
325 DISALLOW_COPY_AND_ASSIGN(LockStateController); | 330 DISALLOW_COPY_AND_ASSIGN(LockStateController); |
326 }; | 331 }; |
327 | 332 |
328 } // namespace ash | 333 } // namespace ash |
329 | 334 |
330 #endif // ASH_WM_LOCK_STATE_CONTROLLER_H_ | 335 #endif // ASH_WM_LOCK_STATE_CONTROLLER_H_ |
OLD | NEW |