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

Side by Side Diff: ash/wm/lock_state_controller.cc

Issue 224113005: Eliminate ash::internal namespace (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 | « ash/wm/lock_state_controller.h ('k') | ash/wm/lock_state_controller_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "ash/wm/lock_state_controller.h" 5 #include "ash/wm/lock_state_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "ash/accessibility_delegate.h" 9 #include "ash/accessibility_delegate.h"
10 #include "ash/ash_switches.h" 10 #include "ash/ash_switches.h"
(...skipping 23 matching lines...) Expand all
34 34
35 namespace ash { 35 namespace ash {
36 36
37 namespace { 37 namespace {
38 38
39 const int kMaxShutdownSoundDurationMs = 1500; 39 const int kMaxShutdownSoundDurationMs = 1500;
40 40
41 aura::Window* GetBackground() { 41 aura::Window* GetBackground() {
42 aura::Window* root_window = Shell::GetPrimaryRootWindow(); 42 aura::Window* root_window = Shell::GetPrimaryRootWindow();
43 return Shell::GetContainer(root_window, 43 return Shell::GetContainer(root_window,
44 internal::kShellWindowId_DesktopBackgroundContainer); 44 kShellWindowId_DesktopBackgroundContainer);
45 } 45 }
46 46
47 bool IsBackgroundHidden() { 47 bool IsBackgroundHidden() {
48 return !GetBackground()->IsVisible(); 48 return !GetBackground()->IsVisible();
49 } 49 }
50 50
51 void ShowBackground() { 51 void ShowBackground() {
52 ui::ScopedLayerAnimationSettings settings( 52 ui::ScopedLayerAnimationSettings settings(
53 GetBackground()->layer()->GetAnimator()); 53 GetBackground()->layer()->GetAnimator());
54 settings.SetTransitionDuration(base::TimeDelta()); 54 settings.SetTransitionDuration(base::TimeDelta());
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 const int LockStateController::kShutdownRequestDelayMs = 50; 154 const int LockStateController::kShutdownRequestDelayMs = 50;
155 155
156 LockStateController::TestApi::TestApi(LockStateController* controller) 156 LockStateController::TestApi::TestApi(LockStateController* controller)
157 : controller_(controller) { 157 : controller_(controller) {
158 } 158 }
159 159
160 LockStateController::TestApi::~TestApi() { 160 LockStateController::TestApi::~TestApi() {
161 } 161 }
162 162
163 LockStateController::LockStateController() 163 LockStateController::LockStateController()
164 : animator_(new internal::SessionStateAnimator()), 164 : animator_(new SessionStateAnimator()),
165 login_status_(user::LOGGED_IN_NONE), 165 login_status_(user::LOGGED_IN_NONE),
166 system_is_locked_(false), 166 system_is_locked_(false),
167 shutting_down_(false), 167 shutting_down_(false),
168 shutdown_after_lock_(false), 168 shutdown_after_lock_(false),
169 animating_lock_(false), 169 animating_lock_(false),
170 can_cancel_lock_animation_(false), 170 can_cancel_lock_animation_(false),
171 weak_ptr_factory_(this) { 171 weak_ptr_factory_(this) {
172 Shell::GetPrimaryRootWindow()->GetHost()->AddObserver(this); 172 Shell::GetPrimaryRootWindow()->GetHost()->AddObserver(this);
173 } 173 }
174 174
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 if (lock_to_shutdown_timer_.IsRunning()) { 244 if (lock_to_shutdown_timer_.IsRunning()) {
245 lock_to_shutdown_timer_.Stop(); 245 lock_to_shutdown_timer_.Stop();
246 return; 246 return;
247 } 247 }
248 if (shutdown_after_lock_) { 248 if (shutdown_after_lock_) {
249 shutdown_after_lock_ = false; 249 shutdown_after_lock_ = false;
250 return; 250 return;
251 } 251 }
252 252
253 animator_->StartGlobalAnimation( 253 animator_->StartGlobalAnimation(
254 internal::SessionStateAnimator::ANIMATION_UNDO_GRAYSCALE_BRIGHTNESS, 254 SessionStateAnimator::ANIMATION_UNDO_GRAYSCALE_BRIGHTNESS,
255 internal::SessionStateAnimator::ANIMATION_SPEED_REVERT_SHUTDOWN); 255 SessionStateAnimator::ANIMATION_SPEED_REVERT_SHUTDOWN);
256 pre_shutdown_timer_.Stop(); 256 pre_shutdown_timer_.Stop();
257 } 257 }
258 258
259 void LockStateController::OnStartingLock() { 259 void LockStateController::OnStartingLock() {
260 if (shutting_down_ || system_is_locked_) 260 if (shutting_down_ || system_is_locked_)
261 return; 261 return;
262 if (animating_lock_) 262 if (animating_lock_)
263 return; 263 return;
264 StartImmediatePreLockAnimation(false /* request_lock_on_completion */); 264 StartImmediatePreLockAnimation(false /* request_lock_on_completion */);
265 } 265 }
266 266
267 void LockStateController::RequestShutdown() { 267 void LockStateController::RequestShutdown() {
268 if (shutting_down_) 268 if (shutting_down_)
269 return; 269 return;
270 270
271 shutting_down_ = true; 271 shutting_down_ = true;
272 272
273 Shell* shell = ash::Shell::GetInstance(); 273 Shell* shell = ash::Shell::GetInstance();
274 shell->cursor_manager()->HideCursor(); 274 shell->cursor_manager()->HideCursor();
275 shell->cursor_manager()->LockCursor(); 275 shell->cursor_manager()->LockCursor();
276 276
277 animator_->StartGlobalAnimation( 277 animator_->StartGlobalAnimation(
278 internal::SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS, 278 SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS,
279 internal::SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN); 279 SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN);
280 StartRealShutdownTimer(true); 280 StartRealShutdownTimer(true);
281 } 281 }
282 282
283 void LockStateController::OnLockScreenHide( 283 void LockStateController::OnLockScreenHide(
284 base::Callback<void(void)>& callback) { 284 base::Callback<void(void)>& callback) {
285 StartUnlockAnimationBeforeUIDestroyed(callback); 285 StartUnlockAnimationBeforeUIDestroyed(callback);
286 } 286 }
287 287
288 void LockStateController::SetLockScreenDisplayedCallback( 288 void LockStateController::SetLockScreenDisplayedCallback(
289 const base::Closure& callback) { 289 const base::Closure& callback) {
(...skipping 14 matching lines...) Expand all
304 304
305 void LockStateController::OnAppTerminating() { 305 void LockStateController::OnAppTerminating() {
306 // If we hear that Chrome is exiting but didn't request it ourselves, all we 306 // If we hear that Chrome is exiting but didn't request it ourselves, all we
307 // can really hope for is that we'll have time to clear the screen. 307 // can really hope for is that we'll have time to clear the screen.
308 // This is also the case when the user signs off. 308 // This is also the case when the user signs off.
309 if (!shutting_down_) { 309 if (!shutting_down_) {
310 shutting_down_ = true; 310 shutting_down_ = true;
311 Shell* shell = ash::Shell::GetInstance(); 311 Shell* shell = ash::Shell::GetInstance();
312 shell->cursor_manager()->HideCursor(); 312 shell->cursor_manager()->HideCursor();
313 shell->cursor_manager()->LockCursor(); 313 shell->cursor_manager()->LockCursor();
314 animator_->StartAnimation( 314 animator_->StartAnimation(SessionStateAnimator::kAllContainersMask,
315 internal::SessionStateAnimator::kAllContainersMask, 315 SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY,
316 internal::SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY, 316 SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE);
317 internal::SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE);
318 } 317 }
319 } 318 }
320 319
321 void LockStateController::OnLockStateChanged(bool locked) { 320 void LockStateController::OnLockStateChanged(bool locked) {
322 VLOG(1) << "OnLockStateChanged " << locked; 321 VLOG(1) << "OnLockStateChanged " << locked;
323 if (shutting_down_ || (system_is_locked_ == locked)) 322 if (shutting_down_ || (system_is_locked_ == locked))
324 return; 323 return;
325 324
326 system_is_locked_ = locked; 325 system_is_locked_ = locked;
327 326
(...skipping 22 matching lines...) Expand all
350 349
351 void LockStateController::OnLockToShutdownTimeout() { 350 void LockStateController::OnLockToShutdownTimeout() {
352 DCHECK(system_is_locked_); 351 DCHECK(system_is_locked_);
353 StartCancellableShutdownAnimation(); 352 StartCancellableShutdownAnimation();
354 } 353 }
355 354
356 void LockStateController::StartPreShutdownAnimationTimer() { 355 void LockStateController::StartPreShutdownAnimationTimer() {
357 pre_shutdown_timer_.Stop(); 356 pre_shutdown_timer_.Stop();
358 pre_shutdown_timer_.Start( 357 pre_shutdown_timer_.Start(
359 FROM_HERE, 358 FROM_HERE,
360 animator_-> 359 animator_->GetDuration(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN),
361 GetDuration(internal::SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN),
362 this, 360 this,
363 &LockStateController::OnPreShutdownAnimationTimeout); 361 &LockStateController::OnPreShutdownAnimationTimeout);
364 } 362 }
365 363
366 void LockStateController::OnPreShutdownAnimationTimeout() { 364 void LockStateController::OnPreShutdownAnimationTimeout() {
367 VLOG(1) << "OnPreShutdownAnimationTimeout"; 365 VLOG(1) << "OnPreShutdownAnimationTimeout";
368 shutting_down_ = true; 366 shutting_down_ = true;
369 367
370 Shell* shell = ash::Shell::GetInstance(); 368 Shell* shell = ash::Shell::GetInstance();
371 shell->cursor_manager()->HideCursor(); 369 shell->cursor_manager()->HideCursor();
372 370
373 StartRealShutdownTimer(false); 371 StartRealShutdownTimer(false);
374 } 372 }
375 373
376 void LockStateController::StartRealShutdownTimer(bool with_animation_time) { 374 void LockStateController::StartRealShutdownTimer(bool with_animation_time) {
377 base::TimeDelta duration = 375 base::TimeDelta duration =
378 base::TimeDelta::FromMilliseconds(kShutdownRequestDelayMs); 376 base::TimeDelta::FromMilliseconds(kShutdownRequestDelayMs);
379 if (with_animation_time) { 377 if (with_animation_time) {
380 duration += animator_->GetDuration( 378 duration +=
381 internal::SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN); 379 animator_->GetDuration(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN);
382 } 380 }
383 381
384 #if defined(OS_CHROMEOS) 382 #if defined(OS_CHROMEOS)
385 const AccessibilityDelegate* const delegate = 383 const AccessibilityDelegate* const delegate =
386 Shell::GetInstance()->accessibility_delegate(); 384 Shell::GetInstance()->accessibility_delegate();
387 base::TimeDelta sound_duration = delegate->PlayShutdownSound(); 385 base::TimeDelta sound_duration = delegate->PlayShutdownSound();
388 sound_duration = 386 sound_duration =
389 std::min(sound_duration, 387 std::min(sound_duration,
390 base::TimeDelta::FromMilliseconds(kMaxShutdownSoundDurationMs)); 388 base::TimeDelta::FromMilliseconds(kMaxShutdownSoundDurationMs));
391 duration = std::max(duration, sound_duration); 389 duration = std::max(duration, sound_duration);
(...skipping 19 matching lines...) Expand all
411 UMA_ACCEL_SHUT_DOWN_POWER_BUTTON); 409 UMA_ACCEL_SHUT_DOWN_POWER_BUTTON);
412 delegate_->RequestShutdown(); 410 delegate_->RequestShutdown();
413 } 411 }
414 412
415 void LockStateController::StartCancellableShutdownAnimation() { 413 void LockStateController::StartCancellableShutdownAnimation() {
416 Shell* shell = ash::Shell::GetInstance(); 414 Shell* shell = ash::Shell::GetInstance();
417 // Hide cursor, but let it reappear if the mouse moves. 415 // Hide cursor, but let it reappear if the mouse moves.
418 shell->cursor_manager()->HideCursor(); 416 shell->cursor_manager()->HideCursor();
419 417
420 animator_->StartGlobalAnimation( 418 animator_->StartGlobalAnimation(
421 internal::SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS, 419 SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS,
422 internal::SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN); 420 SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN);
423 StartPreShutdownAnimationTimer(); 421 StartPreShutdownAnimationTimer();
424 } 422 }
425 423
426 void LockStateController::StartImmediatePreLockAnimation( 424 void LockStateController::StartImmediatePreLockAnimation(
427 bool request_lock_on_completion) { 425 bool request_lock_on_completion) {
428 VLOG(1) << "StartImmediatePreLockAnimation " << request_lock_on_completion; 426 VLOG(1) << "StartImmediatePreLockAnimation " << request_lock_on_completion;
429 animating_lock_ = true; 427 animating_lock_ = true;
430 StoreUnlockedProperties(); 428 StoreUnlockedProperties();
431 429
432 base::Closure next_animation_starter = 430 base::Closure next_animation_starter =
433 base::Bind(&LockStateController::PreLockAnimationFinished, 431 base::Bind(&LockStateController::PreLockAnimationFinished,
434 weak_ptr_factory_.GetWeakPtr(), 432 weak_ptr_factory_.GetWeakPtr(),
435 request_lock_on_completion); 433 request_lock_on_completion);
436 AnimationFinishedObserver* observer = 434 AnimationFinishedObserver* observer =
437 new AnimationFinishedObserver(next_animation_starter); 435 new AnimationFinishedObserver(next_animation_starter);
438 436
439 observer->Pause(); 437 observer->Pause();
440 438
441 animator_->StartAnimationWithObserver( 439 animator_->StartAnimationWithObserver(
442 internal::SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, 440 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS,
443 internal::SessionStateAnimator::ANIMATION_LIFT, 441 SessionStateAnimator::ANIMATION_LIFT,
444 internal::SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, 442 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS,
445 observer); 443 observer);
446 animator_->StartAnimationWithObserver( 444 animator_->StartAnimationWithObserver(
447 internal::SessionStateAnimator::LAUNCHER, 445 SessionStateAnimator::LAUNCHER,
448 internal::SessionStateAnimator::ANIMATION_FADE_OUT, 446 SessionStateAnimator::ANIMATION_FADE_OUT,
449 internal::SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, 447 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS,
450 observer); 448 observer);
451 // Hide the screen locker containers so we can raise them later. 449 // Hide the screen locker containers so we can raise them later.
452 animator_->StartAnimation( 450 animator_->StartAnimation(SessionStateAnimator::LOCK_SCREEN_CONTAINERS,
453 internal::SessionStateAnimator::LOCK_SCREEN_CONTAINERS, 451 SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY,
454 internal::SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY, 452 SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE);
455 internal::SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE);
456 AnimateBackgroundAppearanceIfNecessary( 453 AnimateBackgroundAppearanceIfNecessary(
457 internal::SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, 454 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, observer);
458 observer);
459 455
460 observer->Unpause(); 456 observer->Unpause();
461 457
462 DispatchCancelMode(); 458 DispatchCancelMode();
463 FOR_EACH_OBSERVER(LockStateObserver, observers_, 459 FOR_EACH_OBSERVER(LockStateObserver, observers_,
464 OnLockStateEvent(LockStateObserver::EVENT_LOCK_ANIMATION_STARTED)); 460 OnLockStateEvent(LockStateObserver::EVENT_LOCK_ANIMATION_STARTED));
465 } 461 }
466 462
467 void LockStateController::StartCancellablePreLockAnimation() { 463 void LockStateController::StartCancellablePreLockAnimation() {
468 animating_lock_ = true; 464 animating_lock_ = true;
469 StoreUnlockedProperties(); 465 StoreUnlockedProperties();
470 VLOG(1) << "StartCancellablePreLockAnimation"; 466 VLOG(1) << "StartCancellablePreLockAnimation";
471 base::Closure next_animation_starter = 467 base::Closure next_animation_starter =
472 base::Bind(&LockStateController::PreLockAnimationFinished, 468 base::Bind(&LockStateController::PreLockAnimationFinished,
473 weak_ptr_factory_.GetWeakPtr(), 469 weak_ptr_factory_.GetWeakPtr(),
474 true /* request_lock */); 470 true /* request_lock */);
475 AnimationFinishedObserver* observer = 471 AnimationFinishedObserver* observer =
476 new AnimationFinishedObserver(next_animation_starter); 472 new AnimationFinishedObserver(next_animation_starter);
477 473
478 observer->Pause(); 474 observer->Pause();
479 475
480 animator_->StartAnimationWithObserver( 476 animator_->StartAnimationWithObserver(
481 internal::SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, 477 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS,
482 internal::SessionStateAnimator::ANIMATION_LIFT, 478 SessionStateAnimator::ANIMATION_LIFT,
483 internal::SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, 479 SessionStateAnimator::ANIMATION_SPEED_UNDOABLE,
484 observer); 480 observer);
485 animator_->StartAnimationWithObserver( 481 animator_->StartAnimationWithObserver(
486 internal::SessionStateAnimator::LAUNCHER, 482 SessionStateAnimator::LAUNCHER,
487 internal::SessionStateAnimator::ANIMATION_FADE_OUT, 483 SessionStateAnimator::ANIMATION_FADE_OUT,
488 internal::SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, 484 SessionStateAnimator::ANIMATION_SPEED_UNDOABLE,
489 observer); 485 observer);
490 // Hide the screen locker containers so we can raise them later. 486 // Hide the screen locker containers so we can raise them later.
491 animator_->StartAnimation( 487 animator_->StartAnimation(SessionStateAnimator::LOCK_SCREEN_CONTAINERS,
492 internal::SessionStateAnimator::LOCK_SCREEN_CONTAINERS, 488 SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY,
493 internal::SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY, 489 SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE);
494 internal::SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE);
495 AnimateBackgroundAppearanceIfNecessary( 490 AnimateBackgroundAppearanceIfNecessary(
496 internal::SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, 491 SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, observer);
497 observer);
498 492
499 DispatchCancelMode(); 493 DispatchCancelMode();
500 FOR_EACH_OBSERVER(LockStateObserver, observers_, 494 FOR_EACH_OBSERVER(LockStateObserver, observers_,
501 OnLockStateEvent(LockStateObserver::EVENT_PRELOCK_ANIMATION_STARTED)); 495 OnLockStateEvent(LockStateObserver::EVENT_PRELOCK_ANIMATION_STARTED));
502 observer->Unpause(); 496 observer->Unpause();
503 } 497 }
504 498
505 void LockStateController::CancelPreLockAnimation() { 499 void LockStateController::CancelPreLockAnimation() {
506 VLOG(1) << "CancelPreLockAnimation"; 500 VLOG(1) << "CancelPreLockAnimation";
507 base::Closure next_animation_starter = 501 base::Closure next_animation_starter =
508 base::Bind(&LockStateController::LockAnimationCancelled, 502 base::Bind(&LockStateController::LockAnimationCancelled,
509 weak_ptr_factory_.GetWeakPtr()); 503 weak_ptr_factory_.GetWeakPtr());
510 AnimationFinishedObserver* observer = 504 AnimationFinishedObserver* observer =
511 new AnimationFinishedObserver(next_animation_starter); 505 new AnimationFinishedObserver(next_animation_starter);
512 506
513 observer->Pause(); 507 observer->Pause();
514 508
515 animator_->StartAnimationWithObserver( 509 animator_->StartAnimationWithObserver(
516 internal::SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, 510 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS,
517 internal::SessionStateAnimator::ANIMATION_UNDO_LIFT, 511 SessionStateAnimator::ANIMATION_UNDO_LIFT,
518 internal::SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS, 512 SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS,
519 observer); 513 observer);
520 animator_->StartAnimationWithObserver( 514 animator_->StartAnimationWithObserver(
521 internal::SessionStateAnimator::LAUNCHER, 515 SessionStateAnimator::LAUNCHER,
522 internal::SessionStateAnimator::ANIMATION_FADE_IN, 516 SessionStateAnimator::ANIMATION_FADE_IN,
523 internal::SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS, 517 SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS,
524 observer); 518 observer);
525 AnimateBackgroundHidingIfNecessary( 519 AnimateBackgroundHidingIfNecessary(
526 internal::SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS, 520 SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS, observer);
527 observer);
528 521
529 observer->Unpause(); 522 observer->Unpause();
530 } 523 }
531 524
532 void LockStateController::StartPostLockAnimation() { 525 void LockStateController::StartPostLockAnimation() {
533 VLOG(1) << "StartPostLockAnimation"; 526 VLOG(1) << "StartPostLockAnimation";
534 base::Closure next_animation_starter = 527 base::Closure next_animation_starter =
535 base::Bind(&LockStateController::PostLockAnimationFinished, 528 base::Bind(&LockStateController::PostLockAnimationFinished,
536 weak_ptr_factory_.GetWeakPtr()); 529 weak_ptr_factory_.GetWeakPtr());
537 530
538 AnimationFinishedObserver* observer = 531 AnimationFinishedObserver* observer =
539 new AnimationFinishedObserver(next_animation_starter); 532 new AnimationFinishedObserver(next_animation_starter);
540 533
541 observer->Pause(); 534 observer->Pause();
542 animator_->StartAnimationWithObserver( 535 animator_->StartAnimationWithObserver(
543 internal::SessionStateAnimator::LOCK_SCREEN_CONTAINERS, 536 SessionStateAnimator::LOCK_SCREEN_CONTAINERS,
544 internal::SessionStateAnimator::ANIMATION_RAISE_TO_SCREEN, 537 SessionStateAnimator::ANIMATION_RAISE_TO_SCREEN,
545 internal::SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, 538 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS,
546 observer); 539 observer);
547 observer->Unpause(); 540 observer->Unpause();
548 } 541 }
549 542
550 void LockStateController::StartUnlockAnimationBeforeUIDestroyed( 543 void LockStateController::StartUnlockAnimationBeforeUIDestroyed(
551 base::Closure& callback) { 544 base::Closure& callback) {
552 VLOG(1) << "StartUnlockAnimationBeforeUIDestroyed"; 545 VLOG(1) << "StartUnlockAnimationBeforeUIDestroyed";
553 animator_->StartAnimationWithCallback( 546 animator_->StartAnimationWithCallback(
554 internal::SessionStateAnimator::LOCK_SCREEN_CONTAINERS, 547 SessionStateAnimator::LOCK_SCREEN_CONTAINERS,
555 internal::SessionStateAnimator::ANIMATION_LIFT, 548 SessionStateAnimator::ANIMATION_LIFT,
556 internal::SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, 549 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS,
557 callback); 550 callback);
558 } 551 }
559 552
560 void LockStateController::StartUnlockAnimationAfterUIDestroyed() { 553 void LockStateController::StartUnlockAnimationAfterUIDestroyed() {
561 VLOG(1) << "StartUnlockAnimationAfterUIDestroyed"; 554 VLOG(1) << "StartUnlockAnimationAfterUIDestroyed";
562 base::Closure next_animation_starter = 555 base::Closure next_animation_starter =
563 base::Bind(&LockStateController::UnlockAnimationAfterUIDestroyedFinished, 556 base::Bind(&LockStateController::UnlockAnimationAfterUIDestroyedFinished,
564 weak_ptr_factory_.GetWeakPtr()); 557 weak_ptr_factory_.GetWeakPtr());
565 558
566 AnimationFinishedObserver* observer = 559 AnimationFinishedObserver* observer =
567 new AnimationFinishedObserver(next_animation_starter); 560 new AnimationFinishedObserver(next_animation_starter);
568 561
569 observer->Pause(); 562 observer->Pause();
570 563
571 animator_->StartAnimationWithObserver( 564 animator_->StartAnimationWithObserver(
572 internal::SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, 565 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS,
573 internal::SessionStateAnimator::ANIMATION_DROP, 566 SessionStateAnimator::ANIMATION_DROP,
574 internal::SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, 567 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS,
575 observer); 568 observer);
576 animator_->StartAnimationWithObserver( 569 animator_->StartAnimationWithObserver(
577 internal::SessionStateAnimator::LAUNCHER, 570 SessionStateAnimator::LAUNCHER,
578 internal::SessionStateAnimator::ANIMATION_FADE_IN, 571 SessionStateAnimator::ANIMATION_FADE_IN,
579 internal::SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, 572 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS,
580 observer); 573 observer);
581 AnimateBackgroundHidingIfNecessary( 574 AnimateBackgroundHidingIfNecessary(
582 internal::SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, 575 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, observer);
583 observer);
584 observer->Unpause(); 576 observer->Unpause();
585 } 577 }
586 578
587 void LockStateController::LockAnimationCancelled() { 579 void LockStateController::LockAnimationCancelled() {
588 can_cancel_lock_animation_ = false; 580 can_cancel_lock_animation_ = false;
589 RestoreUnlockedProperties(); 581 RestoreUnlockedProperties();
590 } 582 }
591 583
592 void LockStateController::PreLockAnimationFinished(bool request_lock) { 584 void LockStateController::PreLockAnimationFinished(bool request_lock) {
593 can_cancel_lock_animation_ = false; 585 can_cancel_lock_animation_ = false;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 RestoreUnlockedProperties(); 632 RestoreUnlockedProperties();
641 } 633 }
642 634
643 void LockStateController::StoreUnlockedProperties() { 635 void LockStateController::StoreUnlockedProperties() {
644 if (!unlocked_properties_) { 636 if (!unlocked_properties_) {
645 unlocked_properties_.reset(new UnlockedStateProperties()); 637 unlocked_properties_.reset(new UnlockedStateProperties());
646 unlocked_properties_->background_is_hidden = IsBackgroundHidden(); 638 unlocked_properties_->background_is_hidden = IsBackgroundHidden();
647 } 639 }
648 if (unlocked_properties_->background_is_hidden) { 640 if (unlocked_properties_->background_is_hidden) {
649 // Hide background so that it can be animated later. 641 // Hide background so that it can be animated later.
650 animator_->StartAnimation( 642 animator_->StartAnimation(SessionStateAnimator::DESKTOP_BACKGROUND,
651 internal::SessionStateAnimator::DESKTOP_BACKGROUND, 643 SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY,
652 internal::SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY, 644 SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE);
653 internal::SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE);
654 ShowBackground(); 645 ShowBackground();
655 } 646 }
656 } 647 }
657 648
658 void LockStateController::RestoreUnlockedProperties() { 649 void LockStateController::RestoreUnlockedProperties() {
659 if (!unlocked_properties_) 650 if (!unlocked_properties_)
660 return; 651 return;
661 if (unlocked_properties_->background_is_hidden) { 652 if (unlocked_properties_->background_is_hidden) {
662 HideBackground(); 653 HideBackground();
663 // Restore background visibility. 654 // Restore background visibility.
664 animator_->StartAnimation( 655 animator_->StartAnimation(SessionStateAnimator::DESKTOP_BACKGROUND,
665 internal::SessionStateAnimator::DESKTOP_BACKGROUND, 656 SessionStateAnimator::ANIMATION_FADE_IN,
666 internal::SessionStateAnimator::ANIMATION_FADE_IN, 657 SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE);
667 internal::SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE);
668 } 658 }
669 unlocked_properties_.reset(); 659 unlocked_properties_.reset();
670 } 660 }
671 661
672 void LockStateController::AnimateBackgroundAppearanceIfNecessary( 662 void LockStateController::AnimateBackgroundAppearanceIfNecessary(
673 internal::SessionStateAnimator::AnimationSpeed speed, 663 SessionStateAnimator::AnimationSpeed speed,
674 ui::LayerAnimationObserver* observer) { 664 ui::LayerAnimationObserver* observer) {
675 if (unlocked_properties_.get() && 665 if (unlocked_properties_.get() &&
676 unlocked_properties_->background_is_hidden) { 666 unlocked_properties_->background_is_hidden) {
677 animator_->StartAnimationWithObserver( 667 animator_->StartAnimationWithObserver(
678 internal::SessionStateAnimator::DESKTOP_BACKGROUND, 668 SessionStateAnimator::DESKTOP_BACKGROUND,
679 internal::SessionStateAnimator::ANIMATION_FADE_IN, 669 SessionStateAnimator::ANIMATION_FADE_IN,
680 speed, 670 speed,
681 observer); 671 observer);
682 } 672 }
683 } 673 }
684 674
685 void LockStateController::AnimateBackgroundHidingIfNecessary( 675 void LockStateController::AnimateBackgroundHidingIfNecessary(
686 internal::SessionStateAnimator::AnimationSpeed speed, 676 SessionStateAnimator::AnimationSpeed speed,
687 ui::LayerAnimationObserver* observer) { 677 ui::LayerAnimationObserver* observer) {
688 if (unlocked_properties_.get() && 678 if (unlocked_properties_.get() &&
689 unlocked_properties_->background_is_hidden) { 679 unlocked_properties_->background_is_hidden) {
690 animator_->StartAnimationWithObserver( 680 animator_->StartAnimationWithObserver(
691 internal::SessionStateAnimator::DESKTOP_BACKGROUND, 681 SessionStateAnimator::DESKTOP_BACKGROUND,
692 internal::SessionStateAnimator::ANIMATION_FADE_OUT, 682 SessionStateAnimator::ANIMATION_FADE_OUT,
693 speed, 683 speed,
694 observer); 684 observer);
695 } 685 }
696 } 686 }
697 687
698 } // namespace ash 688 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/lock_state_controller.h ('k') | ash/wm/lock_state_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698