This fixes the issue where the app re-appears on top if you touch
the nav bar during the animation to home.
The sequence of events leading to this behavior is pretty long,
but actually always should have happened, it was just masked
until the ag/11172732 fix went in.
Here's an abbreviated version of what was happening
on the touch down during the animation to home:
1 Set mRecentsAnimationController#mTouchInProgress = true
2 Cancel the running animation to home
3 onSettledOnEndTarget(HOME) (this is what was missing before)
4 finishCurrentTransitionToHome(), which, due to #1, doesn't
actually finish the controller, but does run the callback
5 Invalidate the handler due to #4, leading to TIS#reset()
6 Create a new handler (still from the original touch down),
which is mResetGestureInputConsumer
7 mResetGestureInputConsumer handles touch down to finish
the controller the app
This change addresses #4. Instead of calling the callback
immediately, we defer it to when we actually finish the
controller, which ensures there's no longer premature
cleanup that leads to the rest of the sequence.
Bug: 157407284
Change-Id: I0b2ff57bfa77a25c2bf1aece4b0ae7f943637ce6
> Scaling down home activity on swipe-up from home and spring back to place on cancel
> Fading out recents on swipe-up to home, so ensure that adjecent tiles also dissapear
> Instead of controlling alpha, controlling full transform for base and home task. This allows adding custom animation for home task on swipe up.
> Removing alpha hanging for fallback activity in baseSwipeHandler. Instead controlling full transform for home activity
> Adding feature flag to use QuickstepLauncher as 3P Launcher to make development easier.
Bug: 156398988
Change-Id: I69cc59f2c9c95d15df6926ba635e7d6c251dceb6
Changing fixed rotation enabled system setting flag
should be followed by a restart of launcher for it
to take effect.
Bug: 149571513
Change-Id: I84fbb654c325076571a038604fa929984d22f254
NavBar defaults to display when quickswitch ends,
which is always portrait since home is now always
in portrait. We keep the same nav region that the
user used to swipe up to enter recents and reset once
they swipe to home.
Fixes: 156053957
Test: Swipe up from landscape app, then swipe up
from the same nav bar region to go home.
Change-Id: Ia4cf8172850b991aa5e145897622be3b2afa3779
- LAST_TASK now has recentsAttachedToAppWindow = true, to match
NEW_TASK. Though this does mean there's a small chance of
seeing recents translating in if you swipe up and back down,
this is preferable to seeing recents translate away if you
swipe right and back left in two consecutive gestures.
- Until passing the touch slop for a new gesture, keep recents
attached to the app window. This avoids cases where you
could have recents view translate away mid-gesture, such as
in the following case: swipe from A to B, swipe from B back
to A, touch down during the transition back to A. Before this
change, you would see recents translate away; with this
change, recents instead stays in place until we get another
signal indicating it should detach, such as swiping to home.
Bug: 157153404
Change-Id: I63a3a8b988af1aac5177f101b0b75e73e56b1ceb
- Move "finishRecentsAnimation" for NEW_TASK to where we actally
finish the controller after onTaskAppeared()
- Add "setEndTarget" and "onSettledOnEndTarget" logs
Bug: 156412706
Change-Id: I0a0f81d3b601fc1eed72b372235bbb92368ec246
* Added FeatureFlag.ENABLE_ALL_APPS_EDU
* When user swipes up on nav bar three times and goes to hint state
consecutively, we show the new All Apps education tutorial.
* For now we block interaction while the animation is playing,
and we remove the view when the animation is done.
* Future CL will leave view up until user successfully reaches All Apps state.
Bug: 151768994
Change-Id: I903e0a3914d0558950ecb8cd714d97ddc10ca06b
Previosuly we had a different swipe handler for 3P Launcher which
started either recents or Launcher based on the initial interaction
(horizontal or vertical). This was primarily because we had to wait
for recents transition to finish before starting another activity
which could delay going to home.
Now we always start recents transition to recentsActivity. This allows
us to use the same swipe handling logic as QuickstepLauncher. Home
activity can be started while recents transition is running and can be
controlled using onTaskAppeared callback.
Bug: 156924169
Bug: 156398988
Bug: 156295255
Change-Id: Ib9f02e0281e8d674bde2f4a81eca5fc8a5962144
With shelf hidden in 2 button landscape, need to fill
in the extra space w/ larger thumbnail.
Fixes: 156442623
Test: Larger thumbnail shows up in 2 button landscape
Change-Id: Ie2856c8d248b28ae7c06cbe40c7417a827c2bd96
Disable overview rotation in 2-Button.
Fixes: 154181816
Test: Tested no button and 2 button,
overview actions worked as before.
Change-Id: Ic22c791c7a93460840d54aaf0bf32884cc110e19
Also applying transform params in DeviceLockedInputConsumer directly
instead of going through AppWindowAnimationHelper
Bug: 156398988
Bug: 155816922
Change-Id: I791e1a9feb07c4fb787130f8d040a4f404faf734
In landscape, the lowest coordinate touch registered
is the actual lowest pixel possible by the screen.
For portrait/seascape the lowest coordinate
is (lowest pixel possible - 1). The difference of the
one pixel makes Rect#contains() return false since
only top left Rect points are inclusive and bottom
right points are exclusive.
Fixes: 156333291
Test: Always able to smoothly go to overview from
landscape.
Change-Id: I6beddad99ae076a167d2a5f5e5acc6e466bff544
- Support dismissing Compose via the reverse gesture from the appear
gesture
- Use Tony Wickham's ag/10204761 with some glue code to enable the
app below Compose panning in the same direction as the gesture as
Compose peeks in
- Add feature flag to use Compose hosted in a window (permits underlying
app panning)
- Use InterpolatingVelocityTracker to fix OtherActivityInputConsumer
processing swipes in the wrong direction ~20% of the time due to a bug
in VelocityTracker (see go/quirky-bubbles)
Change-Id: I3adbaee1763f21557fb628b60d03b0a03e7079ab
- Provide a hint to Launcher to indicate it will be resumed when
swiping home, which allows us to notify sysui before any potential
pip invocation, reducing the likelyhood of two conflicting animations
when entering pip
Bug: 156637223
Change-Id: Iae773e1aac88bbea6f74e1d1332417b448126471
Also converting BaseActivityInterface to an abstract class instead of interface
so that it can hold member variables
Change-Id: I04cab934137eb1d6f470c6a7618c50a2ed2c71c1
It will have a 30dp horizontal paddings and vertically in the middle of the screen.
Test: local
Bug: 155444014
Change-Id: I4f3d627008b2c114cc4921bf683919c6044926e4
Using horizontal padding 48dp to adjust the scale of the taskview and put it in the middle of the vertical space.
Test: local
Bug: 155444014
Change-Id: Iee6096baf18ae1106c24c83b4675abd4d3ff4d4f
Removing optional 'shouldAnimate' flag. This was false only in 3-button mode but
the code was also handling animation, leading to inconsistent expectations. Instead
always assuming animation and finishing the animation promptly.
Change-Id: Ic56476dc5ea64c9a7d7e9744f3e33cd61dfde9e8
If we just finish the controller to resume the running task like
we normally would, the delayed task will appear on top when it's
ready. Instead, we need to start the original task in this case.
- Move mLastStartedTaskId to GestureState, shared between swipe
handlers when continuing the gesture.
- Update logic to change LAST_TASK to NEW_TASK if a task was
started (but not appeared) during the same gesture; likewise,
only change NEW_TASK to LAST_TASK if no task was started.
- Finish the controller when successfully starting the task
that already appeared, since we won't get onTaskAppeared().
Bug: 156132424
Change-Id: I1e9af297840745ab3d5e90214425f10a2616d90a
Currently it just crashes, so it shouldn't be there. If
and when we decide to add it back, we will need to get
our package whitelisted to send the necessary Intent.
Bug: 149348244
Change-Id: I5ab292d04ebc5679e34e5a92141df3d86ef6e551