DeleteZonepublic class DeleteZone extends android.widget.ImageView implements DragController.DragListener, DropTarget
Fields Summary |
---|
private static final int | ORIENTATION_HORIZONTAL | private static final int | TRANSITION_DURATION | private static final int | ANIMATION_DURATION | private final int[] | mLocation | private Launcher | mLauncher | private boolean | mTrashMode | private android.view.animation.AnimationSet | mInAnimation | private android.view.animation.AnimationSet | mOutAnimation | private android.view.animation.Animation | mHandleInAnimation | private android.view.animation.Animation | mHandleOutAnimation | private int | mOrientation | private DragLayer | mDragLayer | private final android.graphics.RectF | mRegion | private android.graphics.drawable.TransitionDrawable | mTransition | private android.view.View | mHandle |
Constructors Summary |
---|
public DeleteZone(android.content.Context context)
super(context);
| public DeleteZone(android.content.Context context, android.util.AttributeSet attrs)
this(context, attrs, 0);
| public DeleteZone(android.content.Context context, android.util.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();
|
Methods Summary |
---|
public boolean | acceptDrop(DragSource source, int x, int y, int xOffset, int yOffset, java.lang.Object dragInfo)
return true;
| 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);
}
| public void | onDragEnd()
if (mTrashMode) {
mTrashMode = false;
mDragLayer.setDeleteRegion(null);
startAnimation(mOutAnimation);
mHandle.startAnimation(mHandleInAnimation);
setVisibility(GONE);
}
| public void | onDragEnter(DragSource source, int x, int y, int xOffset, int yOffset, java.lang.Object dragInfo)
mTransition.reverseTransition(TRANSITION_DURATION);
| public void | onDragExit(DragSource source, int x, int y, int xOffset, int yOffset, java.lang.Object dragInfo)
mTransition.reverseTransition(TRANSITION_DURATION);
| public void | onDragOver(DragSource source, int x, int y, int xOffset, int yOffset, java.lang.Object dragInfo)
| public void | onDragStart(android.view.View v, DragSource source, java.lang.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 | onDrop(DragSource source, int x, int y, int xOffset, int yOffset, java.lang.Object dragInfo)
final ItemInfo item = (ItemInfo) dragInfo;
if (item.container == -1) return;
final LauncherModel model = Launcher.getModel();
if (item.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
if (item instanceof LauncherAppWidgetInfo) {
model.removeDesktopAppWidget((LauncherAppWidgetInfo) item);
} else {
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 LauncherAppWidgetInfo) {
final LauncherAppWidgetInfo launcherAppWidgetInfo = (LauncherAppWidgetInfo) item;
final LauncherAppWidgetHost appWidgetHost = mLauncher.getAppWidgetHost();
if (appWidgetHost != null) {
appWidgetHost.deleteAppWidgetId(launcherAppWidgetInfo.appWidgetId);
}
}
LauncherModel.deleteItemFromDatabase(mLauncher, item);
| protected void | onFinishInflate()
super.onFinishInflate();
mTransition = (TransitionDrawable) getBackground();
| void | setDragController(DragLayer dragLayer)
mDragLayer = dragLayer;
| void | setHandle(android.view.View view)
mHandle = view;
| void | setLauncher(Launcher launcher)
mLauncher = launcher;
|
|