Merge "Support for dynamically adding/removing -1 screen" into jb-ub-now-indigo-rose
diff --git a/res/layout/user_folder.xml b/res/layout/user_folder.xml
index d790c53..45986e5 100644
--- a/res/layout/user_folder.xml
+++ b/res/layout/user_folder.xml
@@ -48,5 +48,6 @@
         android:textColorHighlight="#ff333333"
         android:gravity="center_horizontal"
         android:singleLine="true"
-        android:imeOptions="flagNoExtractUi"/>
+        android:imeOptions="flagNoExtractUi"
+        android:fontFamily="sans-serif-condensed"/>
 </com.android.launcher3.Folder>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 618bb47..cf77b51 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -74,6 +74,7 @@
         <item name="android:textColor">@color/workspace_icon_text_color</item>
         <item name="android:shadowRadius">2.0</item>
         <item name="android:shadowColor">#B0000000</item>
+        <item name="android:fontFamily">sans-serif-condensed</item>
     </style>
 
     <style name="WorkspaceIcon.Portrait">
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 5aa200a..daf9f09 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -1169,6 +1169,7 @@
                 startSettings();
             }
         });
+        mOverviewPanel.setAlpha(0f);
 
         // Setup the workspace
         mWorkspace.setHapticFeedbackEnabled(false);
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 30c3ea7..d8fc983 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -133,6 +133,8 @@
     protected float mTotalMotionX;
     private int mLastScreenCenter = -1;
 
+    private boolean mCancelTap;
+
     private int[] mPageScrolls;
 
     protected final static int TOUCH_STATE_REST = 0;
@@ -735,7 +737,7 @@
         // NOTE: We multiply by 1.5f to account for the fact that depending on the offset of the
         // viewport, we can be at most one and a half screens offset once we scale down
         DisplayMetrics dm = getResources().getDisplayMetrics();
-        int maxSize = Math.max(dm.widthPixels, dm.heightPixels);
+        int maxSize = Math.max(dm.widthPixels, dm.heightPixels + mInsets.top + mInsets.bottom);
         int parentWidthSize, parentHeightSize;
         int scaledWidthSize, scaledHeightSize;
         if (mUseMinScale) {
@@ -1851,7 +1853,9 @@
                     onDropToDelete();
                 }
             } else {
-                onUnhandledTap(ev);
+                if (!mCancelTap) {
+                    onUnhandledTap(ev);
+                }
             }
 
             // Remove the callback to wait for the side page hover timeout
@@ -1884,6 +1888,7 @@
     private void resetTouchState() {
         releaseVelocityTracker();
         endReordering();
+        mCancelTap = false;
         mTouchState = TOUCH_STATE_REST;
         mActivePointerId = INVALID_POINTER;
     }
@@ -2156,6 +2161,12 @@
         return mAllowLongPress;
     }
 
+    @Override
+    public boolean performLongClick() {
+        mCancelTap = true;
+        return super.performLongClick();
+    }
+
     /**
      * Set true to allow long-press events to be triggered, usually checked by
      * {@link Launcher} to accept or block dpad-initiated long-presses.
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index be2eb1d..596ac11 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1814,6 +1814,7 @@
         float finalBackgroundAlpha = stateIsSpringLoaded ? 1.0f : 0f;
         float finalHotseatAndPageIndicatorAlpha = (stateIsOverview || stateIsSmall) ? 0f : 1f;
         float finalOverviewPanelAlpha = stateIsOverview ? 1f : 0f;
+        float finalSearchBarAlpha = stateIsOverview ? 0f : 1f;
 
         boolean zoomIn = true;
         mNewScale = 1.0f;
@@ -1876,6 +1877,7 @@
             }
         }
 
+        View searchBar = mLauncher.getQsbBar();
         if (animated) {
             LauncherViewPropertyAnimator scale = new LauncherViewPropertyAnimator(this);
             scale.scaleX(mNewScale)
@@ -1922,16 +1924,20 @@
             }
             ObjectAnimator hotseatAlpha = ObjectAnimator.ofFloat(mLauncher.getHotseat(), "alpha",
                     finalHotseatAndPageIndicatorAlpha);
+            ObjectAnimator searchBarAlpha = ObjectAnimator.ofFloat(searchBar,
+                    "alpha", finalSearchBarAlpha);
             ObjectAnimator overviewPanelAlpha = ObjectAnimator.ofFloat(mLauncher.getOverviewPanel(),
                     "alpha", finalOverviewPanelAlpha);
             overviewPanelAlpha.addUpdateListener(new AlphaUpdateListener(
                     mLauncher.getOverviewPanel()));
             hotseatAlpha.addUpdateListener(new AlphaUpdateListener(mLauncher.getHotseat()));
+            searchBarAlpha.addUpdateListener(new AlphaUpdateListener(searchBar));
             if (getPageIndicator() != null) {
                 pageIndicatorAlpha.addUpdateListener(new AlphaUpdateListener(getPageIndicator()));
             }
             anim.play(overviewPanelAlpha);
             anim.play(hotseatAlpha);
+            anim.play(searchBarAlpha);
             anim.play(pageIndicatorAlpha);
             anim.setStartDelay(delay);
         } else {
@@ -1943,6 +1949,13 @@
                 getPageIndicator().setAlpha(finalHotseatAndPageIndicatorAlpha);
                 AlphaUpdateListener.updateVisibility(getPageIndicator());
             }
+            searchBar.setAlpha(finalSearchBarAlpha);
+            AlphaUpdateListener.updateVisibility(mLauncher.getSearchBar());
+        }
+        if (finalSearchBarAlpha == 0) {
+            mLauncher.setVoiceButtonProxyVisible(false);
+        } else {
+            mLauncher.setVoiceButtonProxyVisible(true);
         }
 
         if (stateIsSpringLoaded) {
@@ -1951,6 +1964,9 @@
             // be showing once AppsCustomize disappears
             animateBackgroundGradient(getResources().getInteger(
                     R.integer.config_appsCustomizeSpringLoadedBgAlpha) / 100f, false);
+        } else if (stateIsOverview) {
+            animateBackgroundGradient(getResources().getInteger(
+                    R.integer.config_appsCustomizeSpringLoadedBgAlpha) / 100f, true);
         } else {
             // Fade the background gradient away
             animateBackgroundGradient(0f, true);