Commit Graph

122 Commits

Author SHA1 Message Date
Anthony Stange 70a76a61bf Revert "Merging from ub-launcher3-master @ build 6294827"
Revert "Merging from ub-launcher3-master @ build 6294827"

Revert "Merging from ub-launcher3-master @ build 6294827"

Revert "Merging from ub-launcher3-master @ build 6294827"

Revert "Merging from ub-launcher3-master @ build 6294827"

Revert submission 10673936-merge_ub-launcher3-master_6294827

Reason for revert: b/151611270
Reverted Changes:
I38a587a1b:Merging from ub-launcher3-master @ build 6294827
I74ae8bea8:Merging from ub-launcher3-master @ build 6294827
I115742e03:Merging from ub-launcher3-master @ build 6294827
Iceb1e8523:Merging from ub-launcher3-master @ build 6294827
Ie242e3907:Merging from ub-launcher3-master @ build 6294827
I609b18fdd:Merging from ub-launcher3-master @ build 6294827

Change-Id: I96f08492cb92e2f670375269423d8b45a81312cf
2020-03-16 15:24:15 +00:00
Sunny Goyal 003782f93c Removing some properties out of AnimationBuilder
AnimationBuilder and PendingAnimation have similar logic. This will
allow to unify the two classes

Change-Id: Id8c1d8a7020d132adbccdc6c80538ed6556cb75e
2020-03-11 16:35:36 -07:00
Sunny Goyal dbcc63edeb Removing some autoboxing during property animation
Change-Id: Ibd6f20c565a4d66dc6d606b3f0bbc96fec66fe56
2020-03-10 08:43:55 +00:00
Sunny Goyal add170098c Merge "Converting some anonymous classes to lambda calls" into ub-launcher3-master 2020-03-10 08:43:41 +00:00
Sunny Goyal cfaa4889e6 Enabling springs for start dismiss animation
> Adding flag support for PendingAnimation which can be used
  to define custom behavior for various animations
> Using SpringAnimationBuild for spring animation instead of
  SpringObjectanimator

Change-Id: I41ca34b0574981bb3fc7894639a321c12e6feac1
2020-03-06 22:59:03 -08:00
Sunny Goyal 4c9ee63540 Converting some anonymous classes to lambda calls
Change-Id: I386046a4a515d84801a8bbd11cfa090ba7adfd71
2020-03-06 15:18:00 -08:00
Jon Miranda 1a3047666a Add more swipe up to home/spring variables as dynamic resources.
Bug: 147302669
Change-Id: I7a13f1eac8324d963302f5f42793478896f10097
2020-03-04 12:52:02 -08:00
Jon Miranda 2e8828bd30 Enable All Apps spring.
Bug: 147302669

Change-Id: I944ce7d181c554d840329a3affe0dee76eed9143
2020-02-03 14:03:47 -08:00
Tony Wickham 4fdba14cfb Two-zone model: swipe up from nav bar vs above it
When ENABLE_OVERVIEW_ACTIONS flag is enabled, swiping up from the nav
bar goes to overview if you hold, or the first home screen if you don't.

- Added NoButtonNavBarToOverviewTouchController, which extends
  FlingAndHoldTouchController but only works if you start from the nav
  bar. Otherwise it falls back to PortraitStatesTouchController to
  handle normal state transition to all apps.
- Added HintState. This is where the workspace/hotseat/qsb scale down
  when you swipe up from the nav bar, to hint that you're about to
  either go to overview or the first home screen.
  - Added getQsbScaleAndTranslation() to allow Overview and Hint states
    to treat it as part of the hotseat.
  - Since Overview needs to show above the QSB as it's animating, bring
    Overview to the front and update OverviewScrim to handle the case
    where there's no view above Overview to draw the scrim beneath.
- ENABLE_OVERVIEW_ACTIONS is always false in 2-button mode, since the
  shelf is crucial to that mode.

Bug: 143361609
Change-Id: I743481bb239dc77f7024dc98ba68a43534da2637
2020-01-28 18:31:10 -08:00
Tony Wickham 37a0970bf5 Improve quick switch from home by tracking both x and y motion
- Add NoButtonQuickSwitchTouchController which uses
  BothAxesSwipeDetector to track horizontal and vertical motion.
- Initially, we only detect swipe left to right to quick switch
  (like before), but then we allow swipe up to either go to
  overview (if you hold) or back home (if you don't hold).
- xDisplacement transitions non-overview components out (e.g. shelf
  and workspace), and translates overview in.
- yDisplacement translates overview up and scales it down

Bug: 126596417
Change-Id: Id679ad84c08246e205c667a78ed5df00d7276258
2019-11-14 15:50:18 -08:00
TreeHugger Robot 791dd73217 Merge "Adding support for building a "spring like animation" with precomputed values" into ub-launcher3-qt-qpr1-dev 2019-09-11 20:16:19 +00:00
Sunny Goyal 3600fb7777 Adding support for building a "spring like animation" with precomputed values
Bug: 138396187
Change-Id: Idba323090ecd9aca43c01414a32ab3b2e292e73e
2019-09-09 17:21:53 -07:00
Tony Wickham bfdeda96e6 Properly prevent All Apps relayouts by avoiding scrollToPosition
Calling scrollToPosition on RecyclerView internally calls
requestLayout() (to cacluate where to scroll and then go there).
Therefore, we should avoid calling that whenever possible, especially
during transitions. In particular, we can optimize scrollToTop() to not
scrollToPosition() if we are already at the top.

This makes some other workarounds unnecessary, namely setting All Apps
to GONE during system gestures.

Test: Open an app, swipe up, ensure AllAppsRecyclerView doesn't get
onLayout().  If we had scrolled to an app first, we get one layout
in prepareRecentsUi(), but not during the transition.

Bug: 140308849
Change-Id: I62ee341bf5893c121cfc013cc6542559f79d2a42
2019-09-03 16:16:54 -07:00
Tony Wickham 7310bb4b5c Don't update all apps content visibility during home animation
We already set the all apps content visibility = GONE at the start of
the gesture to prevent relayouts, but when animating home we were
inadvertently changing it to INVISIBLE, causing a relayout and jank.

Bug: 140308849
Change-Id: I285746f8ac8f3f857282e22ebec8eebd0b98647f
2019-08-30 22:10:55 +00:00
Tony Wickham 35a4e0eec9 Tie prediction text to all apps interpolator
Now floating headers get 2 interpolators: one for the header content
itselt, and one for the all apps content that follows. That way, they
can choose to intperolate part of their content as if it were part of
all apps instead of the header. Currently, we do this to animate
predicted icons quickly, followed by the all apps icons, predictions
text, all apps scrollbar, and all apps divider as you continue swiping.

Bug: 132455160
Change-Id: Ib3e373c291e174e1306a53854d0ad4dc29eb4b76
2019-07-31 14:45:18 -07:00
Tony Wickham c088051c29 Add OverviewScrim to show below overview but above workspace
- 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
2019-07-31 14:44:28 -07:00
Sunny Goyal 4e6c45bcd3 Using the first frame delay based on the display refresh rate instead of
hardcoding it to 16ms

> Creating a utility class for caching display property changes

Bug: 128940249
Change-Id: I6f9a214548de65bd1c8530508d665ee88312da4a
2019-07-24 10:12:37 -07:00
TreeHugger Robot 160134e0b1 Merge "Fix overshoot velocity in 2-button landscape mode" into ub-launcher3-qt-r1-dev 2019-07-16 17:38:05 +00:00
Tony 5818f9b3c5 Fix overshoot velocity in 2-button landscape mode
Now we use the velocity towards the middle of the screen
(e.g. x when in landscape) instead of always using y.

Test: testBackground with @PortraitLandscape

Bug: 135567630
Change-Id: I77ab6bdf0d556475a6c182ae91914a718a81e1c4
2019-07-12 18:02:09 -07:00
Jon Miranda 857b3fbb7e Fix bug where app icons are clipped when transitioning from app to home.
Bug: 135636137
Change-Id: Icaba06ed27b3196371730a5a4c5d3382cedc7000
2019-07-10 11:04:40 -07:00
Sunny Goyal b80941bb24 Using FloatProperty for spring animation, instead of a interface
to allow easier generalization of animation definitions

Change-Id: I37b1a604003ec007aa390eabdfe8c1ab733b7471
2019-06-19 21:31:43 -07:00
Tony Wickham 59c6901823 Some improvements to home to overview transition for 0 button mode
- Peek in overview further, and with more overshoot
- Fade out and scale down workspace faster while swiping up
- Scale and translate workspace slower when letting go to enter
  overview (so it doesn't zoom out at warp speed)
- Fade in all apps shelf sooner

Bug: 132455160
Change-Id: Ieafad0ccf9bb587889bc35d536627661db10e358
2019-06-19 14:48:57 -07:00
Jon Miranda b3c9077c76 Tuning app open/close animation.
* Mostly value changes.
* Added a way to round the corners during swipe up to home animation.

Bug: 123900446
Change-Id: Id61d241d919ba51ced0633585e36b7d93efe30b0
2019-05-30 18:43:22 -07:00
Jon Miranda c69d1ffd92 Add staggered springs animation when swiping up to home.
Bug: 123900446
Change-Id: I275e34c6dca5b026f272ab216b18651c0df27bc4
2019-05-29 14:32:49 -07:00
Jon Miranda a3c0b0aa68 Swipe up to home animation changes.
* Tracks either the top or bottom of the rect for the fling/spring in the
Y direction.
- This allows us to have the icon always animate downwards.

* Scales the spring velocity for the Y component.

Bug: 124510042
Change-Id: I47571f906c8aa1beca4dd703d67d013ab6a1161f
2019-05-13 10:58:54 -07:00
Jon Miranda 2da1da3076 Initial app open/close polish using tuned values.
* Rect and radius now match the app window size.

Bug: 124510042
Bug: 122843905
Change-Id: Ibc85bfe1d75d01cefe00b6bf32557e04a0ee4716
2019-05-10 10:11:35 -07:00
Sunny Goyal abb55950f6 Updating floating animation target if layout changes during the animation
Bug: 131360075
Change-Id: Id71e154aa59177955baa9daab00ecf11ee7d8c43
2019-05-04 11:38:47 -07:00
Tony Wickham a429fdbbe6 End window animation to home when handler invalidated
We did this already for mCurrentShift, which is used for all animations
except home animation. Now we do it for the home animation as well to
ensure we are properly cleaned up for the next interaction.

Test: Swipe up to home and double tap nav region before animation
finishes. Before, this would return to the app you swiped up from but
was in a broken state where subsequent swipes were ignored. Now we
jump to the home screen and remain there.

Bug: 130802487
Change-Id: I98a2e71a1791f5580451c94a35af98da193ff12f
2019-05-02 09:08:15 -07:00
Tony Wickham 96d065d87d Make sure overview visibilty is GONE when it stops peeking
Bug: 129711952
Change-Id: Ib33c3d360e8810e5cbf59049dd90ba28957dbe8f
2019-04-02 16:00:13 -07:00
Tony e4c2e2b86c Add QuickSwitchTouchController on home
- 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
2019-03-28 15:09:25 -05:00
Tony 1787ee9596 Peek overview on motion pause, then animate fully on touch up
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
2019-03-27 19:45:04 -05:00
Tony bc23440d73 Add translationX to overview state
States return ScaleAndTranslation instead of float[].

Also separate overview translate interpolator from overview scale interpolator.

Change-Id: I5e65dde3f436055ff5e7f5736f1a4b712377b9cb
2019-03-27 14:36:48 -05:00
Tony 9244f518f2 Add FLAG_DONT_ANIMATE_OVERVIEW to AnimatorSetBuilder
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
2019-03-27 14:21:06 -05:00
Tony Wickham 8cfe0fe091 Merge changes If11fea2d,Ia7e1eebe,Iafa89db1 into ub-launcher3-master
* changes:
  Remove redundant resumeLastTaskForQuickstep() and use resumeLastTask() directly
  Fix some state issues with home and quick switch gestures
  Apply spring forces to animate to the final position for swipe home
2019-03-20 21:37:07 +00:00
Tony cded01bea9 Fix SpringObjectAnimator not sending onAnimationEnd()
We only send onAnimationEnd() if both object animator and spring animator have
ended. However, we also initialized mSpringEnded = false to begin with, which
meant we would never send onAnimationEnd() if the spring animator was never
started. Now we treat the animators as ended until they are started.

Example test:
0: Enable SWIPE_HOME and QUICKSTEP_SPRINGS flags
1: Swipe up and hold on home to go to overview
2: Tap outside overview to go home
3. Swipe up to all apps
4. Swipe down

Expected: animates to home, not overview. Before this change, however, it went
to overview because the state manager never got onAnimationEnd() and therefore
never set the last stable state to NORMAL instead of OVERVIEW.

Change-Id: I7add42eedbc15b3a6a08ac69570da4edd57b5417
2019-03-20 12:45:54 -05:00
Tony 0d447c88b8 Apply spring forces to animate to the final position for swipe home
Now instead of an incorrect hack that simulated accelerating to the target,
we actually apply spring forces to make it feel realistic and work no matter
where the target is.

Added two helper classes for this:
- FlingSpringAnim handles the fling, applying friction until reaching the target,
  then a spring to pull towards the final position (also applies if fling wasn't
  in the right direction or strong enough to reach the target).
- RectFSpringAnim uses 2 FlingSpringAnims (x + y) to animate from a starting rect
  to a target rect. It also has an animation to scale from the start rect to the
  target rect, sending progress update callbacks to the caller.

Bug: 123900446
Change-Id: Iafa89db1d55c42816acfa9f1bb84a7519b69ff12
2019-03-15 17:38:41 -05:00
Jon Miranda aae3768c1a Fix bug where listeners didn't get dispatched properly due to it being
attached to SpringObjectAnimator instead of the ObjectAnimator.

Bug: 123597926
Change-Id: Ife09e0e2bf4309b43be531e6e863692c75ae0867
2019-01-30 13:56:55 -08:00
TreeHugger Robot b3ca6aee2c Merge "Changing min sdk to 25" into ub-launcher3-master 2019-01-29 20:43:01 +00:00
Jon Miranda 86f6c449a7 Add springs for recents dismiss animations.
Bug: 111698021
Change-Id: If518ba5946ea6fada67f549f2f29e1ab1c89969d
2019-01-29 12:13:57 -08:00
Sunny Goyal 8c48d8bea6 Changing min sdk to 25
Change-Id: I0d28069967854357ca755bf25dec19d4979bdecf
2019-01-29 11:29:52 -08:00
Jon Miranda f82fd49244 Fix bugs with quickstep springs.
* Listeners weren't getting called properly. We add one listener to the
SpringbjectAnimator and then use that to dispatch to the other listeners.

* We fast finish on both double swipe cases to prevent the shelf from
  ending in an invalid state. This causes a visual jump but this can be
  addressed in follow up CL.

Bug: 111698021
Change-Id: Ifeb55da9dd253d062122a8e1577f94044f688641
2019-01-28 15:47:59 -08:00
Jon Miranda 60adc3fb83 Generalize SpringObjectAnimator.
This is in preparation for adding more springs to the state transitions.

Bug: 111698021
Change-Id: I32cd7894e940dae00895799280b244d68400d374
2019-01-16 15:15:56 -08:00
Jon Miranda a77a8c3fa9 Fix bug where onStateTransitionEnd is not called when QUICKSTEP_SPRINGS=false.
We ignore the value of mSpringEnded if springs are disabled.

Bug: 122662526
Change-Id: I66ae98c8d8a4a52dabdf6f75c1fb6d1df0c45318
2019-01-11 14:03:58 -08:00
Jon Miranda 7e390c3b17 Revert "Revert "Add spring to shelf for home <-> overview <-> all apps state transitions.""
This reverts commit 2bdac8f7e5.

Reason for revert: Reverting and added fix to crash

Change-Id: I20508eb05c85ba5dfba52630aa9becea270f890b
2019-01-08 16:43:45 -08:00
Jonathan Miranda 2bdac8f7e5 Revert "Add spring to shelf for home <-> overview <-> all apps state transitions."
This reverts commit e018711aac.

Reason for revert: investigating crash

Change-Id: I157b61a9f1bd46e2fcd3f2f883d3b5c23ca314af
2019-01-05 00:04:20 +00:00
Jon Miranda e018711aac Add spring to shelf for home <-> overview <-> all apps state transitions.
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
2019-01-04 11:12:53 -08:00
Hyunyoung Song 4d64da3259 Merge "setVisibility should not propagate focus on children views" into ub-launcher3-master 2018-12-01 01:21:51 +00:00
Hyunyoung Song 63dd081b36 setVisibility should not propagate focus on children views
Bug: 120064903
Change-Id: I2d58d1ef89db7749f9e6551c716b3cc0567915b3
2018-11-30 13:31:37 -08:00
Tony 6cfb0edb41 Fix end state when animating launcher after swipe up from an app
Previously we were comparing the controller's progress at the time of
the end of the animation... which is always 1. Instead, we should be
comparing the effective final progress based on the interpolator.

Change-Id: I18110b5a3b914839860931187f39cfa11182b3e2
2018-11-29 11:35:16 -08:00
Sunny Goyal f0b6db7fa8 Removing static launcher activity dependency from FirstFrameAnimationHelper
Static dependency does not work in the presence of multiple activities and
when the main activity is not Launcher (eg in fallback recents). Instead
creating FirstFrameAnimatorHelper on demand for individual animations.

Change-Id: I17bb69bbaaca92f0db994fb56fd784302c57d543
2018-08-13 16:10:18 -07:00