diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml
index 17d5c60baf..675b26112f 100644
--- a/quickstep/res/values/dimens.xml
+++ b/quickstep/res/values/dimens.xml
@@ -33,7 +33,8 @@
50dp
- -70dp
+ -100dp
+ 6.25dp
115dp
16sp
diff --git a/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java b/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java
index 252e3eaeee..b9ff28456e 100644
--- a/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java
+++ b/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java
@@ -125,13 +125,13 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
// Progress = 0: All apps is fully pulled up, Progress = 1: All apps is fully pulled down.
public static final float ALL_APPS_PROGRESS_OFF_SCREEN = 1.3059858f;
- private static final int APP_CLOSE_ROW_START_DELAY_MS = 8;
+ private static final int APP_CLOSE_ROW_START_DELAY_MS = 9;
- // The sum of [slide, oscillate, and settle] should be <= LAUNCHER_RESUME_TOTAL_DURATION.
- private static final int LAUNCHER_RESUME_TOTAL_DURATION = 346;
- private static final int SPRING_SLIDE_DURATION = 166;
- private static final int SPRING_OSCILLATE_DURATION = 130;
- private static final int SPRING_SETTLE_DURATION = 50;
+ private static final int SPRING_SLIDE_DURATION = 170;
+ private static final int SPRING_OSCILLATE_DURATION = 550;
+ private static final int SPRING_SETTLE_DURATION = 25;
+
+ private static final int SPRING_ALPHA_DURATION = 100;
private final Launcher mLauncher;
private final DragLayer mDragLayer;
@@ -173,8 +173,8 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
Resources res = mLauncher.getResources();
mContentTransY = res.getDimensionPixelSize(R.dimen.content_trans_y);
mClosingWindowTransY = res.getDimensionPixelSize(R.dimen.closing_window_trans_y);
- mStartSlideTransY = res.getDimensionPixelSize(R.dimen.springs_trans_y);
- mEndSlideTransY = -mStartSlideTransY * 0.1f;
+ mStartSlideTransY = res.getDimensionPixelSize(R.dimen.springs_start_slide_trans_y);
+ mEndSlideTransY = res.getDimensionPixelSize(R.dimen.springs_end_slide_trans_y);
mLauncher.addOnDeviceProfileChangeListener(this);
registerRemoteAnimations();
@@ -837,7 +837,7 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
v.setAlpha(0);
ObjectAnimator alpha = ObjectAnimator.ofFloat(v, View.ALPHA, 1f);
alpha.setInterpolator(LINEAR);
- alpha.setDuration(SPRING_SLIDE_DURATION + SPRING_OSCILLATE_DURATION);
+ alpha.setDuration(SPRING_ALPHA_DURATION);
alpha.setStartDelay(startDelay);
outAnimator.play(alpha);
diff --git a/src/com/android/launcher3/anim/Interpolators.java b/src/com/android/launcher3/anim/Interpolators.java
index 8a1abf412d..389da48074 100644
--- a/src/com/android/launcher3/anim/Interpolators.java
+++ b/src/com/android/launcher3/anim/Interpolators.java
@@ -119,18 +119,20 @@ public class Interpolators {
public static final Interpolator OSCILLATE = new Interpolator() {
// Used to scale the oscillations horizontally
- private final float horizontalScale = 1f;
+ private final float horizontalScale = 4f;
// Used to shift the oscillations horizontally
- private final float horizontalShift = 0.5f;
+ private final float horizontalShift = 0.22f;
// Used to scale the oscillations vertically
private final float verticalScale = 1f;
// Used to shift the oscillations vertically
private final float verticalShift = 1f;
+ // Amplitude of oscillation
+ private final float amplitude = 0.9f;
@Override
public float getInterpolation(float t) {
t = horizontalScale * (t + horizontalShift);
- return (float) ((verticalScale * (Math.exp(-t) * Math.cos(2 * Math.PI * t)))
+ return (float) ((verticalScale * (Math.exp(-t) * Math.cos(amplitude * Math.PI * t)))
+ verticalShift);
}
};