diff options
author | Winson Chung <winsonc@google.com> | 2011-07-11 15:20:48 -0700 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2011-07-12 16:04:46 -0700 |
commit | a62e9fd95ae10cff4676f2cc1f4d68334ca27a0b (patch) | |
tree | db42f288a740bbaaf689f070e0aff66367be10de /src | |
parent | fe63476a2d0b12dfc692c425d1c6cdbb41774ef0 (diff) | |
download | android_packages_apps_Trebuchet-a62e9fd95ae10cff4676f2cc1f4d68334ca27a0b.tar.gz android_packages_apps_Trebuchet-a62e9fd95ae10cff4676f2cc1f4d68334ca27a0b.tar.bz2 android_packages_apps_Trebuchet-a62e9fd95ae10cff4676f2cc1f4d68334ca27a0b.zip |
Cleaning up some drop-target issues.
- Setting text color during drag over transitions
- Fixing regression in drop target padding
= Using old drop-down animation where possible
Change-Id: Ia1c5ec9e58fc734d28133349d9920d123ed71ae6
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher2/ButtonDropTarget.java | 13 | ||||
-rw-r--r-- | src/com/android/launcher2/DeleteDropTarget.java | 6 | ||||
-rw-r--r-- | src/com/android/launcher2/InfoDropTarget.java | 6 | ||||
-rw-r--r-- | src/com/android/launcher2/SearchDropTargetBar.java | 43 |
4 files changed, 60 insertions, 8 deletions
diff --git a/src/com/android/launcher2/ButtonDropTarget.java b/src/com/android/launcher2/ButtonDropTarget.java index f87889cfb..edc5acf21 100644 --- a/src/com/android/launcher2/ButtonDropTarget.java +++ b/src/com/android/launcher2/ButtonDropTarget.java @@ -17,6 +17,7 @@ package com.android.launcher2; import android.content.Context; +import android.content.res.Resources; import android.graphics.Paint; import android.util.AttributeSet; import android.widget.FrameLayout; @@ -32,6 +33,7 @@ public class ButtonDropTarget extends FrameLayout implements DropTarget, DragCon protected final int mTransitionDuration; protected Launcher mLauncher; + private int mBottomDragPadding; /** Whether this drop target is active for the current drag */ protected boolean mActive; @@ -46,8 +48,9 @@ public class ButtonDropTarget extends FrameLayout implements DropTarget, DragCon public ButtonDropTarget(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); - mTransitionDuration = - context.getResources().getInteger(R.integer.config_dropTargetBgTransitionDuration); + Resources r = getResources(); + mTransitionDuration = r.getInteger(R.integer.config_dropTargetBgTransitionDuration); + mBottomDragPadding = r.getDimensionPixelSize(R.dimen.drop_target_drag_padding); } void setLauncher(Launcher launcher) { @@ -87,6 +90,12 @@ public class ButtonDropTarget extends FrameLayout implements DropTarget, DragCon } @Override + public void getHitRect(android.graphics.Rect outRect) { + super.getHitRect(outRect); + outRect.bottom += mBottomDragPadding; + } + + @Override public DropTarget getDropTargetDelegate(DragObject d) { return null; } diff --git a/src/com/android/launcher2/DeleteDropTarget.java b/src/com/android/launcher2/DeleteDropTarget.java index c8c6faaf9..ffe453319 100644 --- a/src/com/android/launcher2/DeleteDropTarget.java +++ b/src/com/android/launcher2/DeleteDropTarget.java @@ -17,6 +17,7 @@ package com.android.launcher2; import android.content.Context; +import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.PorterDuff; @@ -31,6 +32,7 @@ import com.android.launcher.R; public class DeleteDropTarget extends ButtonDropTarget { private TextView mText; + private ColorStateList mOriginalTextColor; private TransitionDrawable mDrawable; private int mHoverColor = 0xFFFF0000; @@ -48,6 +50,7 @@ public class DeleteDropTarget extends ButtonDropTarget { // Get the drawable mText = (TextView) findViewById(R.id.delete_target_text); + mOriginalTextColor = mText.getTextColors(); // Get the hover color Resources r = getResources(); @@ -114,6 +117,7 @@ public class DeleteDropTarget extends ButtonDropTarget { mActive = isVisible; mDrawable.resetTransition(); + mText.setTextColor(mOriginalTextColor); setVisibility(isVisible ? View.VISIBLE : View.GONE); if (mText.getText().length() > 0) { mText.setText(isUninstall ? R.string.delete_target_uninstall_label @@ -131,6 +135,7 @@ public class DeleteDropTarget extends ButtonDropTarget { super.onDragEnter(d); mDrawable.startTransition(mTransitionDuration); + mText.setTextColor(mHoverColor); } public void onDragExit(DragObject d) { @@ -138,6 +143,7 @@ public class DeleteDropTarget extends ButtonDropTarget { if (!d.dragComplete) { mDrawable.resetTransition(); + mText.setTextColor(mOriginalTextColor); } } diff --git a/src/com/android/launcher2/InfoDropTarget.java b/src/com/android/launcher2/InfoDropTarget.java index 02e3f0182..6ad7630ed 100644 --- a/src/com/android/launcher2/InfoDropTarget.java +++ b/src/com/android/launcher2/InfoDropTarget.java @@ -18,6 +18,7 @@ package com.android.launcher2; import android.content.ComponentName; import android.content.Context; +import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.PorterDuff; @@ -32,6 +33,7 @@ import com.android.launcher.R; public class InfoDropTarget extends ButtonDropTarget { private TextView mText; + private ColorStateList mOriginalTextColor; private TransitionDrawable mDrawable; private int mHoverColor = 0xFF0000FF; @@ -48,6 +50,7 @@ public class InfoDropTarget extends ButtonDropTarget { super.onFinishInflate(); mText = (TextView) findViewById(R.id.info_target_text); + mOriginalTextColor = mText.getTextColors(); // Get the hover color Resources r = getResources(); @@ -98,6 +101,7 @@ public class InfoDropTarget extends ButtonDropTarget { mActive = isVisible; mDrawable.resetTransition(); + mText.setTextColor(mOriginalTextColor); setVisibility(isVisible ? View.VISIBLE : View.GONE); } @@ -111,6 +115,7 @@ public class InfoDropTarget extends ButtonDropTarget { super.onDragEnter(d); mDrawable.startTransition(mTransitionDuration); + mText.setTextColor(mHoverColor); } public void onDragExit(DragObject d) { @@ -118,6 +123,7 @@ public class InfoDropTarget extends ButtonDropTarget { if (!d.dragComplete) { mDrawable.resetTransition(); + mText.setTextColor(mOriginalTextColor); } } } diff --git a/src/com/android/launcher2/SearchDropTargetBar.java b/src/com/android/launcher2/SearchDropTargetBar.java index e4cf361bb..201daabc3 100644 --- a/src/com/android/launcher2/SearchDropTargetBar.java +++ b/src/com/android/launcher2/SearchDropTargetBar.java @@ -18,10 +18,14 @@ 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.content.res.Configuration; 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; @@ -32,11 +36,11 @@ import com.android.launcher.R; */ public class SearchDropTargetBar extends FrameLayout implements DragController.DragListener { - private static final int sTransitionInDuration = 275; - private static final int sTransitionOutDuration = 125; + private static final int sTransitionInDuration = 200; + private static final int sTransitionOutDuration = 175; - private ObjectAnimator mDropTargetBarFadeInAnim; - private ObjectAnimator mDropTargetBarFadeOutAnim; + private AnimatorSet mDropTargetBarFadeInAnim; + private AnimatorSet mDropTargetBarFadeOutAnim; private ObjectAnimator mQSBSearchBarFadeInAnim; private ObjectAnimator mQSBSearchBarFadeOutAnim; @@ -45,6 +49,7 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D private View mDropTargetBar; private ButtonDropTarget mInfoDropTarget; private ButtonDropTarget mDeleteDropTarget; + private int mBarHeight; public SearchDropTargetBar(Context context, AttributeSet attrs) { this(context, attrs, 0); @@ -73,9 +78,21 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D mDropTargetBar = findViewById(R.id.drag_target_bar); mInfoDropTarget = (ButtonDropTarget) mDropTargetBar.findViewById(R.id.info_target); mDeleteDropTarget = (ButtonDropTarget) mDropTargetBar.findViewById(R.id.delete_target); + mBarHeight = getResources().getDimensionPixelSize(R.dimen.qsb_bar_height); + + boolean enableDropDownDropTargets = + getResources().getBoolean(R.bool.config_useDropTargetDownTransition); // Create the various fade animations - mDropTargetBarFadeInAnim = ObjectAnimator.ofFloat(mDropTargetBar, "alpha", 1f); + mDropTargetBar.setAlpha(0f); + ObjectAnimator fadeInAlphaAnim = ObjectAnimator.ofFloat(mDropTargetBar, "alpha", 1f); + fadeInAlphaAnim.setInterpolator(new DecelerateInterpolator()); + mDropTargetBarFadeInAnim = new AnimatorSet(); + AnimatorSet.Builder fadeInAnimators = mDropTargetBarFadeInAnim.play(fadeInAlphaAnim); + if (enableDropDownDropTargets) { + mDropTargetBar.setTranslationY(-mBarHeight); + fadeInAnimators.with(ObjectAnimator.ofFloat(mDropTargetBar, "translationY", 0f)); + } mDropTargetBarFadeInAnim.setDuration(sTransitionInDuration); mDropTargetBarFadeInAnim.addListener(new AnimatorListenerAdapter() { @Override @@ -83,12 +100,20 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D mDropTargetBar.setVisibility(View.VISIBLE); } }); - mDropTargetBarFadeOutAnim = ObjectAnimator.ofFloat(mDropTargetBar, "alpha", 0f); + ObjectAnimator fadeOutAlphaAnim = ObjectAnimator.ofFloat(mDropTargetBar, "alpha", 0f); + fadeOutAlphaAnim.setInterpolator(new AccelerateInterpolator()); + mDropTargetBarFadeOutAnim = new AnimatorSet(); + AnimatorSet.Builder fadeOutAnimators = mDropTargetBarFadeOutAnim.play(fadeOutAlphaAnim); + if (enableDropDownDropTargets) { + fadeOutAnimators.with(ObjectAnimator.ofFloat(mDropTargetBar, "translationY", + -mBarHeight)); + } mDropTargetBarFadeOutAnim.setDuration(sTransitionOutDuration); mDropTargetBarFadeOutAnim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mDropTargetBar.setVisibility(View.GONE); + mDropTargetBar.setLayerType(View.LAYER_TYPE_NONE, null); } }); mQSBSearchBarFadeInAnim = ObjectAnimator.ofFloat(mQSBSearchBar, "alpha", 1f); @@ -156,8 +181,12 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D @Override public void onDragStart(DragSource source, Object info, int dragAction) { // Animate out the QSB search bar, and animate in the drop target bar + mDropTargetBar.setLayerType(View.LAYER_TYPE_HARDWARE, null); + mDropTargetBar.buildLayer(); + mDropTargetBarFadeOutAnim.cancel(); mDropTargetBarFadeInAnim.start(); if (!mIsSearchBarHidden) { + mQSBSearchBarFadeInAnim.cancel(); mQSBSearchBarFadeOutAnim.start(); } } @@ -165,8 +194,10 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D @Override public void onDragEnd() { // Restore the QSB search bar, and animate out the drop target bar + mDropTargetBarFadeInAnim.cancel(); mDropTargetBarFadeOutAnim.start(); if (!mIsSearchBarHidden) { + mQSBSearchBarFadeOutAnim.cancel(); mQSBSearchBarFadeInAnim.start(); } } |