- The launcher state does not transition from Background -> Overview
until the overview animation finishes, and if a side task is launched
before that happens, then we receive onTaskAppeared() but
isInLiveTileMode() is false, which results in a state where no
animation of the side task surface is run, and the recents animation
is not finished. In these cases, if we've already calculated the
end target is RECENTS, then we can still animate the side task
- Adding some more gesture logs to indicate side task launched (or didn't)
Bug: 279114961
Test: Go to overview and launch next task
Change-Id: I23eac8721da801f14cc95fc6781a0ef9f0355cc0
* TopTaskTracker gets updated too late after we've exited
split screen so we can't use that to determine how many
RemoteTargetHandles to use
* We default to 2, and then scale it down to 1. Because we
modify the array holding the handles directly, it should
also get updated in AbsSwipeUpHandler
* Temporary solution to stop setting up RecentsView if we detect that
TopTaskTracker has incorrect data and re-setup when we get
onRecentsAnimationStart()
Test: Tested quickswitch in gestural and recents button
double tap in button nav.
Bug: 236226779
Flag: none
Change-Id: I1bae7aed1f8712ddd1bf496acfcb851c0e32a115
Note that this change does not fix the bug listed here. This is to
callback WMShell when the transition is aborted and WMShell can choose
how to handle this.
Bug: 283177443
Test: adb shell dumpsys activity service SystemUIService WMShell
Test: go/winscope and check the SF/WM dump
Change-Id: I8abfc2db47d1f0bfc3d400066936bed354743420
Fixed a NPE and added some null checks for mRecentsView. These NPEs can happen if the launcher is destroyed unexpectedly.
Flag: not needed
Fixes: 279738827
Test: ran launcher and tested some gestures
Change-Id: I9c32e22a13d950346ce705ba3a6f11dd3f1da87f
High level:
- As you swipe up from an app (OtherActivityInputConsumer),
a state transition animation to All Apps is created in
AnimatorControllerWithResistance. The animation is played
alongside the Recents resistance animation (i.e. past the
settling point of Overview, which is at mCurrentShift 1).
- The actual state transition to All Apps only happens if you
release your finger in the "all apps region." This is set to
mCurrentShift 2, so double the distance that Overview rests.
- A haptic plays whenever you enter or exit this region, and
the all apps animation is set to 0 until the region is
active. This is so it's clear that something different is
happening.
- The panel that was previously used for tablets is now used
for phones during this transition. It comes in at full
opacity when you enter the region, and the contents (apps
and search suggestions) fade in as you continue swiping.
- The only gesture that is recognized in the all apps region
is a fling downwards, which will return you to the previous
app. Otherwise a left/right/up fling or slow release will
finish the all apps transition.
- The threshold is ignored if the flag is disabled (default)
or if FallbackActivityInterface is active.
Flag:
The threshold is ignored if ENABLE_ALL_APPS_FROM_OVERVIEW is
disabled (default).
Bug: 259619990
Bug: 275132633
Test: Manual with and without the flag enabled
Change-Id: Ie311b77252416d97677b2c56fad61dfd392b6fe8
Since there is nothing async about it's implementation.
Test: Since it's a name change compilation is the only test needed.
Bug: 278976890
Change-Id: I0057be3c25c3ec80054d3830fe706ec8f9995ea7
Showing the animation leash of appearedTaskTargets if there need to
play the reveal animation behind splash screen view.
Pausing applyDepthAndBlur while playing splash screen exit animation
from launcher side, otherwise the app window would be blurred.
Bug: 277704255
Test: manual, do quickswitch to start the app behind splash screen
view, verify no flicker or blur happen when playing reveal animation.
Change-Id: I83604ceeaeb54ab2100fdabf45a1624644b85e37
- A bit of a degenerate case, but if a new task is received while
the user is swiping up (but not yet released), none of the usual
signals will finish the recents animation (it's not considered
being in overview so we don't launch it, it's not a quickswitch
since we haven't launched any new tasks ourselves). As a result,
nothing happens (we don't finish the animation, and the new task
is never shown to the user as a result).
Bug: 271188120
Test: Start a gesture, in parallel run:
adb shell am start -n com.android.settings/.Settings
Change-Id: I5215ee87f761c837db9f764bd5d8135e55fa0a21
Consolidate split divider show/hide behavior by hiding the divider bar
at a single point where the tasks actually start moving. So it won't
need to deal with hiding the divider before the animation targets ready.
Also prevents to hide the divider too early when users were just
unstashing the taskbar.
Fix: 261376202
Test: http://recall/-/fLARJNt42LVxc3tt86SneW/colHl9bXqOzppYV5o2Hmjh
Change-Id: I2b7b37c2b20cc379581b34c0104fa45246c27e8f
- Pass the up-to-dated app icon size from Launcher to WMShell
this is for non-auto-enter-pip cases
- For auto-enter-pip, use the DeviceProfile#allAppsIconSizePx directly
Video: http://recall/-/aaaaaabFQoRHlzixHdtY/ha3ebrRk0hAEyU8GSWBrYE
Bug: Bug: 271912318
Test: manual with 4x4 and 5x5 grid, see the video
Change-Id: Iaad26758a25c6cb3832a2da10e15c53e72de0ce5
- Focus task is only removed under ENABLE_GRID_ONLY_OVERVIEW, but many fixes/refactoring are generic and apply with the flag off
- Keep moving running task to front if go to overvied after quick switch, so live tile is always on top right
Grid calculation:
- Fixed some top/bottom calculation assumption that assume focus task is always present
Size calculation:
- With ENABLE_GRID_ONLY_OVERVIEW, taskSize == gridTaskSize, and task is aligned to top-right of gridRect (instead of focusTaskRect)
Bug: 257952455
Test: Enter overview from home
Test: Enter overview from app, with variations that quick switch and enter
Test: Dismiss task from different position
Test: Split select task from different position
Test: Repeat with/without GRID_ONLY_OVERVIEW flag
Test: Repeat with handheld
Change-Id: I6580a8ac6c2c2059c33c4daca05b7d0354513e74
trackpad
The gesture library is ported and enabled, thus we are updating our
check for motion events on trackpad.
Bug: 254783214
Test: Swipe up and hold to go to overview; swipe up to go home
Change-Id: I4b74e88c7f8b6ef86c779391b0f8064ea828ed8f
Launcher always receive recent animatino start callback before
onStageTaskChanged callback, which result to not able to identify the
correct animate targets to animate. Update to fetch animate target from
wrapped remote animation target directly.
Fix: 236226779
Test: quick in between two split pairs won't crash
Change-Id: Ic10db086256b4a1ed53e5a3becb6fa9114df74ec
When desktop windowing prototypes are enabled, disable quickswitch for
now.
Quickswitch causes issues with how tasks are moved between desktop and
fullscreen in prototype 2. We are currently doing it based on shell
transitions. And whether there are desktop tasks visible or not.
Directly switching from a fullscreen task to desktop tasks does not fit
well into this model. And supporting this is not trivial.
As quickswitch is not a core user journey right now, will disable
quickswitch for the time being.
We can revisit this at a later date, when building out the production
version.
Bug: 268075592
Test: enable proto 1, try to quickswitch from home screen and from apps
Test: enable proto 2, try to quickswitch from home screen, from
fullscreen app to desktop, fullscreen app to another fullscreen app,
from desktop to fullscreen app
Change-Id: I06b3461f0134819cfa7c9e5f61df8ed84cc90eb8
We didn't handle such case if transient bar enable and divider is
hidden by split side so it will have a delay.
Catch up it on handleNormalGestureEnd if end target is home.
Fix: 265755388
Test: manual
Test: pass existing tests
Change-Id: I09ac2a3a57c51473daf2b6887cd23bca505378f7
Bug: 261815244
Test: make sure (1) if user starts by swiping up, disable quickswitch (they will land either in overview, home, or the current app) (2) if user starts by quick switching, cancel the gesture
Change-Id: I6b59cec0089d5e6f22eee3241c6336345dd15dce
Desktop tasks are using freeform windowing mode. Update recents
animation to support freeform tasks when desktop mode feature flag is
enabled.
Changes:
- set initial size for freeform tasks to be the size of the thumbnail
instead of size of the screen
- support multiple individual remote animation targets when starting the
recents animation
TODO:
- there are flickers when starting and ending the recents animation
Bug: 263264985
Test: swipe up when more than 1 desktop task is visible
Change-Id: I27ee02774281b3a433d779c0bb8825cdb6ea5457
We will hide divider when isLikelyToStartNewTask become true, but
this call sometime earlier than onRecentsAnimationStart then cause
crash because mRecentsAnimationTargets is still null.
Fix this by checking mRecentsAnimationTargets before set divider
visibility. And also add new condition to hide divider to ensure
it hidden if such case happened.
Fix: 265238266
Test: manaul
Test: pass existing tests
Change-Id: I80b1294e69a52e7ac5255cd8e55e7c5e6a3dcbcb