Minor fixes to Launcher

- Tweaking the AllApps tab padding
- Fixing issue where the cling punch out might be in the wrong location
- Removing unused dragging code related to drop/scroll area overlap
- Tweaking padding so that picking up an icon on the top row does not automatically hover over delete (Bug 5636264)
- Fixing issue where multiple bgs in AllApps tab bar line makes it look blurry (Bug 5523822)

Change-Id: I707397c231188a9feee8c0856374e0483cf37296
diff --git a/res/drawable/tab_widget_indicator_selector.xml b/res/drawable/tab_widget_indicator_selector.xml
index ff92b40..d06f757 100644
--- a/res/drawable/tab_widget_indicator_selector.xml
+++ b/res/drawable/tab_widget_indicator_selector.xml
@@ -16,7 +16,6 @@
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <!-- Non focused states -->
-    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_holo" />
     <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_holo" />
 
     <!-- Focused states -->
diff --git a/res/layout-sw600dp/market_button.xml b/res/layout-sw600dp/market_button.xml
index 3f31319..4ccecd9 100644
--- a/res/layout-sw600dp/market_button.xml
+++ b/res/layout-sw600dp/market_button.xml
@@ -19,8 +19,8 @@
     style="@style/MarketButton"
     android:onClick="onClickAppMarketButton"
     android:gravity="center"
-    android:paddingLeft="10dp"
-    android:paddingRight="10dp"
+    android:paddingLeft="32dp"
+    android:paddingRight="32dp"
     android:drawablePadding="10dp"
     android:text="@string/market"
     android:contentDescription="@string/market"
@@ -32,6 +32,5 @@
     android:shadowDx="0.0"
     android:shadowDy="0.0"
     android:shadowRadius="2.0"
-    android:background="@drawable/tab_widget_indicator_selector"
     android:focusable="true"
     android:clickable="true" />
diff --git a/res/layout/market_button.xml b/res/layout/market_button.xml
index 2d840d7..5e10156 100644
--- a/res/layout/market_button.xml
+++ b/res/layout/market_button.xml
@@ -19,13 +19,12 @@
     style="@style/MarketButton"
     android:onClick="onClickAppMarketButton"
     android:gravity="center"
-    android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
-    android:paddingRight="@dimen/toolbar_button_horizontal_padding"
+    android:paddingLeft="16dp"
+    android:paddingRight="16dp"
     android:contentDescription="@string/market"
     android:shadowColor="@color/workspace_all_apps_and_delete_zone_text_shadow_color"
     android:shadowDx="0.0"
     android:shadowDy="0.0"
     android:shadowRadius="2.0"
-    android:background="@drawable/tab_widget_indicator_selector"
     android:focusable="true"
     android:clickable="true" />
diff --git a/res/values-land/styles.xml b/res/values-land/styles.xml
index bb155bd..7949d2d 100644
--- a/res/values-land/styles.xml
+++ b/res/values-land/styles.xml
@@ -65,10 +65,5 @@
         <item name="android:shadowDy">1.0</item>
         <item name="android:shadowRadius">4.0</item>
     </style>
-
-    <style name="TabIndicator.AppsCustomize">
-        <item name="android:paddingTop">5dp</item>
-        <item name="android:paddingBottom">10dp</item>
-    </style>
 </resources>
 
diff --git a/res/values-sw340dp/dimens.xml b/res/values-sw340dp/dimens.xml
new file mode 100644
index 0000000..69d6e58
--- /dev/null
+++ b/res/values-sw340dp/dimens.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<resources>
+    <!-- Drag padding to add to the bottom of drop targets -->
+    <dimen name="drop_target_drag_padding">20dp</dimen>
+</resources>
diff --git a/res/values-sw600dp/styles.xml b/res/values-sw600dp/styles.xml
index 70e24be..1905fad 100644
--- a/res/values-sw600dp/styles.xml
+++ b/res/values-sw600dp/styles.xml
@@ -79,10 +79,8 @@
         <item name="android:textSize">13sp</item>
     </style>
     <style name="TabIndicator.AppsCustomize">
-        <item name="android:paddingTop">16dp</item>
-        <item name="android:paddingBottom">20dp</item>
-        <item name="android:paddingLeft">48dp</item>
-        <item name="android:paddingRight">48dp</item>
+        <item name="android:paddingLeft">32dp</item>
+        <item name="android:paddingRight">32dp</item>
         <item name="android:textSize">14sp</item>
     </style>
 
@@ -124,8 +122,8 @@
         <item name="android:layout_gravity">center</item>
         <item name="android:gravity">center_vertical</item>
         <item name="android:drawablePadding">7.5dp</item>
-        <item name="android:paddingLeft">25dp</item>
-        <item name="android:paddingRight">25dp</item>
+        <item name="android:paddingLeft">60dp</item>
+        <item name="android:paddingRight">60dp</item>
         <item name="android:textColor">#FFFFFFFF</item>
         <item name="android:textSize">16sp</item>
         <item name="android:shadowColor">#393939</item>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 87c9be8..a744cce 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -79,9 +79,6 @@
     <dimen name="button_bar_width_right_padding">0dp</dimen>
     <dimen name="button_bar_height_plus_padding">70dp</dimen>
 
-    <!-- Drag padding to add to the drop targets -->
-    <dimen name="drop_target_drag_padding">40dp</dimen>
-
     <!-- extra horizontal spacing between mini screen thumbnails ie. in all
          apps and in customization mode -->
     <dimen name="smallScreenExtraSpacing">0dip</dimen>
@@ -91,6 +88,9 @@
     <dimen name="allAppsSmallScreenVerticalMarginLandscape">30dip</dimen>
     <dimen name="allAppsSmallScreenVerticalMarginPortrait">60dip</dimen>
 
+    <!-- Drag padding to add to the bottom of drop targets -->
+    <dimen name="drop_target_drag_padding">14dp</dimen>
+
     <!-- padding between the delete zone drawable and text -->
     <dimen name="delete_zone_drawable_padding">8dip</dimen>
 
diff --git a/res/values/styles.xml b/res/values/styles.xml
index ddbdb34..502a836 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -161,8 +161,8 @@
         <item name="android:layout_width">wrap_content</item>
         <item name="android:layout_height">match_parent</item>
         <item name="android:gravity">center</item>
-        <item name="android:paddingLeft">30dp</item>
-        <item name="android:paddingRight">30dp</item>
+        <item name="android:paddingLeft">24dp</item>
+        <item name="android:paddingRight">24dp</item>
         <item name="android:background">@drawable/tab_widget_indicator_selector</item>
         <item name="android:textColor">?android:attr/textColorPrimary</item>
         <item name="android:textSize">12sp</item>
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index 2cdd16a..0189d6c 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -193,6 +193,7 @@
     private ArrayList<Object> mWidgets;
 
     // Cling
+    private boolean mHasShownAllAppsCling;
     private int mClingFocusedX;
     private int mClingFocusedY;
 
@@ -396,14 +397,33 @@
         int page = getPageForComponent(mSaveInstanceStateItemIndex);
         invalidatePageData(Math.max(0, page));
 
-        // Calculate the position for the cling punch through
-        int[] offset = new int[2];
-        int[] pos = mWidgetSpacingLayout.estimateCellPosition(mClingFocusedX, mClingFocusedY);
-        mLauncher.getDragLayer().getLocationInDragLayer(this, offset);
-        pos[0] += (getMeasuredWidth() - mWidgetSpacingLayout.getMeasuredWidth()) / 2 + offset[0];
-        pos[1] += (getMeasuredHeight() - mWidgetSpacingLayout.getMeasuredHeight()) / 2 + offset[1];
-        mLauncher.showFirstRunAllAppsCling(pos);
+        // Show All Apps cling if we are finished transitioning, otherwise, we will try again when
+        // the transition completes in AppsCustomizeTabHost (otherwise the wrong offsets will be
+        // returned while animating)
+        AppsCustomizeTabHost host = (AppsCustomizeTabHost) getTabHost();
+        if (!host.isTransitioning()) {
+            post(new Runnable() {
+                @Override
+                public void run() {
+                    showAllAppsCling();
+                }
+            });
+        }
+    }
 
+    void showAllAppsCling() {
+        if (!mHasShownAllAppsCling && isDataReady() && testDataReady()) {
+            mHasShownAllAppsCling = true;
+            // Calculate the position for the cling punch through
+            int[] offset = new int[2];
+            int[] pos = mWidgetSpacingLayout.estimateCellPosition(mClingFocusedX, mClingFocusedY);
+            mLauncher.getDragLayer().getLocationInDragLayer(this, offset);
+            // PagedViews are centered horizontally but top aligned
+            pos[0] += (getMeasuredWidth() - mWidgetSpacingLayout.getMeasuredWidth()) / 2 +
+                    offset[0];
+            pos[1] += offset[1];
+            mLauncher.showFirstRunAllAppsCling(pos);
+        }
     }
 
     @Override
diff --git a/src/com/android/launcher2/AppsCustomizeTabHost.java b/src/com/android/launcher2/AppsCustomizeTabHost.java
index 897a7fb..778d6bc 100644
--- a/src/com/android/launcher2/AppsCustomizeTabHost.java
+++ b/src/com/android/launcher2/AppsCustomizeTabHost.java
@@ -388,8 +388,9 @@
         }
 
         if (!toWorkspace) {
-            // Dismiss the cling if necessary
+            // Dismiss the workspace cling and show the all apps cling (if not already shown)
             l.dismissWorkspaceCling(null);
+            mAppsCustomizePane.showAllAppsCling();
 
             if (!LauncherApplication.isScreenLarge()) {
                 mAppsCustomizePane.hideScrollingIndicator(false);
diff --git a/src/com/android/launcher2/DragController.java b/src/com/android/launcher2/DragController.java
index ee054ab..286e2fe 100644
--- a/src/com/android/launcher2/DragController.java
+++ b/src/com/android/launcher2/DragController.java
@@ -101,7 +101,6 @@
     private int mScrollState = SCROLL_OUTSIDE_ZONE;
     private ScrollRunnable mScrollRunnable = new ScrollRunnable();
 
-    private RectF mDeleteRegion;
     private DropTarget mLastDropTarget;
 
     private InputMethodManager mInputMethodManager;
@@ -486,12 +485,6 @@
         }
         mLastDropTarget = dropTarget;
 
-        // Scroll, maybe, but not if we're in the delete region.
-        boolean inDeleteRegion = false;
-        if (mDeleteRegion != null) {
-            inDeleteRegion = mDeleteRegion.contains(x, y);
-        }
-
         // After a scroll, the touch point will still be in the scroll region.
         // Rather than scrolling immediately, require a bit of twiddling to scroll again
         final int slop = ViewConfiguration.get(mLauncher).getScaledWindowTouchSlop();
@@ -500,7 +493,7 @@
         mLastTouch[0] = x;
         mLastTouch[1] = y;
 
-        if (!inDeleteRegion && x < mScrollZone) {
+        if (x < mScrollZone) {
             if (mScrollState == SCROLL_OUTSIDE_ZONE && mDistanceSinceScroll > slop) {
                 mScrollState = SCROLL_WAITING_IN_ZONE;
                 if (mDragScroller.onEnterScrollArea(x, y, SCROLL_LEFT)) {
@@ -508,7 +501,7 @@
                     mHandler.postDelayed(mScrollRunnable, SCROLL_DELAY);
                 }
             }
-        } else if (!inDeleteRegion && x > mScrollView.getWidth() - mScrollZone) {
+        } else if (x > mScrollView.getWidth() - mScrollZone) {
             if (mScrollState == SCROLL_OUTSIDE_ZONE && mDistanceSinceScroll > slop) {
                 mScrollState = SCROLL_WAITING_IN_ZONE;
                 if (mDragScroller.onEnterScrollArea(x, y, SCROLL_RIGHT)) {
@@ -669,15 +662,6 @@
         mScrollView = v;
     }
 
-    /**
-     * Specifies the delete region.  We won't scroll on touch events over the delete region.
-     *
-     * @param region The rectangle in DragLayer coordinates of the delete region.
-     */
-    void setDeleteRegion(RectF region) {
-        mDeleteRegion = region;
-    }
-
     DragView getDragView() {
         return mDragObject.dragView;
     }