Added new SpringObjectAnimator class that wraps an ObjectAnimator so the
Object can be controlled via the Animator or via a SpringAnimation. It extends
ValueAnimator so that it remains compatible with AnimatorPlaybackController.
Code is behind feature flag toggle QUICKSTEP_SPRINGS.
Bug: 111698021
Change-Id: I1b20179ede37e89a6a6bb2a45d407cc74c99ac4e
When a user created a work profile and was already in the All Apps
view, the work tab was not highlighted, because the logic for that
was only in AllAppsContainerView#onScrollUpEnd(). This CL
highlights the tab when the user has resumed and the All Apps view
is expanded.
Bug: 79242814
Test: Manual
Change-Id: I40af0d513c95f8084e21f4e276e9f56bcb06555e
- All apps content fades in quickly so that icons are opaque by the time
they are on screen
- Recents fades out late so that we don't see it as translucent while
the transition is continuing (the translucent icon top of tranclucent
task view looks bad, for instance)
- Fix colored scrim that appears over recents - was using 0 to 1 instead
of 255
Bug: 79867407
Change-Id: I4f50423157f7870c8d0708f586a72e3e5a7b6559
> Hiding the caret in fast overview state
> Hiding caret in task swipe down interaction
Bug: 79700605
Change-Id: I984d535bc75802501e8aeb13c8f37387f331e5bc
Add BackButtonAlphaHandler to set back button alpha, instead of setting
it from multiple places.
Also force back button alpha to be 1 if swipe up is disabled (b/80091187)
Change-Id: I49b63a0e6b033a3a947a847669a398f1b9ff0564
Back button changes opacity when moving the shelf during swipe up
between home screen and overview. The alpha changes depending on the
progress of the swipe up animation. When going from app to home and vice
versa, the fade animation does not tie with the swipe up progress. The
fade animation also masks the back button drawable when ime visibility
changes.
Change-Id: I51e42930640ba711e81880b385bb722d7ee8ad33
Fixes: 74581837
Fixes: 76900236
Test: swipe up from home screen to overview
When we enter overview (overview appears, workspace disappears):
- Workspace scales down from 1f to .8f with OvershootInterpolator(1.2f) at 200 ms
- Workspace fades from 1f to 0 with OvershootInterpolator(1.2f) at 200 ms
- Overview scales down from 1.33f to 1f with OvershootInterpolator(1.2f) at 200 ms
- Overview fades from 0 to 1f with OvershootInterpolator(1.2f) at 200 ms
When we exit overview (overview disappears, workspace appears):
- Workspace scales up from .92f to .1f with DecelerateInterpolator() at 200 ms
- Workspace fades from 0 to 1f with AccelerateInterpolator() at 200 ms
- Overview scales up from 1f to 1.1f with AccelerateInterpolator() at 180ms
- Overview fades from 1f to 0 with DecelerateInterpolator(1.7f) at 200 ms
Parallax while the finger moves: Workspace translates half the distance as the shelf
Bug: 79776746
Change-Id: I319d982cf202bcd6dbbcd68ffc5c0c7853629c7e
> Caret is only visible when the accessibility is enabled
> It is visible in NOTMAL and OVERVIEW state and moves out of the
scrim along with the scrim.
> Acts as an accessible target for various options
Bug: 78172350
Bug: 79215734
Change-Id: I8a968b67e36901859649546295f6491d49cc9ce9
State handlers can now specify atomic and non-atomic components of
their animations to states, which can be specified when creating a
new animation. There is now one atomic animation, when going from
NORMAL to OVERVIEW (and in reverse):
- RecentsViewStateController's animation (scale/alpha) is all atomic
- WorkspaceStateTransitionAnimation has atomic and non-atomic:
- Hotseat and workspace alpha is atomic, as is workspace scale
- Everything else (scrim, translation, qsb and drag handle alpha) is
non-atomic
- All apps progress is non-atomic
Also simplified dragging through overview; no longer pulls against you,
so we use an OvershootInterpolator when flinging instead of our custom
interpolator for the spring effect.
Bug: 76449024
Bug: 78089840
Change-Id: Iafac84d0c2b99ee9cf9dd5b30e2218286713b449
> Converting the scrim to View, to better avoid overdraw
> Overview and Spring loaded state have different scrim alpha
> When going from overview to all-apps, there is a color scrim drawn over the overview panel.
The slef color is merged with this color to prevent overdraw, and the remaining screen is drawn
with a cut-out round rect path
Bug: 79111591
Change-Id: I26801fde13dd6adb4b06110bbe8087e35cc31847
Previously, user-controlled animations weren't properly being canceled when a
non-user-controlled animation started, e.g. when hitting home. Thus, we could
end in the wrong or inconsistent state because the user-controlled animation's
end runnable was still used. Now we add a cleanup callback for when we reset
the user-controlled animation for one that isn't user-controlled.
Also fixed a couple typos.
Tests (easier with animation durations extended):
- Swipe up and hit home before reaching overview -> land on home
- Go to overview, swipe down slightly (before threshold to go to workspace)
and let go -> return to overview without flash (recents was resetting)
- Swipe up, press home while swiping -> goes home, stops responding to drag
- Start dismissing task and hit home before it finishes (or while dragging)
-> goes home, stops responding to drag
Bug: 78249220
Change-Id: If11d8999e3fadba38c987b25af67cd2304cd859b
State UI is based on scroll range, which is applied on insets change.
So the scroll range should be updated as part of insets change, for the State
UI to be applied properly
Bug: 77220795
Change-Id: I839f89e4887d9731b1483135724227c4245a00a9
> Increasing the distance to travel for the first swipe
> Adding support for custom interpolators when building an animation
> When quickly swiping twice from home, finished the first animation
Change-Id: Ibc3c8667e9b927376fd99f08f0ca027f2398914b
> Instead of views, using a custom class to draw the color scrims
> All-apps has full screen UI
> Quickstep does not have search box in landscape
Bug: 73085356
Change-Id: I360a78a2ade0134daad29fe712796cd39a381fbb
> Adding a listener for device profile changes
> Updating various controllers instead of recreating them
> Clearing all-apps icon
Bug: 71709920
Change-Id: Ief7db199eb7494ebd8fb433198f333cd2e8e661d
> Hotseat is tied to navbar (on left in seascape)
> Search box shows up in Overview (clicking it would crash for now)
> All-apps is no longer fullscreen in landscape
> Recents cards are appropriately scaled down
> Hotseat is visible in Overview
Bug: 70179916
Change-Id: I53149eaeac9557e8a01021b7e2d139f3d6ceef37
View layer was only being used when fading in/out hotseat in overview.
From API 21+, android automatically create layers when animating alpha
The current support for view layers does not work properly when cancelling
animations and controlling partial animations
Change-Id: I2d5785471af9819575beefe65f1f2bdd28c76bd5
> Using workspace scale and translation for all-apps
> Without quickstep, workspace has the parallex effect as before
> With quickstep, workspace scales down to match the recents card width
> Using a single animator for recents views in case of state transtion and
controlled transition to prevent going into inconsistant state.
Change-Id: I1864de6892052ca771f4d0062e3d60c28840a72d
> Creating ShareHandlers for managing UI
> In normal build, hotseat is hidden in overview, while in QuickStepBuild, it is visible
Change-Id: I5f8d35c75b861d912d93fce186b5dd74106184c3
> Separating all-apps transtions control and vertical shift touch handling
> Creating separate spring handler for search box (to avoid adding and removing spring)
> Driving all-apps vertical shift using state AnimatorSet
Bug: 67678570
Change-Id: I3b6a4d1f43275a5f485b399444742b6b9a8c4bb9
> Both landscape and portrait UI will show a static drag handle
> In landscape the handle is drawn below the all-apps scrim,
while in portrait it moves with the hotseat
Change-Id: Ia6964c6f98feb8ba90517e23667d8c68bc2f6d35
- When swipe happens on worskpace, elapsed container ms is reset
- Fling DOWN is also logged so that we now know how much time was spent on
all apps screen
- If screen off or power button trigger onPause, log this event.
Bug: 67745115
Change-Id: Ie3a0090c78195a4a028de9935131e9e034dcf48a
> Removing Widgets and related states
> Fixing different durations being used when opening/closing all-apps
> Removing some unnecessary object allocations when changing state without animation
> Differentiating widget bootm sheel and full sheet in logs
Bug: 67678570
Change-Id: Ic169528736d04ee0b38564b4f96595ba066eabda
> The widget panel is only inflated when needed
> Using the swipe up/down interaction for widgets tray
> Removing additional view wrappers from all-apps
> Widget tray is preserved across activity recreation
> Launcher no longer has WIDGET state, the actual code around
the states will be removed in a follow-up cl
Bug: 67678570
Bug: 67585158
Change-Id: Ia29a7c33ec81e6c53cc24e2906b7022b6f41755b