The controller will be used to control the lock action app window background visibility - the background will be shown when a lock screen action handler app is launched (e.g. lock screen note taking app). The background is intended to be shown with a ink drop ripple animation, thus, in addition to hidden and shown state, the controller will support showing and hiding states - states indicating that a background ink drop animation is in progress. The background should be visible while the lock screen note action is in launching or active state.
Additionally, the lock screen action app window should not be shown until the background is fully shown (i.e. until the show animation finishes). To achieve this, lock_screen_action_background_controller exposes an observer interface for the background state. This interface can be used to observe whether the ink drop animation is in progress and manage lock action handler window visibility accordingly.
Initially, observer interface will be used only by lock_action_handler_layout manager to delay showing of lock action handler app windows until the background widget animation is done, but other observers might be added - e.g. lock screen shelf / lock screen UI to enable them to update their UI state according to the lock screen handler background state.
This cl uses stub background controller implementation (the implementation that does not show a background) - the actual implementation will be added in subsequent cls.
Change-Id: I05be806ddf35ab29b70e7754a1a47e82e5b87453 Reviewed-on: https://chromium-review.googlesource.com/689034 Commit-Queue: Toni Barzic
bbe776a Add lock screen note background controller
ash/BUILD.gn | 8 +
.../lock_screen_action_background_controller.cc | 71 ++++
.../lock_screen_action_background_controller.h | 95 ++++++
...ock_screen_action_background_controller_stub.cc | 32 ++
...lock_screen_action_background_controller_stub.h | 36 ++
.../lock_screen_action_background_observer.h | 27 ++
.../lock_screen_action_background_state.h | 61 ++++
...est_lock_screen_action_background_controller.cc | 117 +++++++
...test_lock_screen_action_background_controller.h | 62 ++++
ash/wm/lock_action_handler_layout_manager.cc | 93 ++++-
ash/wm/lock_action_handler_layout_manager.h | 26 +-
.../lock_action_handler_layout_manager_unittest.cc | 380 +++++++++++++++++----
12 files changed, 932 insertions(+), 76 deletions(-)