Merge branch 'master' into honeycomb-release
diff --git a/res/layout-xlarge-port/customization_drawer.xml b/res/layout-xlarge-port/customization_drawer.xml
index a9e1c0d..d90f3ca 100644
--- a/res/layout-xlarge-port/customization_drawer.xml
+++ b/res/layout-xlarge-port/customization_drawer.xml
@@ -19,8 +19,8 @@
 
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    launcher:wallpaperCellSpanX="4"
-    launcher:widgetCellCountX="10"
+    launcher:wallpaperCellSpanX="3"
+    launcher:widgetCellCountX="9"
     launcher:cellCountX="5"
     launcher:cellCountY="3"
     launcher:pageLayoutWidthGap="36dp"
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java
index 92140b1..6db6aa9 100644
--- a/src/com/android/launcher2/CustomizePagedView.java
+++ b/src/com/android/launcher2/CustomizePagedView.java
@@ -768,7 +768,10 @@
         LinearLayout layout = (LinearLayout) getChildAt(page);
         layout.removeAllViews();
         final int count = mWallpaperList.size();
-        for (int i = 0; i < count; ++i) {
+        final int numItemsPerPage = mMaxWidgetsCellHSpan / mWallpaperCellHSpan;
+        final int startIndex = page * numItemsPerPage;
+        final int endIndex = Math.min(count, startIndex + numItemsPerPage);
+        for (int i = startIndex; i < endIndex; ++i) {
             final ResolveInfo info = mWallpaperList.get(i);
 
             LinearLayout l = (LinearLayout) mInflater.inflate(
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 69be008..f9d087d 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -95,7 +95,7 @@
     private static final int CHILDREN_OUTLINE_FADE_OUT_DURATION = 375;
     private static final int CHILDREN_OUTLINE_FADE_IN_DURATION = 100;
 
-    private static final int BACKGROUND_FADE_OUT_DURATION = 450;
+    private static final int BACKGROUND_FADE_OUT_DURATION = 350;
     private static final int BACKGROUND_FADE_IN_DURATION = 350;
 
     // These animators are used to fade the children's outlines
@@ -591,6 +591,7 @@
         if (mBackgroundFadeOutAnimation != null) mBackgroundFadeOutAnimation.cancel();
         if (mBackgroundFadeInAnimation != null) mBackgroundFadeInAnimation.cancel();
         mBackgroundFadeInAnimation = ObjectAnimator.ofFloat(this, "backgroundAlpha", 1.0f);
+        mBackgroundFadeInAnimation.setInterpolator(new DecelerateInterpolator(1.5f));
         mBackgroundFadeInAnimation.setDuration(BACKGROUND_FADE_IN_DURATION);
         mBackgroundFadeInAnimation.start();
     }
@@ -600,6 +601,7 @@
         if (mBackgroundFadeInAnimation != null) mBackgroundFadeInAnimation.cancel();
         if (mBackgroundFadeOutAnimation != null) mBackgroundFadeOutAnimation.cancel();
         mBackgroundFadeOutAnimation = ObjectAnimator.ofFloat(this, "backgroundAlpha", 0.0f);
+        mBackgroundFadeOutAnimation.setInterpolator(new DecelerateInterpolator(1.5f));
         mBackgroundFadeOutAnimation.setDuration(BACKGROUND_FADE_OUT_DURATION);
         mBackgroundFadeOutAnimation.start();
     }