Merge "Launcher-side changes to update packages after the set of app widgets has changed. (Bug 6602951)"
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index b9d35c2..0b01e42 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -23,9 +23,9 @@
     <string name="home" msgid="5921706419368316758">"Startbildschirm"</string>
     <string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
     <string name="folder_name" msgid="8551881338202938211"></string>
-    <string name="chooser_wallpaper" msgid="6063168087625352235">"Hintergrund auswählen von"</string>
+    <string name="chooser_wallpaper" msgid="6063168087625352235">"Hintergrund auswählen"</string>
     <string name="wallpaper_instructions" msgid="4215640646180727542">"Hintergrund festlegen"</string>
-    <string name="pick_wallpaper" msgid="5630222540525626723">"Hintergrundbilder"</string>
+    <string name="pick_wallpaper" msgid="5630222540525626723">"Hintergrund-Bilder"</string>
     <string name="activity_not_found" msgid="217823393239365967">"App ist nicht installiert."</string>
     <string name="widgets_tab_label" msgid="9145860100000983599">"Widgets"</string>
     <string name="long_press_widget_to_add" msgid="7395697462851217506">"Zum Hinzufügen Widget berühren und halten"</string>
diff --git a/res/values-sw340dp/dimens.xml b/res/values-sw340dp/dimens.xml
index 42fbb47..93de009 100644
--- a/res/values-sw340dp/dimens.xml
+++ b/res/values-sw340dp/dimens.xml
@@ -39,10 +39,4 @@
     <dimen name="cell_layout_top_padding_land">8dp</dimen>
     <dimen name="cell_layout_bottom_padding_port">8dp</dimen>
     <dimen name="cell_layout_bottom_padding_land">8dp</dimen>
-
-<!-- Workspace cell size -->
-    <dimen name="workspace_width_gap_land">0dp</dimen>
-    <dimen name="workspace_width_gap_port">0dp</dimen>
-    <dimen name="workspace_height_gap_land">0dp</dimen>
-    <dimen name="workspace_height_gap_port">0dp</dimen>
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 274c72f..f15d3d8 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -150,8 +150,8 @@
     <dimen name="workspace_cell_width_port">80dp</dimen>
     <dimen name="workspace_cell_height_land">74dp</dimen>
     <dimen name="workspace_cell_height_port">100dp</dimen>
-    <dimen name="workspace_width_gap_land">-1dp</dimen>
-    <dimen name="workspace_width_gap_port">-1dp</dimen>
-    <dimen name="workspace_height_gap_land">-1dp</dimen>
-    <dimen name="workspace_height_gap_port">-1dp</dimen>
+    <dimen name="workspace_width_gap_land">0dp</dimen>
+    <dimen name="workspace_width_gap_port">0dp</dimen>
+    <dimen name="workspace_height_gap_land">0dp</dimen>
+    <dimen name="workspace_height_gap_port">0dp</dimen>
 </resources>
diff --git a/src/com/android/launcher2/Folder.java b/src/com/android/launcher2/Folder.java
index dfbe8d2..53c3046 100644
--- a/src/com/android/launcher2/Folder.java
+++ b/src/com/android/launcher2/Folder.java
@@ -923,7 +923,9 @@
 
     private void onCloseComplete() {
         DragLayer parent = (DragLayer) getParent();
-        parent.removeView(this);
+        if (parent != null) {
+            parent.removeView(this);
+        }
         mDragController.removeDropTarget((DropTarget) this);
         clearFocus();
         mFolderIcon.requestFocus();
diff --git a/src/com/android/launcher2/InstallShortcutReceiver.java b/src/com/android/launcher2/InstallShortcutReceiver.java
index fb7bf30..20a1966 100644
--- a/src/com/android/launcher2/InstallShortcutReceiver.java
+++ b/src/com/android/launcher2/InstallShortcutReceiver.java
@@ -168,6 +168,7 @@
                 if (intent.getAction() == null) {
                     intent.setAction(Intent.ACTION_VIEW);
                 } else if (intent.getAction().equals(Intent.ACTION_MAIN) &&
+                        intent.getCategories() != null &&
                         intent.getCategories().contains(Intent.CATEGORY_LAUNCHER)) {
                     intent.addFlags(
                         Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
diff --git a/src/com/android/launcher2/SearchDropTargetBar.java b/src/com/android/launcher2/SearchDropTargetBar.java
index 77681a8..a1d36cd 100644
--- a/src/com/android/launcher2/SearchDropTargetBar.java
+++ b/src/com/android/launcher2/SearchDropTargetBar.java
@@ -144,7 +144,7 @@
             if (mEnableDropDownDropTargets) {
                 mQSBSearchBar.setTranslationY(0);
             } else {
-                mDropTargetBar.setAlpha(1f);
+                mQSBSearchBar.setAlpha(1f);
             }
         }
         mIsSearchBarHidden = false;
@@ -159,7 +159,7 @@
             if (mEnableDropDownDropTargets) {
                 mQSBSearchBar.setTranslationY(-mBarHeight);
             } else {
-                mDropTargetBar.setAlpha(0f);
+                mQSBSearchBar.setAlpha(0f);
             }
         }
         mIsSearchBarHidden = true;
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index e18d8ef..174d23b 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -2385,7 +2385,13 @@
         // Here we store the final page that will be dropped to, if the workspace in fact
         // receives the drop
         if (mInScrollArea) {
-            mDropToLayout = mDragOverlappingLayout;
+            if (isPageMoving()) {
+                // If the user drops while the page is scrolling, we should use that page as the
+                // destination instead of the page that is being hovered over.
+                mDropToLayout = (CellLayout) getPageAt(getNextPage());
+            } else {
+                mDropToLayout = mDragOverlappingLayout;
+            }
         } else {
             mDropToLayout = mDragTargetLayout;
         }