Merge "Making sure overview mode can't get stuck (issue 11022017)" into jb-ub-now-indigo-rose
diff --git a/res/drawable-hdpi/ic_pageindicator_add.png b/res/drawable-hdpi/ic_pageindicator_add.png
index c77a4f9..c37d622 100644
--- a/res/drawable-hdpi/ic_pageindicator_add.png
+++ b/res/drawable-hdpi/ic_pageindicator_add.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_pageindicator_add.png b/res/drawable-mdpi/ic_pageindicator_add.png
index 22420bd..8e05e64 100644
--- a/res/drawable-mdpi/ic_pageindicator_add.png
+++ b/res/drawable-mdpi/ic_pageindicator_add.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_pageindicator_add.png b/res/drawable-xhdpi/ic_pageindicator_add.png
index 9647b8f..28e164b 100644
--- a/res/drawable-xhdpi/ic_pageindicator_add.png
+++ b/res/drawable-xhdpi/ic_pageindicator_add.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_pageindicator_add.png b/res/drawable-xxhdpi/ic_pageindicator_add.png
index 591b189..fd8a662 100644
--- a/res/drawable-xxhdpi/ic_pageindicator_add.png
+++ b/res/drawable-xxhdpi/ic_pageindicator_add.png
Binary files differ
diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java
index 81f9af2..72a6ce2 100644
--- a/src/com/android/launcher3/CellLayout.java
+++ b/src/com/android/launcher3/CellLayout.java
@@ -296,12 +296,8 @@
         addView(mShortcutsAndWidgets);
     }
 
-    public void enableHardwareLayers() {
-        mShortcutsAndWidgets.setLayerType(LAYER_TYPE_HARDWARE, sPaint);
-    }
-
-    public void disableHardwareLayers() {
-        mShortcutsAndWidgets.setLayerType(LAYER_TYPE_NONE, sPaint);
+    public void enableHardwareLayer(boolean hasLayer) {
+        mShortcutsAndWidgets.setLayerType(hasLayer ? LAYER_TYPE_HARDWARE : LAYER_TYPE_NONE, sPaint);
     }
 
     public void buildHardwareLayer() {
diff --git a/src/com/android/launcher3/DynamicGrid.java b/src/com/android/launcher3/DynamicGrid.java
index 33eb595..8a6fbc1 100644
--- a/src/com/android/launcher3/DynamicGrid.java
+++ b/src/com/android/launcher3/DynamicGrid.java
@@ -498,17 +498,17 @@
         boolean hasAA = !AppsCustomizePagedView.DISABLE_ALL_APPS;
         // Our phone profiles include the bar sizes in each orientation
         deviceProfiles.add(new DeviceProfile("Super Short Stubby",
-                255, 300,  2, 3,  48, 12, (hasAA ? 5 : 4), 48));
+                255, 300,  2, 3,  48, 13, (hasAA ? 5 : 4), 48));
         deviceProfiles.add(new DeviceProfile("Shorter Stubby",
-                255, 400,  3, 3,  48, 12, (hasAA ? 5 : 4), 48));
+                255, 400,  3, 3,  48, 13, (hasAA ? 5 : 4), 48));
         deviceProfiles.add(new DeviceProfile("Short Stubby",
-                275, 420,  3, 4,  48, 12, (hasAA ? 5 : 4), 48));
+                275, 420,  3, 4,  48, 13, (hasAA ? 5 : 4), 48));
         deviceProfiles.add(new DeviceProfile("Stubby",
-                255, 450,  3, 4,  48, 12, (hasAA ? 5 : 4), 48));
+                255, 450,  3, 4,  48, 13, (hasAA ? 5 : 4), 48));
         deviceProfiles.add(new DeviceProfile("Nexus S",
-                296, 491.33f,  4, 4,  48, 12, (hasAA ? 5 : 4), 48));
+                296, 491.33f,  4, 4,  48, 13, (hasAA ? 5 : 4), 48));
         deviceProfiles.add(new DeviceProfile("Nexus 4",
-                359, 518,  4, 4,  60, 12, (hasAA ? 5 : 4), 56));
+                359, 518,  4, 4,  60, 13, (hasAA ? 5 : 4), 56));
         // The tablet profile is odd in that the landscape orientation
         // also includes the nav bar on the side
         deviceProfiles.add(new DeviceProfile("Nexus 7",
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 02d4fff..2b7a737 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1046,7 +1046,7 @@
                 mLauncher.updateVoiceButtonProxyVisible(false);
             }
         }
-    };
+    }
 
     protected void setWallpaperDimension() {
         String spKey = WallpaperCropActivity.getSharedPreferencesKey();
@@ -1572,7 +1572,7 @@
             } else {
                 for (int i = 0; i < getPageCount(); i++) {
                     final CellLayout cl = (CellLayout) getChildAt(i);
-                    cl.disableHardwareLayers();
+                    cl.enableHardwareLayer(false);
                 }
             }
         }
@@ -1592,17 +1592,16 @@
                     leftScreen--;
                 }
             }
+
+            final CellLayout customScreen = mWorkspaceScreens.get(CUSTOM_CONTENT_SCREEN_ID);
             for (int i = 0; i < screenCount; i++) {
                 final CellLayout layout = (CellLayout) getPageAt(i);
-                if (!(leftScreen <= i && i <= rightScreen && shouldDrawChild(layout))) {
-                    layout.disableHardwareLayers();
-                }
-            }
-            for (int i = 0; i < screenCount; i++) {
-                final CellLayout layout = (CellLayout) getPageAt(i);
-                if (leftScreen <= i && i <= rightScreen && shouldDrawChild(layout)) {
-                    layout.enableHardwareLayers();
-                }
+
+                // enable layers between left and right screen inclusive, except for the
+                // customScreen, which may animate its content during transitions.
+                boolean enableLayer = layout != customScreen &&
+                        leftScreen <= i && i <= rightScreen && shouldDrawChild(layout);
+                layout.enableHardwareLayer(enableLayer);
             }
         }
     }
@@ -4283,7 +4282,7 @@
         if (screenId == EXTRA_EMPTY_SCREEN_ID) {
             int count = mScreenOrder.size() - (hasCustomContent() ? 1 : 0);
             if (count > 1) {
-                return new PageIndicator.PageMarkerResources(R.drawable.ic_pageindicator_add,
+                return new PageIndicator.PageMarkerResources(R.drawable.ic_pageindicator_current,
                         R.drawable.ic_pageindicator_add);
             }
         }