diff options
author | Tony Wickham <twickham@google.com> | 2019-08-12 18:33:48 -0700 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2019-11-14 12:31:01 -0800 |
commit | 2785a5996cebaae4df29c1f9e9efcaf2f7b0055f (patch) | |
tree | c6cb847d580b40479aa2a042c6e61dde81b64c25 /src/com/android/launcher3/anim/AnimatorPlaybackController.java | |
parent | 42a9ef0e9f87230930127f25e0ce80b5ea1f603a (diff) | |
download | android_packages_apps_Trebuchet-2785a5996cebaae4df29c1f9e9efcaf2f7b0055f.tar.gz android_packages_apps_Trebuchet-2785a5996cebaae4df29c1f9e9efcaf2f7b0055f.tar.bz2 android_packages_apps_Trebuchet-2785a5996cebaae4df29c1f9e9efcaf2f7b0055f.zip |
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
Merged-In: Id679ad84c08246e205c667a78ed5df00d7276258
Diffstat (limited to 'src/com/android/launcher3/anim/AnimatorPlaybackController.java')
-rw-r--r-- | src/com/android/launcher3/anim/AnimatorPlaybackController.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/com/android/launcher3/anim/AnimatorPlaybackController.java b/src/com/android/launcher3/anim/AnimatorPlaybackController.java index 2c440bba1..4a52795f8 100644 --- a/src/com/android/launcher3/anim/AnimatorPlaybackController.java +++ b/src/com/android/launcher3/anim/AnimatorPlaybackController.java @@ -26,15 +26,15 @@ import android.animation.TimeInterpolator; import android.animation.ValueAnimator; import android.util.Log; +import androidx.dynamicanimation.animation.DynamicAnimation; +import androidx.dynamicanimation.animation.SpringAnimation; + import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; -import androidx.dynamicanimation.animation.DynamicAnimation; -import androidx.dynamicanimation.animation.SpringAnimation; - /** * Helper class to control the playback of an {@link AnimatorSet}, with custom interpolators * and durations. @@ -250,6 +250,17 @@ public abstract class AnimatorPlaybackController implements ValueAnimator.Animat } } + /** + * Sets mOnCancelRunnable = null before dispatching the cancel and restoring the runnable. This + * is intended to be used only if you need to cancel but want to defer cleaning up yourself. + */ + public void dispatchOnCancelWithoutCancelRunnable() { + Runnable onCancel = mOnCancelRunnable; + setOnCancelRunnable(null); + dispatchOnCancel(); + setOnCancelRunnable(onCancel); + } + public void dispatchOnCancel() { dispatchOnCancelRecursively(mAnim); } @@ -283,10 +294,6 @@ public abstract class AnimatorPlaybackController implements ValueAnimator.Animat mOnCancelRunnable = runnable; } - public Runnable getOnCancelRunnable() { - return mOnCancelRunnable; - } - public void skipToEnd() { mSkipToEnd = true; for (SpringAnimation spring : mSprings) { |