diff options
author | Winson Chung <winsonc@google.com> | 2012-05-31 13:19:39 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-31 13:19:39 -0700 |
commit | dcc4665292c70ba18a8a1297482b8c5c48ca992d (patch) | |
tree | fb96f5aee096bd48946299c0c478b2463a674381 /src/com/android | |
parent | 78a4b7993b95d0f0270a0bb0ce58355fe5963e97 (diff) | |
parent | 17f1bb8ec9180cc3ee3f8b343b3b0d247c8d7bb7 (diff) | |
download | packages_apps_trebuchet-dcc4665292c70ba18a8a1297482b8c5c48ca992d.zip packages_apps_trebuchet-dcc4665292c70ba18a8a1297482b8c5c48ca992d.tar.gz packages_apps_trebuchet-dcc4665292c70ba18a8a1297482b8c5c48ca992d.tar.bz2 |
Merge "Simplifying search bar animations. (Bug 6529767)" into jb-dev
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/launcher2/SearchDropTargetBar.java | 92 |
1 files changed, 34 insertions, 58 deletions
diff --git a/src/com/android/launcher2/SearchDropTargetBar.java b/src/com/android/launcher2/SearchDropTargetBar.java index a01fd3a..77681a8 100644 --- a/src/com/android/launcher2/SearchDropTargetBar.java +++ b/src/com/android/launcher2/SearchDropTargetBar.java @@ -18,7 +18,6 @@ package com.android.launcher2; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; -import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.content.Context; import android.graphics.Rect; @@ -26,7 +25,6 @@ import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.view.animation.AccelerateInterpolator; -import android.view.animation.DecelerateInterpolator; import android.widget.FrameLayout; import com.android.launcher.R; @@ -40,10 +38,10 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D private static final int sTransitionInDuration = 200; private static final int sTransitionOutDuration = 175; - private ObjectAnimator mDropTargetBarFadeInAnim; - private ObjectAnimator mDropTargetBarFadeOutAnim; - private ObjectAnimator mQSBSearchBarFadeInAnim; - private ObjectAnimator mQSBSearchBarFadeOutAnim; + private ObjectAnimator mDropTargetBarAnim; + private ObjectAnimator mQSBSearchBarAnim; + private static final AccelerateInterpolator sAccelerateInterpolator = + new AccelerateInterpolator(); private boolean mIsSearchBarHidden; private View mQSBSearchBar; @@ -75,28 +73,19 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D mDeleteDropTarget.setLauncher(launcher); } - // This sets up the view for the animation private void prepareStartAnimation(View v) { - // Enable the hw layers (which will be disabled in the onAnimationEnd callback below + // Enable the hw layers before the animation starts (will be disabled in the onAnimationEnd + // callback below) v.setLayerType(View.LAYER_TYPE_HARDWARE, null); v.buildLayer(); } - private void prepareAnimation(ObjectAnimator in, ObjectAnimator out, final View v) { - in.setInterpolator(new AccelerateInterpolator()); - in.setDuration(sTransitionInDuration); - in.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animation) { - v.setVisibility(View.VISIBLE); - } - }); - out.setInterpolator(new AccelerateInterpolator()); - out.setDuration(sTransitionOutDuration); - out.addListener(new AnimatorListenerAdapter() { + private void setupAnimation(ObjectAnimator anim, final View v) { + anim.setInterpolator(sAccelerateInterpolator); + anim.setDuration(sTransitionInDuration); + anim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - v.setVisibility(View.INVISIBLE); v.setLayerType(View.LAYER_TYPE_NONE, null); } }); @@ -122,64 +111,55 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D // Create the various fade animations if (mEnableDropDownDropTargets) { mDropTargetBar.setTranslationY(-mBarHeight); - mDropTargetBarFadeInAnim = ObjectAnimator.ofFloat(mDropTargetBar, "translationY", 0f); - mDropTargetBarFadeOutAnim = ObjectAnimator.ofFloat(mDropTargetBar, "translationY", - -mBarHeight); - mQSBSearchBarFadeInAnim = ObjectAnimator.ofFloat(mQSBSearchBar, "translationY", 0); - mQSBSearchBarFadeOutAnim = ObjectAnimator.ofFloat(mQSBSearchBar, "translationY", + mDropTargetBarAnim = ObjectAnimator.ofFloat(mDropTargetBar, "translationY", + -mBarHeight, 0f); + mQSBSearchBarAnim = ObjectAnimator.ofFloat(mQSBSearchBar, "translationY", 0, -mBarHeight); } else { mDropTargetBar.setAlpha(0f); - mDropTargetBarFadeInAnim = ObjectAnimator.ofFloat(mDropTargetBar, "alpha", 1f); - mDropTargetBarFadeOutAnim = ObjectAnimator.ofFloat(mDropTargetBar, "alpha", 0f); - mQSBSearchBarFadeInAnim = ObjectAnimator.ofFloat(mQSBSearchBar, "alpha", 1f); - mQSBSearchBarFadeOutAnim = ObjectAnimator.ofFloat(mQSBSearchBar, "alpha", 0f); + mDropTargetBarAnim = ObjectAnimator.ofFloat(mDropTargetBar, "alpha", 0f, 1f); + mQSBSearchBarAnim = ObjectAnimator.ofFloat(mQSBSearchBar, "alpha", 1f, 0f); } - prepareAnimation(mDropTargetBarFadeInAnim, mDropTargetBarFadeOutAnim, mDropTargetBar); - prepareAnimation(mQSBSearchBarFadeInAnim, mQSBSearchBarFadeOutAnim, mQSBSearchBar); + setupAnimation(mDropTargetBarAnim, mDropTargetBar); + setupAnimation(mQSBSearchBarAnim, mQSBSearchBar); } public void finishAnimations() { - mDropTargetBarFadeInAnim.end(); - mDropTargetBarFadeOutAnim.end(); - mQSBSearchBarFadeInAnim.end(); - mQSBSearchBarFadeOutAnim.end(); - } - - private void cancelSearchBarAnimations() { - mQSBSearchBarFadeInAnim.cancel(); - mQSBSearchBarFadeOutAnim.cancel(); + prepareStartAnimation(mDropTargetBar); + mDropTargetBarAnim.reverse(); + prepareStartAnimation(mQSBSearchBar); + mQSBSearchBarAnim.reverse(); } /* * Shows and hides the search bar. */ public void showSearchBar(boolean animated) { - cancelSearchBarAnimations(); + if (!mIsSearchBarHidden) return; if (animated) { prepareStartAnimation(mQSBSearchBar); - mQSBSearchBarFadeInAnim.start(); + mQSBSearchBarAnim.reverse(); } else { - mQSBSearchBar.setVisibility(View.VISIBLE); + mQSBSearchBarAnim.cancel(); if (mEnableDropDownDropTargets) { mQSBSearchBar.setTranslationY(0); } else { - mQSBSearchBar.setAlpha(1f); + mDropTargetBar.setAlpha(1f); } } mIsSearchBarHidden = false; } public void hideSearchBar(boolean animated) { - cancelSearchBarAnimations(); + if (mIsSearchBarHidden) return; if (animated) { prepareStartAnimation(mQSBSearchBar); - mQSBSearchBarFadeOutAnim.start(); + mQSBSearchBarAnim.start(); } else { - mQSBSearchBar.setVisibility(View.INVISIBLE); + mQSBSearchBarAnim.cancel(); if (mEnableDropDownDropTargets) { - mQSBSearchBar.setTranslationY(0); + mQSBSearchBar.setTranslationY(-mBarHeight); } else { - mQSBSearchBar.setAlpha(0f); + mDropTargetBar.setAlpha(0f); } } mIsSearchBarHidden = true; @@ -202,12 +182,10 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D public void onDragStart(DragSource source, Object info, int dragAction) { // Animate out the QSB search bar, and animate in the drop target bar prepareStartAnimation(mDropTargetBar); - mDropTargetBarFadeOutAnim.cancel(); - mDropTargetBarFadeInAnim.start(); + mDropTargetBarAnim.start(); if (!mIsSearchBarHidden) { prepareStartAnimation(mQSBSearchBar); - mQSBSearchBarFadeInAnim.cancel(); - mQSBSearchBarFadeOutAnim.start(); + mQSBSearchBarAnim.start(); } } @@ -220,12 +198,10 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D if (!mDeferOnDragEnd) { // Restore the QSB search bar, and animate out the drop target bar prepareStartAnimation(mDropTargetBar); - mDropTargetBarFadeInAnim.cancel(); - mDropTargetBarFadeOutAnim.start(); + mDropTargetBarAnim.reverse(); if (!mIsSearchBarHidden) { prepareStartAnimation(mQSBSearchBar); - mQSBSearchBarFadeOutAnim.cancel(); - mQSBSearchBarFadeInAnim.start(); + mQSBSearchBarAnim.reverse(); } } else { mDeferOnDragEnd = false; |