Merge "Disable fading of side pages on phones. (5270754)"
diff --git a/res/layout-port/launcher.xml b/res/layout-port/launcher.xml
index 898e849..b45800e 100644
--- a/res/layout-port/launcher.xml
+++ b/res/layout-port/launcher.xml
@@ -46,10 +46,6 @@
         android:layout_gravity="bottom"
         android:layout_marginBottom="@dimen/button_bar_height" />
 
-    <include
-        android:id="@+id/qsb_bar"
-        layout="@layout/qsb_bar" />
-
     <!-- The workspace contains 5 screens of cells -->
     <com.android.launcher2.Workspace
         android:id="@+id/workspace"
@@ -71,6 +67,10 @@
         <include android:id="@+id/cell5" layout="@layout/workspace_screen" />
     </com.android.launcher2.Workspace>
 
+    <include
+        android:id="@+id/qsb_bar"
+        layout="@layout/qsb_bar" />
+
     <include layout="@layout/apps_customize_pane"
         android:id="@+id/apps_customize_pane"
         android:layout_width="match_parent"
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index dd04039..9512e24 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -1022,8 +1022,7 @@
                 // Fill in the widget information
                 AppWidgetProviderInfo info = (AppWidgetProviderInfo) rawInfo;
                 createItemInfo = new PendingAddWidgetInfo(info, null, null);
-                int[] cellSpans = CellLayout.rectToCell(getResources(),
-                        info.minWidth, info.minHeight, null);
+                int[] cellSpans = mLauncher.getSpanForWidget(info, null);
                 FastBitmapDrawable preview = new FastBitmapDrawable(data.generatedImages.get(i));
                 widget.applyFromAppWidgetProviderInfo(info, preview, -1, cellSpans, 
                         mHolographicOutlineHelper);
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 255bf06..532926a 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -2150,6 +2150,8 @@
                 ((LauncherTransitionable) toView).onLauncherTransitionStart(scaleAnim, false);
             }
             scaleAnim.addListener(new AnimatorListenerAdapter() {
+                boolean animationCancelled = false;
+
                 @Override
                 public void onAnimationStart(Animator animation) {
                     updateWallpaperVisibility(true);
@@ -2175,7 +2177,13 @@
                         mWorkspace.hideScrollingIndicator(true);
                         mWorkspace.hideDockDivider(true);
                     }
-                    updateWallpaperVisibility(false);
+                    if (!animationCancelled) {
+                        updateWallpaperVisibility(false);
+                    }
+                }
+
+                public void onAnimationCancel(Animator animation) {
+                    animationCancelled = true;
                 }
             });
 
diff --git a/src/com/android/launcher2/LauncherAppWidgetHostView.java b/src/com/android/launcher2/LauncherAppWidgetHostView.java
index 7118c49..7917118 100644
--- a/src/com/android/launcher2/LauncherAppWidgetHostView.java
+++ b/src/com/android/launcher2/LauncherAppWidgetHostView.java
@@ -118,9 +118,13 @@
     @Override
     public void setAppWidget(int appWidgetId, AppWidgetProviderInfo info) {
         super.setAppWidget(appWidgetId, info);
-        // We add necessary padding to the AppWidgetHostView
-        Launcher.Padding padding = mLauncher.getPaddingForWidget(info.provider);
-        setPadding(padding.left, padding.top, padding.right, padding.bottom);
+        // Sometimes the AppWidgetManager returns a null AppWidgetProviderInfo object for
+        // a widget, eg. for some widgets in safe mode.
+        if (info != null) {
+            // We add necessary padding to the AppWidgetHostView
+            Launcher.Padding padding = mLauncher.getPaddingForWidget(info.provider);
+            setPadding(padding.left, padding.top, padding.right, padding.bottom);
+        }
     }
 
     @Override
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 01efd4f..71c3af6 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -1137,8 +1137,11 @@
             cl.setTranslationX(translationX);
             cl.setRotationY(rotation);
         } else {
-            resetCellLayoutTransforms((CellLayout) getChildAt(0), true);
-            resetCellLayoutTransforms((CellLayout) getChildAt(getChildCount() - 1), false);
+            // We don't want to mess with the translations during transitions
+            if (!isSwitchingState()) {
+                resetCellLayoutTransforms((CellLayout) getChildAt(0), true);
+                resetCellLayoutTransforms((CellLayout) getChildAt(getChildCount() - 1), false);
+            }
         }
     }