- calculateTaskSize now returns the Rect for focused task
- Introduced calculateGridTaskSize for non-focused task, and translate non-focused tasks to fit the grid
- As Task Rect is now vertically centered, removed ClearAllButton's grid vertical translation
- When ClearAllButton is not shown (e.g. quickswitch), make sure ClearAllButton's scroll won't be used when page snapping. This happens when page scrolls are translated so they're negative.
- Added back ActionsView when task is focused below the TaskView, which become invisible as you scroll
- In Modal state, move the ActionsView down so it won't cover the TaskView
Bug: 175939487
Test: manual
Change-Id: Idfa94a51f856418adc0503cf04211dcb4b1814fe
Previously we were setting the incorrect thumbnail when
swiping to overview, then taking a task screenshot right
when the animation ends and replacing the first thumbnail.
This sometimes caused a flicker of the old thumbnail, now
we avoid setting the thumbnail at all for the taskview that
is being swiped up.
Another edge case handled here is when switching nav modes
and then immediately entering overview, Recents receives an
onConfigChange for changing task icon size. That would cause
all taskviews to null out both their existing icon and
thumbnail, now only the icon gets nulled out.
Existing issue where switching to 3 button nav and then
entering overview shows blank icon, doesn't register for
receiving the updated task snapshot fast enough.
Fixes: 179307265
Test: Ask assistant for weather, swipe to overview
Ask assistant for time, swipe to overview, no flicker
Switch nav modes to gesture, swipe to overview.
There's a flicker for config change, but thumbnail is correct
Change-Id: I300b29f999f6d6876f82bc0189b44f4c10ae33fe
TODO:
* Extract out common elements in TaskShortcutFactory.MultiWindowFactory
for commonalities between new and old way of
invoking split screen
* Integrate with WM APIs (b/182002789)
* Write tests for SplitSelectStateController
Bug: 181704764
Change-Id: Ice35adb4ea82897f5e2433dc9b93a549f3d511b5
- Introduced gridProgress to RecentsView/TaskView ofr animating into grid
- Introduced gridProgress dependant translation and scale properties in TaskView
- Animate running task into grid with TaskViewSimulator
- Remove overview actions (for now) but keep clear all button in large screens
- Adjust ClearAllButton translation to acoomodate for grid
- Use screen width +-50% to calculate task visibility
- Use the position where TaskView is on screenEnd as pageScroll
- TODO: Handle separate recents activity
Doc: go/foldables-launcher-overview
Video: http://dr/file/d/107Aydii1LoFCwP63nWG3Twr2PBDE5ZgD/view?resourcekey=0-aUjdnx8ezimS9tmAgao9ag
Test: Test Launchering overview and launching overview from apps with folloiwng combination:
- large / small screen sizes
- portrait / landscape
- thumbnails from different screen sizes / orientations
Bug: 174464863
Fixes: 181509346
Change-Id: I4b691cde774f2e37532b68ba83c6eed399f2332e
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
Use same interpolator for scale and translationY so that they feel more
coordinated. (They were already the same in all cases except when
scrubbing when already in overview, which never had a scale component
before.)
Bug: 80139193
Change-Id: Id143b5cc9279d55aaa1b0444db5fe4b41ce92170
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
- Change durations/interpolators when starting from home vs an app
- Increase dim animation duration after quick scrub from an app
- Also fixed contention between setting dim alpha for the animation
and setting dim alpha for scrolling
Change-Id: I2c9ea52d4eafaad8954f3ff9d3c0c459a07953bc
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
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
It’s an initial implementation, i.e. no fancy effects.
It shares a parent (LauncherRecentsViewContainer) with RecentsView.
The button is centered in clear_all_button_container, which gets
positioned programmatically to the right of the last task. (RTL polish
will be a separate CL as well).
Bug: 72222505
Change-Id: Ia912908a93a30c2f51450ccf0f97c7495e7916d5
Test: Manual
As you swipe up to overview from home, workspace scales down and fades out as before,
and now recents scales down from 1.2f on top of it. The interpolators are set such
that the workspace animation is seen before the recents animation. Also, we don't
scale down all of recents, only the visible pages (current and adjacent).
Change-Id: I5f8bfe8cafeaa41d26873c63549735d7bdff2bce
Moving the content instead of translating the view. This ensures
that the empty message fades in place while the other content come-in
from the side.
Change-Id: I081d2e21206de24ad530814cb6a8ca7c3e293724
> Removing hotseat from overview in transposed layout
> Removing face scrim from recents view in transposed layout
> Removing focued background from pagesView as individual poges have focus states
Change-Id: I620527241bf7240009c4187f53f5a5cff0c3e2b1
- Hide hotseat and center recents vertically during quick scrub
- Don't animate the state change if launcher wasn't already visible, but still
wait until the window animation completes before scrubbing past the next app
- Change interpolator of window as it scales offscreen during quick scrub, so that
it gets out of the way faster and you can see the motion of the next app taking
its place
- Remove haptic when snapping to task when quick scrub starts (there's already a
haptic from the home button)
Bug: 70180755
Change-Id: I83f25bc8b791da0676c13fd62698e1f486dc016f
> 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
Also make sure to reset it when setting the state without animation,
otherwise it's possible for recents to stay translated offscreen
when it's not being animated back (e.g. when swiping up after
launching an app from all apps).
Bug: 74602990
Change-Id: Ib0596c84cfb67242f436f9aba8af53556d5ca743
Swipe to dismiss animates the page translation so that the
final position at the endof swipe is same as the final position
on removing the task view.
Change-Id: I393acd5ae75cd94797bb4f1aa3dd3ec9017cbb47
> Refactoring RecentsView to a common base class
> Moving some dependency form Launcher to BaseActivity
> Using the Recents view in RecentsActivity
Change-Id: Ie0e6741d356291e77420798c140c999121de3a0d
- Re-enabling the high res thumbnail loader, ensuring that we clean up
the visible recent tasks when the associated views are removed
- When the recents state is re-entered, we will trigger the loading of
the data anew (which will usually just fetch data from the existing
cache if launcher was not stopped)
Bug: 74537246
Change-Id: I9cd69015461e1de34b4b65faeb9adb8aebd1dd3d
Swiping up for recents scales down workspace and hides it, similar to the transition
to all apps. Simultaneously, recents slides in from the side.
Also removed the setting for swiping to the first task, as it is required now.
Change-Id: Id0845db6650a37917a4faa9c8a434a2270913904
We can delete a lot of code now that recents isn't curved and
workspace doesn't offset.
Bug: 70179222
Change-Id: I01f7e3c313cdc370a8db5251a5d9fb406c1eb76c
Consider these steps:
- Swipe up for recents
- Scroll over several cards
- Swipe up for all apps
- Press home
Before this change, there was a delay as recents scrolled back to
the workspace card before going home, even though it wasn't visible.
Change-Id: I1c0edc8e02d1d1d236f47882695903e33e6b09ae
- Scale up adjacent recent tasks and translate away from center
- Workspace card instead recenters in the screen
- Translate hotseat offscreen
Clicking on one of the adjacent tasks will scale it up to the
center of the screen while the center and other adjacent task
parallax to the right beneath it.
Change-Id: If96eec987c100458b8444a6cd698ec7bf6e6ba6b
When animating the wrospace, we skip the properties if for start and end are same.
But after creating the animation, if the property changes, the final property is
never applied.
Bug: 72257542
Change-Id: Id408c7820476273958e835ae99a3a934ad5a4700
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