Instead of calculating an overall distance for tasks to translate
based on RecentsView width, calculate the distance for the tasks
to the left and right of the midpoint based on how far the first
adjacent tasks in those directions are from being offscreen.
Changes made to make "distance to offscreen" calculations possible:
- Update TaskView curve scale to reach final scale as soon as it is
completely offscreen. Before, it would reach its final scale just
shy of that point (calculations were off).
- As we update RecentsView scale, calculate how much the new scale
will push out tasks that are just offscreen.
- With both above, we can calculate the scale and position of a
TaskView such that it is just offscreen, and interpolate
between its current position and that position.
Tests:
- Task comes in immediately when quick switching from home, and
doesn't shift as you swipe directly upwards.
- When swiping far up from an app, tasks come in from all the way
offscreen, and cover distance appropriately (e.g. if you're
scrolled a bit to the right when you pause, the left adjacent
app will move faster to cover the farther distance).
- Task modalness: entering Select mode now animates adjacent tasks
at the same rate as the scaling up, because they move only the
distance needed to get offscreen (before they moved way too far
and thus seemed to be much faster than the rest of the animation).
Bug: 149934536
Change-Id: Ie3fffe0e5c304cb16e7637f058f5ce72cee40aeb
Merged-In: Ie3fffe0e5c304cb16e7637f058f5ce72cee40aeb
1. Tanslating contents of RecentsView instead of recentsView itself. When
translating, we keep the current TaskView from moving. This allows
the remoteTarget to follow an individual taskView.
2. Removing translationY in recentsView and setting the pivot instead
3. Using TaskViewSimulator for swipe handler. This allows using similar
animation creation as Launcher window animation.
Change-Id: I0b7b16c367d9d8cd8dd0ed59061e46853e2f8c83
Using PendingAnimation for animation builder.
This will allow us to easily add SpringAnimation to stateAnimation
Change-Id: I8d88489a5da6fc85747ef9be7c13858b441cd28a
This avoids the double negative we use in a few places, so should be clearer.
Also added some comments to explain what the animComponents are used for.
Change-Id: Ibd25bd12efce6553b377bbd9c0651e4f4ac3e498
AnimationBuilder and PendingAnimation have similar logic. This will
allow to unify the two classes
Change-Id: Id8c1d8a7020d132adbccdc6c80538ed6556cb75e
Makes use of there being a single instance of OverviewActionsView
rather than each Task having it's own.
Change-Id: I881121f84de99cade3cd8f07fa8510a557b28f57
- Refactor some basic scrim logic to Scrim class and have
WorkspaceAndHotseatScrim and OverviewScrim extend it
- Draw OverviewScrim under recents unless predictions are disabled, in
which case draw it under hotseat (since that is in recents)
- Remove sysui scrim (behind status bar and nav bar) when overview is
peeking
Bug: 132455160
Change-Id: Ia5d6f54582a4c5a70e3b2d4a98281567edd68519
- Added QuickSwitchState, which we animate to when swiping right
on the nav bar from NORMAL state
- Task launches when the state transition to QuickSwitchState ends
Bug: 126596417
Change-Id: Id66650401d817703fc6d044fb26a25cccbc07e11
Add AnimationComponents.ATOMIC_OVERVIEW_PEEK_COMPONENT, and rename
previous ATOMIC_COMPONENT to ATOMIC_OVERVIEW_SCALE_COMPONENT.
When SWIPE_HOME is enabled:
- Overview lives to the left of Workspace, which is encoded in
LauncherState.NORMAL.getOverviewScaleAndTranslation().
- Create atomic animation based on ATOMIC_OVERVIEW_PEEK_COMPONENT
and OVERVIEW_PEEK state when swiping and holding from home screen.
Bug: 111926330
Change-Id: Iab6dbef7238dae15b3036d4b2a026b781eee6b4b
States return ScaleAndTranslation instead of float[].
Also separate overview translate interpolator from overview scale interpolator.
Change-Id: I5e65dde3f436055ff5e7f5736f1a4b712377b9cb
This allows us to specify when a second animation will handle the overview
animation, so it doesn't conflict with existing state transitions.
Bug: 125362112
Change-Id: I497c02924862bfba558c107bee3c88a9f40ec0f1
Now that we don't have quick scrub, the only state that has a non-zero translation is all apps,
which just uses that to have a slight parallax. This is much simpler to define in terms of pixels
like other states do.
Change-Id: I108c8505d85591399256b3475f7566ff51e2c5ad
Split logic in RecentsViewStateController based off code that should be
shared and code that should not between Go icon recents and regular
quickstep recents. The Go version will maintain changes in
scale/translationY as per normal recents.
Bug: 114136250
Test: Manual test NexusLauncher, Launcher3GoQuickstep
Test: Build Launcher3GoIconRecents (no longer crashes immediately!)
Change-Id: Id060d6f8f0b68edee4becdf6b91b876bb8dbcefb