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();