diff options
author | Winson Chung <winsonc@google.com> | 2010-12-15 13:14:23 -0800 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2010-12-15 16:11:18 -0800 |
commit | 760e5375f003accf04f789e90a919ed476d4c335 (patch) | |
tree | ddfc87c374eb5d2fc0877e82e5953b6c1b4418e5 /src/com/android/launcher2/DeleteZone.java | |
parent | fc1fd8dca0829a331035336a092a6bf8bff44b83 (diff) | |
download | android_packages_apps_Trebuchet-760e5375f003accf04f789e90a919ed476d4c335.tar.gz android_packages_apps_Trebuchet-760e5375f003accf04f789e90a919ed476d4c335.tar.bz2 android_packages_apps_Trebuchet-760e5375f003accf04f789e90a919ed476d4c335.zip |
Fixing drawing order issue in bg gradient
- Synchronizing icon button animations + some initial code refactoring for icon buttons
- Fixing crash in non-xlarge devices
- Adding fix to prevent customization bg protection from being drawn in all apps
Change-Id: If231a1bf4b32f59fb1de85ff67143ee08d2c93a1
Diffstat (limited to 'src/com/android/launcher2/DeleteZone.java')
-rw-r--r-- | src/com/android/launcher2/DeleteZone.java | 103 |
1 files changed, 29 insertions, 74 deletions
diff --git a/src/com/android/launcher2/DeleteZone.java b/src/com/android/launcher2/DeleteZone.java index 33f384f0d..b044ea807 100644 --- a/src/com/android/launcher2/DeleteZone.java +++ b/src/com/android/launcher2/DeleteZone.java @@ -18,7 +18,6 @@ package com.android.launcher2; import android.content.Context; import android.content.res.TypedArray; -import android.graphics.Paint; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; @@ -31,26 +30,15 @@ import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.TranslateAnimation; -import android.widget.ImageView; import com.android.launcher.R; -public class DeleteZone extends ImageView implements DropTarget, DragController.DragListener { +public class DeleteZone extends IconDropTarget { private static final int ORIENTATION_HORIZONTAL = 1; private static final int TRANSITION_DURATION = 250; private static final int ANIMATION_DURATION = 200; - - private final int[] mLocation = new int[2]; - - private Launcher mLauncher; - private boolean mTrashMode; - - /** - * If true, this View responsible for managing its own visibility, and that of its handle. - * This is generally the case, but it will be set to false when this is part of the - * Contextual Action Bar. - */ - private boolean mDragAndDropEnabled = true; + private static final int XLARGE_TRANSITION_DURATION = 150; + private static final int XLARGE_ANIMATION_DURATION = 200; private AnimationSet mInAnimation; private AnimationSet mOutAnimation; @@ -63,10 +51,6 @@ public class DeleteZone extends ImageView implements DropTarget, DragController. private final RectF mRegionF = new RectF(); private final Rect mRegion = new Rect(); private TransitionDrawable mTransition; - private final Paint mTrashPaint = new Paint(); - - /** The View that this view will replace. */ - private View mHandle = null; public DeleteZone(Context context, AttributeSet attrs) { this(context, attrs, 0); @@ -75,8 +59,11 @@ public class DeleteZone extends ImageView implements DropTarget, DragController. public DeleteZone(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); + mOuterDragPadding = getResources().getDimensionPixelSize(R.dimen.delete_zone_size); + mInnerDragPadding = getResources().getDimensionPixelSize(R.dimen.delete_zone_padding); + final int srcColor = context.getResources().getColor(R.color.delete_color_filter); - mTrashPaint.setColorFilter(new PorterDuffColorFilter(srcColor, PorterDuff.Mode.SRC_ATOP)); + mHoverPaint.setColorFilter(new PorterDuffColorFilter(srcColor, PorterDuff.Mode.SRC_ATOP)); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.DeleteZone, defStyle, 0); mOrientation = a.getInt(R.styleable.DeleteZone_direction, ORIENTATION_HORIZONTAL); @@ -143,26 +130,24 @@ public class DeleteZone extends ImageView implements DropTarget, DragController. public void onDragEnter(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo) { - if (!mDragAndDropEnabled) return; - mTransition.reverseTransition(TRANSITION_DURATION); - dragView.setPaint(mTrashPaint); - } - - public void onDragOver(DragSource source, int x, int y, int xOffset, int yOffset, - DragView dragView, Object dragInfo) { + if (mDragAndDropEnabled) { + mTransition.reverseTransition(getTransitionAnimationDuration()); + super.onDragEnter(source, x, y, xOffset, yOffset, dragView, dragInfo); + } } public void onDragExit(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo) { - if (!mDragAndDropEnabled) return; - mTransition.reverseTransition(TRANSITION_DURATION); - dragView.setPaint(null); + if (mDragAndDropEnabled) { + mTransition.reverseTransition(getTransitionAnimationDuration()); + super.onDragExit(source, x, y, xOffset, yOffset, dragView, dragInfo); + } } public void onDragStart(DragSource source, Object info, int dragAction) { final ItemInfo item = (ItemInfo) info; if (item != null && mDragAndDropEnabled) { - mTrashMode = true; + mActive = true; getHitRect(mRegion); mRegionF.set(mRegion); @@ -188,8 +173,8 @@ public class DeleteZone extends ImageView implements DropTarget, DragController. } public void onDragEnd() { - if (mTrashMode && mDragAndDropEnabled) { - mTrashMode = false; + if (mActive && mDragAndDropEnabled) { + mActive = false; mDragController.setDeleteRegion(null); if (mOutAnimation != null) startAnimation(mOutAnimation); @@ -200,33 +185,11 @@ public class DeleteZone extends ImageView implements DropTarget, DragController. } } - public boolean isDropEnabled() { - return true; - } - - @Override - public void getHitRect(Rect outRect) { - super.getHitRect(outRect); - if (LauncherApplication.isScreenXLarge()) { - // TODO: This is a temporary hack. mManageVisiblity = false when you're in CAB mode. - // In that case, this icon is more tightly spaced next to the delete icon so we want - // it to have a smaller drag region. When the new drag&drop system comes in, we'll - // dispatch the drag/drop by calculating what target you're overlapping - final int padding = R.dimen.delete_zone_padding; - final int outerDragPadding = - getResources().getDimensionPixelSize(R.dimen.delete_zone_size); - final int innerDragPadding = getResources().getDimensionPixelSize(padding); - outRect.top -= outerDragPadding; - outRect.left -= innerDragPadding; - outRect.bottom += outerDragPadding; - outRect.right += innerDragPadding; - } - } - private void createAnimations() { + int duration = getAnimationDuration(); if (mHandleInAnimation == null) { mHandleInAnimation = new AlphaAnimation(0.0f, 1.0f); - mHandleInAnimation.setDuration(ANIMATION_DURATION); + mHandleInAnimation.setDuration(duration); } if (mInAnimation == null) { @@ -244,7 +207,7 @@ public class DeleteZone extends ImageView implements DropTarget, DragController. 1.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 0.0f)); } - animationSet.setDuration(ANIMATION_DURATION); + animationSet.setDuration(duration); } else { mInAnimation.addAnimation(mHandleInAnimation); } @@ -253,7 +216,7 @@ public class DeleteZone extends ImageView implements DropTarget, DragController. if (mHandleOutAnimation == null) { mHandleOutAnimation = new AlphaAnimation(1.0f, 0.0f); mHandleOutAnimation.setFillAfter(true); - mHandleOutAnimation.setDuration(ANIMATION_DURATION); + mHandleOutAnimation.setDuration(duration); } if (mOutAnimation == null) { @@ -271,27 +234,25 @@ public class DeleteZone extends ImageView implements DropTarget, DragController. 0.0f, Animation.RELATIVE_TO_SELF, 1.0f, Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 0.0f)); } - animationSet.setDuration(ANIMATION_DURATION); + animationSet.setDuration(duration); } else { mOutAnimation.addAnimation(mHandleOutAnimation); } } } - void setLauncher(Launcher launcher) { - mLauncher = launcher; - } - void setDragController(DragController dragController) { mDragController = dragController; } - void setHandle(View view) { - mHandle = view; + private int getTransitionAnimationDuration() { + return LauncherApplication.isScreenXLarge() ? + XLARGE_TRANSITION_DURATION : TRANSITION_DURATION; } - void setDragAndDropEnabled(boolean enabled) { - mDragAndDropEnabled = enabled; + private int getAnimationDuration() { + return LauncherApplication.isScreenXLarge() ? + XLARGE_ANIMATION_DURATION : ANIMATION_DURATION; } private static class FastTranslateAnimation extends TranslateAnimation { @@ -327,10 +288,4 @@ public class DeleteZone extends ImageView implements DropTarget, DragController. return false; } } - - @Override - public DropTarget getDropTargetDelegate(DragSource source, int x, int y, int xOffset, int yOffset, - DragView dragView, Object dragInfo) { - return null; - } } |