making size of delete zone & info button larger
- only on XLarge devices
- make application info button inactive when its not visible
- making scroll right "dead" zone bigger so users don't trigger accidental scroll when deleting items
Change-Id: I474de710a80b165d2ce1553c9231a829679132b2
diff --git a/src/com/android/launcher2/ApplicationInfoDropTarget.java b/src/com/android/launcher2/ApplicationInfoDropTarget.java
index cb45b3a..c4aa98c 100644
--- a/src/com/android/launcher2/ApplicationInfoDropTarget.java
+++ b/src/com/android/launcher2/ApplicationInfoDropTarget.java
@@ -21,6 +21,7 @@
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
+import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
@@ -98,9 +99,8 @@
public void onDragStart(DragSource source, Object info, int dragAction) {
if (info != null) {
- mActive = true;
-
if (mManageVisibility) {
+ mActive = true;
// Only show the info icon when an application is selected
if (((ItemInfo)info).itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION) {
setVisibility(VISIBLE);
@@ -111,7 +111,7 @@
}
public boolean isDropEnabled() {
- return true;
+ return mActive;
}
public void onDragEnd() {
@@ -124,6 +124,17 @@
}
}
+ @Override
+ public void getHitRect(Rect outRect) {
+ super.getHitRect(outRect);
+ if (LauncherApplication.isScreenXLarge()) {
+ outRect.top -= 50;
+ outRect.left -= 50;
+ outRect.bottom += 50;
+ outRect.right += 50;
+ }
+ }
+
void setLauncher(Launcher launcher) {
mLauncher = launcher;
}
diff --git a/src/com/android/launcher2/DeleteZone.java b/src/com/android/launcher2/DeleteZone.java
index 1f54b36..e8f160f 100644
--- a/src/com/android/launcher2/DeleteZone.java
+++ b/src/com/android/launcher2/DeleteZone.java
@@ -23,6 +23,7 @@
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
+import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.TransitionDrawable;
import android.util.AttributeSet;
@@ -59,7 +60,8 @@
private int mOrientation;
private DragController mDragController;
- private final RectF mRegion = new RectF();
+ private final RectF mRegionF = new RectF();
+ private final Rect mRegion = new Rect();
private TransitionDrawable mTransition;
private final Paint mTrashPaint = new Paint();
@@ -158,11 +160,17 @@
final ItemInfo item = (ItemInfo) info;
if (item != null) {
mTrashMode = true;
- final int[] location = mLocation;
- getLocationOnScreen(location);
- mRegion.set(location[0], location[1], location[0] + mRight - mLeft,
- location[1] + mBottom - mTop);
- mDragController.setDeleteRegion(mRegion);
+ getHitRect(mRegion);
+ mRegionF.set(mRegion);
+
+ if (LauncherApplication.isScreenXLarge()) {
+ // This region will be a "dead zone" for scrolling; make it extend to the edge of
+ // the screen so users don't accidentally trigger a scroll while deleting items
+ mRegionF.top = mLauncher.getWorkspace().getTop();
+ mRegionF.right = mLauncher.getWorkspace().getRight();
+ }
+
+ mDragController.setDeleteRegion(mRegionF);
// Make sure the icon is set to the default drawable, not the hover drawable
mTransition.resetTransition();
@@ -194,6 +202,17 @@
return true;
}
+ @Override
+ public void getHitRect(Rect outRect) {
+ super.getHitRect(outRect);
+ if (LauncherApplication.isScreenXLarge()) {
+ outRect.top -= 50;
+ outRect.left -= 50;
+ outRect.bottom += 50;
+ outRect.right += 50;
+ }
+ }
+
private void createAnimations() {
if (mInAnimation == null) {
mInAnimation = new FastAnimationSet();