OSDN Git Service

Change default animation duration for all apps open and close.
authorHyunyoung Song <hyunyoungs@google.com>
Wed, 27 Jul 2016 18:54:02 +0000 (11:54 -0700)
committerHyunyoung Song <hyunyoungs@google.com>
Wed, 27 Jul 2016 18:54:02 +0000 (11:54 -0700)
> Also set different interpolator for all apps opening clicking the caret

Change-Id: I7f9b764a8bf8bb7c38d94acbd964e912f22d6941

res/values/config.xml
src/com/android/launcher3/LauncherStateTransitionAnimation.java
src/com/android/launcher3/allapps/AllAppsTransitionController.java

index c962dec..9438042 100644 (file)
@@ -26,6 +26,7 @@
     <!-- Fade/zoom in/out duration & scale in a Launcher overlay transition.
          Note: This should be less than the config_overlayTransitionTime as they happen together. -->
     <integer name="config_overlayRevealTime">220</integer>
+    <integer name="config_overlaySlideRevealTime">320</integer>
     <integer name="config_overlayTransitionTime">300</integer>
     <integer name="config_overlayItemsAlphaStagger">60</integer>
 
index 9cb8427..b0358e8 100644 (file)
@@ -237,6 +237,8 @@ public class LauncherStateTransitionAnimation {
         final Resources res = mLauncher.getResources();
         final boolean material = Utilities.ATLEAST_LOLLIPOP;
         final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime);
+        final int revealDurationSlide = res.getInteger(R.integer.config_overlaySlideRevealTime);
+
         final int itemsAlphaStagger = res.getInteger(R.integer.config_overlayItemsAlphaStagger);
 
         final View fromView = mLauncher.getWorkspace();
@@ -435,7 +437,7 @@ public class LauncherStateTransitionAnimation {
                       pCb.onTransitionComplete();
                   }
             });
-            mAllAppsController.animateToAllApps(animation, revealDuration);
+            mAllAppsController.animateToAllApps(animation, revealDurationSlide);
 
             dispatchOnLauncherTransitionPrepare(fromView, animated, false);
             dispatchOnLauncherTransitionPrepare(toView, animated, false);
@@ -680,6 +682,7 @@ public class LauncherStateTransitionAnimation {
         final Resources res = mLauncher.getResources();
         final boolean material = Utilities.ATLEAST_LOLLIPOP;
         final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime);
+        final int revealDurationSlide = res.getInteger(R.integer.config_overlaySlideRevealTime);
         final int itemsAlphaStagger =
                 res.getInteger(R.integer.config_overlayItemsAlphaStagger);
 
@@ -918,7 +921,7 @@ public class LauncherStateTransitionAnimation {
                 }
 
             });
-            mAllAppsController.animateToWorkspace(animation, revealDuration);
+            mAllAppsController.animateToWorkspace(animation, revealDurationSlide);
 
             // Dispatch the prepare transition signal
             dispatchOnLauncherTransitionPrepare(fromView, animated, multiplePagesVisible);
index cff77d3..df209b5 100644 (file)
@@ -6,6 +6,7 @@ import android.animation.AnimatorListenerAdapter;
 import android.animation.AnimatorSet;
 import android.animation.ArgbEvaluator;
 import android.animation.ObjectAnimator;
+import android.support.v4.view.animation.FastOutSlowInInterpolator;
 import android.util.Log;
 import android.view.MotionEvent;
 import android.view.View;
@@ -43,7 +44,8 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
     private static final boolean DBG = false;
 
     private final Interpolator mAccelInterpolator = new AccelerateInterpolator(2f);
-    private final Interpolator mDecelInterpolator = new DecelerateInterpolator(1f);
+    private final Interpolator mFastOutSlowInInterpolator = new FastOutSlowInInterpolator();
+    private final Interpolator mScrollInterpolator = new PagedView.ScrollInterpolator();
 
     private static final float ANIMATION_DURATION = 1200;
 
@@ -249,6 +251,7 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
     public boolean isTransitioning() {
         return mDetector.isDraggingOrSettling();
     }
+
     /**
      * @param start {@code true} if start of new drag.
      */
@@ -345,6 +348,7 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
     }
 
     public void animateToAllApps(AnimatorSet animationOut, long duration) {
+        Interpolator interpolator;
         if (animationOut == null) {
             return;
         }
@@ -352,12 +356,15 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
             preparePull(true);
             mAnimationDuration = duration;
             mShiftStart = mAppsView.getTranslationY();
+            interpolator = mFastOutSlowInInterpolator;
+        } else {
+            interpolator = mScrollInterpolator;
         }
         final float fromAllAppsTop = mAppsView.getTranslationY();
         ObjectAnimator driftAndAlpha = ObjectAnimator.ofFloat(this, "progress",
                 fromAllAppsTop / mShiftRange, 0f);
         driftAndAlpha.setDuration(mAnimationDuration);
-        driftAndAlpha.setInterpolator(new PagedView.ScrollInterpolator());
+        driftAndAlpha.setInterpolator(interpolator);
         animationOut.play(driftAndAlpha);
 
         animationOut.addListener(new AnimatorListenerAdapter() {
@@ -416,17 +423,21 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
         if (animationOut == null) {
             return;
         }
+        Interpolator interpolator;
         if (mDetector.isIdleState()) {
             preparePull(true);
             mAnimationDuration = duration;
             mShiftStart = mAppsView.getTranslationY();
+            interpolator = mFastOutSlowInInterpolator;
+        } else {
+            interpolator = mScrollInterpolator;
         }
         final float fromAllAppsTop = mAppsView.getTranslationY();
 
         ObjectAnimator driftAndAlpha = ObjectAnimator.ofFloat(this, "progress",
                 fromAllAppsTop / mShiftRange, 1f);
         driftAndAlpha.setDuration(mAnimationDuration);
-        driftAndAlpha.setInterpolator(new PagedView.ScrollInterpolator());
+        driftAndAlpha.setInterpolator(interpolator);
         animationOut.play(driftAndAlpha);
 
         animationOut.addListener(new AnimatorListenerAdapter() {