diff options
author | Android Build Merger (Role) <noreply-android-build-merger@google.com> | 2018-06-21 16:35:01 +0000 |
---|---|---|
committer | Android Build Merger (Role) <noreply-android-build-merger@google.com> | 2018-06-21 16:35:01 +0000 |
commit | cddbbc4e72df973c268b485a5b1d485d5ad99030 (patch) | |
tree | d6ce21ca20023787bb580f84b23af78a3c2e374f /quickstep | |
parent | b0ab5b71b57838d62d86a61b8b73690e3fdf3643 (diff) | |
parent | b83c71aa24983e1a8b7910cad32cb49133891e55 (diff) | |
download | android_packages_apps_Trebuchet-cddbbc4e72df973c268b485a5b1d485d5ad99030.tar.gz android_packages_apps_Trebuchet-cddbbc4e72df973c268b485a5b1d485d5ad99030.tar.bz2 android_packages_apps_Trebuchet-cddbbc4e72df973c268b485a5b1d485d5ad99030.zip |
[automerger] Refactor "spring" code into one method. am: b83c71aa24
Change-Id: I94408b509d703f10b0af2c34c363c680e12128d0
Diffstat (limited to 'quickstep')
-rw-r--r-- | quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java b/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java index 4108cd290..252e3eaee 100644 --- a/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java +++ b/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java @@ -57,6 +57,7 @@ import android.os.CancellationSignal; import android.os.Handler; import android.os.Looper; import android.util.Pair; +import android.util.Property; import android.view.View; import android.view.ViewGroup; @@ -804,25 +805,9 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag float shiftRange = allAppsController.getShiftRange(); float slideStart = shiftRange / (shiftRange - mStartSlideTransY); float oscillateStart = shiftRange / (shiftRange - mEndSlideTransY); - // Ensures a clean hand-off between slide and oscillate. - float slideEnd = Utilities.mapToRange(0, 0, 1f, oscillateStart, 1, OSCILLATE); - allAppsController.setProgress(slideStart); - Animator slideIn = ObjectAnimator.ofFloat(allAppsController, ALL_APPS_PROGRESS, - slideStart, slideEnd); - slideIn.setDuration(SPRING_SLIDE_DURATION); - slideIn.setInterpolator(DEACCEL); - - Animator oscillate = ObjectAnimator.ofFloat(allAppsController, ALL_APPS_PROGRESS, - oscillateStart, 1f); - oscillate.setDuration(SPRING_OSCILLATE_DURATION); - oscillate.setInterpolator(OSCILLATE); - - Animator settle = ObjectAnimator.ofFloat(allAppsController, ALL_APPS_PROGRESS, 1f); - settle.setDuration(SPRING_SETTLE_DURATION); - settle.setInterpolator(LINEAR); - - workspaceAnimator.playSequentially(slideIn, oscillate, settle); + buildSpringAnimation(workspaceAnimator, allAppsController, ALL_APPS_PROGRESS, + 0 /* startDelay */, slideStart, oscillateStart, 1f /* finalPosition */); } mDragLayer.getScrim().hideSysUiScrim(true); @@ -852,35 +837,50 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag v.setAlpha(0); ObjectAnimator alpha = ObjectAnimator.ofFloat(v, View.ALPHA, 1f); alpha.setInterpolator(LINEAR); - alpha.setDuration(SPRING_SLIDE_DURATION); + alpha.setDuration(SPRING_SLIDE_DURATION + SPRING_OSCILLATE_DURATION); alpha.setStartDelay(startDelay); outAnimator.play(alpha); + buildSpringAnimation(outAnimator, v, TRANSLATION_Y, startDelay, mStartSlideTransY, + mEndSlideTransY, 0f /* finalPosition */); + + outAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + v.setAlpha(1f); + v.setTranslationY(0); + } + }); + } + + /** + * Spring animations consists of three sequential animators: a slide, an oscillation, and + * a settle. + */ + private <T> void buildSpringAnimation(AnimatorSet outAnimator, T objectToSpring, + Property<T, Float> property, long startDelay, float slideStart, float oscillateStart, + float finalPosition) { // Ensures a clean hand-off between slide and oscillate. - float slideEnd = Utilities.mapToRange(0, 0, 1f, mEndSlideTransY, 0, OSCILLATE); - v.setTranslationY(mStartSlideTransY); - ObjectAnimator slideIn = ObjectAnimator.ofFloat(v, TRANSLATION_Y, mStartSlideTransY, + float slideEnd = Utilities.mapToRange(0, 0, 1f, oscillateStart, finalPosition, OSCILLATE); + + property.set(objectToSpring, slideStart); + + ObjectAnimator slideIn = ObjectAnimator.ofFloat(objectToSpring, property, slideStart, slideEnd); slideIn.setInterpolator(DEACCEL); slideIn.setStartDelay(startDelay); slideIn.setDuration(SPRING_SLIDE_DURATION); - ObjectAnimator oscillate = ObjectAnimator.ofFloat(v, TRANSLATION_Y, mEndSlideTransY, 0); + ObjectAnimator oscillate = ObjectAnimator.ofFloat(objectToSpring, property, oscillateStart, + finalPosition); oscillate.setInterpolator(OSCILLATE); oscillate.setDuration(SPRING_OSCILLATE_DURATION); - ObjectAnimator settle = ObjectAnimator.ofFloat(v, TRANSLATION_Y, 0); + ObjectAnimator settle = ObjectAnimator.ofFloat(objectToSpring, property, finalPosition); settle.setInterpolator(LINEAR); settle.setDuration(SPRING_SETTLE_DURATION); outAnimator.playSequentially(slideIn, oscillate, settle); - outAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - v.setAlpha(1f); - v.setTranslationY(0); - } - }); } private void resetContentView() { |