diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:51 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:51 -0800 |
commit | 31896793701b36714f040d4fe1b32426c68d5427 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /src/com/android/launcher/DeleteZone.java | |
parent | 38a75b2d89230a9c5b985bf2d5a142ad7ee910e7 (diff) | |
download | android_packages_apps_Trebuchet-31896793701b36714f040d4fe1b32426c68d5427.tar.gz android_packages_apps_Trebuchet-31896793701b36714f040d4fe1b32426c68d5427.tar.bz2 android_packages_apps_Trebuchet-31896793701b36714f040d4fe1b32426c68d5427.zip |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'src/com/android/launcher/DeleteZone.java')
-rw-r--r-- | src/com/android/launcher/DeleteZone.java | 256 |
1 files changed, 0 insertions, 256 deletions
diff --git a/src/com/android/launcher/DeleteZone.java b/src/com/android/launcher/DeleteZone.java deleted file mode 100644 index 6f67884db..000000000 --- a/src/com/android/launcher/DeleteZone.java +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.launcher; - -import android.widget.ImageView; -import android.content.Context; -import android.content.res.TypedArray; -import android.util.AttributeSet; -import android.view.View; -import android.view.animation.TranslateAnimation; -import android.view.animation.Animation; -import android.view.animation.AnimationSet; -import android.view.animation.AccelerateInterpolator; -import android.view.animation.AlphaAnimation; -import android.graphics.RectF; -import android.graphics.drawable.TransitionDrawable; - -public class DeleteZone extends ImageView implements DropTarget, DragController.DragListener { - 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; - - private AnimationSet mInAnimation; - private AnimationSet mOutAnimation; - private Animation mHandleInAnimation; - private Animation mHandleOutAnimation; - - private int mOrientation; - private DragLayer mDragLayer; - - private final RectF mRegion = new RectF(); - private TransitionDrawable mTransition; - private View mHandle; - - public DeleteZone(Context context) { - super(context); - } - - public DeleteZone(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public DeleteZone(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - - TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.DeleteZone, defStyle, 0); - mOrientation = a.getInt(R.styleable.DeleteZone_direction, ORIENTATION_HORIZONTAL); - a.recycle(); - } - - @Override - protected void onFinishInflate() { - super.onFinishInflate(); - mTransition = (TransitionDrawable) getBackground(); - } - - public boolean acceptDrop(DragSource source, int x, int y, int xOffset, int yOffset, - Object dragInfo) { - return true; - } - - public void onDrop(DragSource source, int x, int y, int xOffset, int yOffset, Object dragInfo) { - final ItemInfo item = (ItemInfo) dragInfo; - - if (item.container == -1) return; - - final LauncherModel model = Launcher.getModel(); - if (item.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) { - model.removeDesktopItem(item); - } else { - if (source instanceof UserFolder) { - final UserFolder userFolder = (UserFolder) source; - final UserFolderInfo userFolderInfo = (UserFolderInfo) userFolder.getInfo(); - model.removeUserFolderItem(userFolderInfo, item); - } - } - if (item instanceof UserFolderInfo) { - final UserFolderInfo userFolderInfo = (UserFolderInfo)item; - LauncherModel.deleteUserFolderContentsFromDatabase(mLauncher, userFolderInfo); - model.removeUserFolder(userFolderInfo); - } else if (item instanceof LauncherGadgetInfo) { - final LauncherGadgetInfo launcherGadgetInfo = (LauncherGadgetInfo)item; - final LauncherGadgetHost gadgetHost = mLauncher.getGadgetHost(); - if (gadgetHost != null) { - gadgetHost.deleteGadgetId(launcherGadgetInfo.gadgetId); - } - } - LauncherModel.deleteItemFromDatabase(mLauncher, item); - } - - public void onDragEnter(DragSource source, int x, int y, int xOffset, int yOffset, - Object dragInfo) { - mTransition.reverseTransition(TRANSITION_DURATION); - } - - public void onDragOver(DragSource source, int x, int y, int xOffset, int yOffset, - Object dragInfo) { - } - - public void onDragExit(DragSource source, int x, int y, int xOffset, int yOffset, - Object dragInfo) { - mTransition.reverseTransition(TRANSITION_DURATION); - } - - public void onDragStart(View v, DragSource source, Object info, int dragAction) { - final ItemInfo item = (ItemInfo) info; - if (item != null) { - mTrashMode = true; - createAnimations(); - final int[] location = mLocation; - getLocationOnScreen(location); - mRegion.set(location[0], location[1], location[0] + mRight - mLeft, - location[1] + mBottom - mTop); - mDragLayer.setDeleteRegion(mRegion); - mTransition.resetTransition(); - startAnimation(mInAnimation); - mHandle.startAnimation(mHandleOutAnimation); - setVisibility(VISIBLE); - } - } - - public void onDragEnd() { - if (mTrashMode) { - mTrashMode = false; - mDragLayer.setDeleteRegion(null); - startAnimation(mOutAnimation); - mHandle.startAnimation(mHandleInAnimation); - setVisibility(GONE); - } - } - - private void createAnimations() { - if (mInAnimation == null) { - mInAnimation = new FastAnimationSet(); - final AnimationSet animationSet = mInAnimation; - animationSet.setInterpolator(new AccelerateInterpolator()); - animationSet.addAnimation(new AlphaAnimation(0.0f, 1.0f)); - if (mOrientation == ORIENTATION_HORIZONTAL) { - animationSet.addAnimation(new TranslateAnimation(Animation.ABSOLUTE, 0.0f, - Animation.ABSOLUTE, 0.0f, Animation.RELATIVE_TO_SELF, 1.0f, - Animation.RELATIVE_TO_SELF, 0.0f)); - } else { - animationSet.addAnimation(new TranslateAnimation(Animation.RELATIVE_TO_SELF, - 1.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.ABSOLUTE, 0.0f, - Animation.ABSOLUTE, 0.0f)); - } - animationSet.setDuration(ANIMATION_DURATION); - } - if (mHandleInAnimation == null) { - if (mOrientation == ORIENTATION_HORIZONTAL) { - mHandleInAnimation = new TranslateAnimation(Animation.ABSOLUTE, 0.0f, - Animation.ABSOLUTE, 0.0f, Animation.RELATIVE_TO_SELF, 1.0f, - Animation.RELATIVE_TO_SELF, 0.0f); - } else { - mHandleInAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, - 1.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.ABSOLUTE, 0.0f, - Animation.ABSOLUTE, 0.0f); - } - mHandleInAnimation.setDuration(ANIMATION_DURATION); - } - if (mOutAnimation == null) { - mOutAnimation = new FastAnimationSet(); - final AnimationSet animationSet = mOutAnimation; - animationSet.setInterpolator(new AccelerateInterpolator()); - animationSet.addAnimation(new AlphaAnimation(1.0f, 0.0f)); - if (mOrientation == ORIENTATION_HORIZONTAL) { - animationSet.addAnimation(new FastTranslateAnimation(Animation.ABSOLUTE, 0.0f, - Animation.ABSOLUTE, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, - Animation.RELATIVE_TO_SELF, 1.0f)); - } else { - animationSet.addAnimation(new FastTranslateAnimation(Animation.RELATIVE_TO_SELF, - 0.0f, Animation.RELATIVE_TO_SELF, 1.0f, Animation.ABSOLUTE, 0.0f, - Animation.ABSOLUTE, 0.0f)); - } - animationSet.setDuration(ANIMATION_DURATION); - } - if (mHandleOutAnimation == null) { - if (mOrientation == ORIENTATION_HORIZONTAL) { - mHandleOutAnimation = new FastTranslateAnimation(Animation.ABSOLUTE, 0.0f, - Animation.ABSOLUTE, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, - Animation.RELATIVE_TO_SELF, 1.0f); - } else { - mHandleOutAnimation = new FastTranslateAnimation(Animation.RELATIVE_TO_SELF, - 0.0f, Animation.RELATIVE_TO_SELF, 1.0f, Animation.ABSOLUTE, 0.0f, - Animation.ABSOLUTE, 0.0f); - } - mHandleOutAnimation.setFillAfter(true); - mHandleOutAnimation.setDuration(ANIMATION_DURATION); - } - } - - void setLauncher(Launcher launcher) { - mLauncher = launcher; - } - - void setDragController(DragLayer dragLayer) { - mDragLayer = dragLayer; - } - - void setHandle(View view) { - mHandle = view; - } - - private static class FastTranslateAnimation extends TranslateAnimation { - public FastTranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, - int fromYType, float fromYValue, int toYType, float toYValue) { - super(fromXType, fromXValue, toXType, toXValue, - fromYType, fromYValue, toYType, toYValue); - } - - @Override - public boolean willChangeTransformationMatrix() { - return true; - } - - @Override - public boolean willChangeBounds() { - return false; - } - } - - private static class FastAnimationSet extends AnimationSet { - FastAnimationSet() { - super(false); - } - - @Override - public boolean willChangeTransformationMatrix() { - return true; - } - - @Override - public boolean willChangeBounds() { - return false; - } - } -} |