summaryrefslogtreecommitdiffstats
path: root/quickstep
diff options
context:
space:
mode:
authorAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2018-06-21 16:35:01 +0000
committerAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2018-06-21 16:35:01 +0000
commitcddbbc4e72df973c268b485a5b1d485d5ad99030 (patch)
treed6ce21ca20023787bb580f84b23af78a3c2e374f /quickstep
parentb0ab5b71b57838d62d86a61b8b73690e3fdf3643 (diff)
parentb83c71aa24983e1a8b7910cad32cb49133891e55 (diff)
downloadandroid_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.java62
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() {