Merge "Deleting empty folders based on DB state" into ub-launcher3-burnaby
diff --git a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
index 9415941..d9bfc30 100644
--- a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
+++ b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
@@ -1147,6 +1147,6 @@
             return true;
 
         // Check if the user has specifically enabled rotation via preferences.
-        return Utilities.isAllowRotationPrefEnabled(getApplicationContext());
+        return Utilities.isAllowRotationPrefEnabled(getApplicationContext(), true);
     }
 }
diff --git a/res/drawable/all_apps_search_bg.xml b/res/drawable/all_apps_search_bg.xml
index 57eb582..a09f88f 100644
--- a/res/drawable/all_apps_search_bg.xml
+++ b/res/drawable/all_apps_search_bg.xml
@@ -14,10 +14,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-       android:shape="rectangle">
-    <solid android:color="@color/quantum_panel_bg_color" />
-    <corners
-        android:topLeftRadius="2dp"
-        android:topRightRadius="2dp" />
-</shape>
\ No newline at end of file
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+    android:drawable="@drawable/quantum_panel"
+    android:insetTop="@dimen/container_bounds_minus_quantum_panel_padding_inset"
+    android:insetBottom="@dimen/container_bounds_minus_quantum_panel_padding_inset" />
\ No newline at end of file
diff --git a/res/layout-sw600dp/all_apps.xml b/res/layout-sw600dp/all_apps.xml
deleted file mode 100644
index 368e6ab..0000000
--- a/res/layout-sw600dp/all_apps.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<com.android.launcher3.allapps.AllAppsContainerView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/apps_view"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:padding="@dimen/all_apps_container_inset"
-    android:descendantFocusability="afterDescendants">
-    <include
-        layout="@layout/all_apps_reveal"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="center" />
-    <include
-        layout="@layout/all_apps_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="center" />
-</com.android.launcher3.allapps.AllAppsContainerView>
\ No newline at end of file
diff --git a/res/layout/all_apps.xml b/res/layout/all_apps.xml
index b907c34..1bf54ee 100644
--- a/res/layout/all_apps.xml
+++ b/res/layout/all_apps.xml
@@ -21,15 +21,37 @@
     android:id="@+id/apps_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:descendantFocusability="afterDescendants">
-    <include
-        layout="@layout/all_apps_reveal"
+    android:orientation="vertical">
+
+    <!-- Both android:focusable and android:focusableInTouchMode are needed for
+         the view to get focus change events. -->
+    <FrameLayout
+        android:id="@+id/search_box_container"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="center" />
-    <include
-        layout="@layout/all_apps_container"
+        android:layout_height="wrap_content"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:visibility="gone" />
+
+    <FrameLayout
+        android:id="@+id/content"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="center" />
+        android:layout_height="0dp"
+        android:layout_weight="1">
+        <FrameLayout
+            android:id="@+id/all_apps_reveal"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_gravity="center"
+            android:focusable="false"
+            android:elevation="2dp"
+            android:visibility="invisible" />
+        <include
+            layout="@layout/all_apps_container"
+            android:id="@+id/all_apps_container"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_gravity="center"
+            android:visibility="gone" />
+    </FrameLayout>
 </com.android.launcher3.allapps.AllAppsContainerView>
\ No newline at end of file
diff --git a/res/layout/all_apps_container.xml b/res/layout/all_apps_container.xml
index fc77cd3..5801a0e 100644
--- a/res/layout/all_apps_container.xml
+++ b/res/layout/all_apps_container.xml
@@ -14,95 +14,35 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
+<!-- Both android:focusable and android:focusableInTouchMode are needed for
+     the view to get focus change events. -->
 <com.android.launcher3.allapps.AllAppsRecyclerViewContainerView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/apps_list"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:elevation="15dp"
-    android:focusableInTouchMode="true"
-    android:visibility="gone" >
+    android:focusable="true"
+    android:focusableInTouchMode="true">
 
     <com.android.launcher3.allapps.AllAppsRecyclerView
-        android:id="@+id/apps_list_view"
+        android:id="@+id/collection"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_gravity="center_horizontal|top"
-        android:layout_marginTop="@dimen/all_apps_search_bar_height"
         android:clipToPadding="false"
-        android:descendantFocusability="afterDescendants"
-        android:focusable="true" />
+        android:focusable="true"
+        android:descendantFocusability="afterDescendants" />
 
     <LinearLayout
         android:id="@+id/prediction_bar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginTop="@dimen/all_apps_search_bar_height"
-        android:paddingBottom="@dimen/all_apps_prediction_bar_bottom_padding"
+        android:paddingTop="@dimen/all_apps_prediction_bar_top_bottom_padding"
+        android:paddingBottom="@dimen/all_apps_prediction_bar_top_bottom_padding"
         android:orientation="horizontal"
-        android:descendantFocusability="afterDescendants"
         android:focusable="true"
+        android:descendantFocusability="afterDescendants"
         android:visibility="invisible" >
     </LinearLayout>
 
-    <!-- We always want the search bar on top, so it goes last. -->
-
-    <FrameLayout
-        android:id="@+id/header"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/all_apps_search_bar_height"
-        android:background="@drawable/all_apps_search_bg" >
-
-        <LinearLayout
-            android:id="@+id/app_search_container"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:visibility="invisible" >
-
-            <ImageView
-                android:id="@+id/dismiss_search_button"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="start|center_vertical"
-                android:layout_marginLeft="4dp"
-                android:layout_marginStart="4dp"
-                android:contentDescription="@string/all_apps_button_label"
-                android:paddingBottom="13dp"
-                android:paddingTop="13dp"
-                android:src="@drawable/ic_arrow_back_grey" />
-
-            <com.android.launcher3.allapps.AllAppsSearchEditView
-                android:id="@+id/apps_search_box"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:background="@android:color/transparent"
-                android:focusableInTouchMode="true"
-                android:gravity="fill_horizontal"
-                android:hint="@string/all_apps_search_bar_hint"
-                android:imeOptions="actionDone|flagNoExtractUi"
-                android:maxLines="1"
-                android:paddingBottom="16dp"
-                android:paddingLeft="8dp"
-                android:paddingTop="16dp"
-                android:scrollHorizontally="true"
-                android:singleLine="true"
-                android:textColor="#4c4c4c"
-                android:textColorHint="#9c9c9c"
-                android:textSize="16sp" />
-        </LinearLayout>
-
-        <ImageView
-            android:id="@+id/search_button"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="end|center_vertical"
-            android:layout_marginEnd="6dp"
-            android:layout_marginRight="6dp"
-            android:contentDescription="@string/all_apps_search_bar_hint"
-            android:paddingBottom="13dp"
-            android:paddingTop="13dp"
-            android:src="@drawable/ic_search_grey" />
-    </FrameLayout>
-
 </com.android.launcher3.allapps.AllAppsRecyclerViewContainerView>
\ No newline at end of file
diff --git a/res/layout/all_apps_reveal.xml b/res/layout/all_apps_reveal.xml
deleted file mode 100644
index 5f46656..0000000
--- a/res/layout/all_apps_reveal.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/apps_view_transition_overlay"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:layout_gravity="center"
-    android:elevation="2dp"
-    android:visibility="invisible"
-    android:focusable="false" />
\ No newline at end of file
diff --git a/res/layout/all_apps_search_bar.xml b/res/layout/all_apps_search_bar.xml
new file mode 100644
index 0000000..8d75b15
--- /dev/null
+++ b/res/layout/all_apps_search_bar.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@drawable/all_apps_search_bg" >
+
+    <LinearLayout
+        android:id="@+id/search_container"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/all_apps_search_bar_height"
+        android:layout_gravity="start|center_vertical"
+        android:orientation="horizontal"
+        android:visibility="invisible" >
+
+        <ImageView
+            android:id="@+id/dismiss_search_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="4dp"
+            android:layout_marginStart="4dp"
+            android:contentDescription="@string/all_apps_button_label"
+            android:paddingBottom="13dp"
+            android:paddingTop="13dp"
+            android:src="@drawable/ic_arrow_back_grey" />
+
+        <com.android.launcher3.allapps.AllAppsSearchEditView
+            android:id="@+id/search_box_input"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@android:color/transparent"
+            android:focusableInTouchMode="true"
+            android:gravity="fill_horizontal|center_vertical"
+            android:hint="@string/all_apps_search_bar_hint"
+            android:inputType="text|textNoSuggestions|textCapWords"
+            android:imeOptions="actionDone|flagNoExtractUi"
+            android:maxLines="1"
+            android:paddingLeft="8dp"
+            android:scrollHorizontally="true"
+            android:singleLine="true"
+            android:textColor="#4c4c4c"
+            android:textColorHint="#9c9c9c"
+            android:textSize="16sp" />
+    </LinearLayout>
+
+    <ImageView
+        android:id="@+id/search_button"
+        android:layout_width="wrap_content"
+        android:layout_height="@dimen/all_apps_search_bar_height"
+        android:layout_gravity="end|center_vertical"
+        android:layout_marginEnd="6dp"
+        android:layout_marginRight="6dp"
+        android:contentDescription="@string/all_apps_search_bar_hint"
+        android:paddingBottom="13dp"
+        android:paddingTop="13dp"
+        android:src="@drawable/ic_search_grey" />
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/widgets_view.xml b/res/layout/widgets_view.xml
index a1a62b3..c27e79b 100644
--- a/res/layout/widgets_view.xml
+++ b/res/layout/widgets_view.xml
@@ -21,25 +21,29 @@
     android:id="@+id/widgets_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:paddingTop="@dimen/widget_container_inset"
-    android:paddingBottom="@dimen/widget_container_inset"
+    android:orientation="vertical"
     android:descendantFocusability="afterDescendants">
 
     <FrameLayout
-        android:id="@+id/widgets_reveal_view"
+        android:id="@+id/content"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="center"
-        android:elevation="2dp"
-        android:focusable="false"
-        android:visibility="invisible" />
+        android:layout_height="match_parent">
+        <FrameLayout
+            android:id="@+id/widgets_reveal_view"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_gravity="center"
+            android:focusable="false"
+            android:elevation="2dp"
+            android:visibility="invisible" />
 
         <com.android.launcher3.widget.WidgetsRecyclerView
             android:id="@+id/widgets_list_view"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:background="@drawable/quantum_panel_dark"
+            android:layout_gravity="center"
             android:elevation="15dp"
             android:visibility="gone" />
+    </FrameLayout>
 
 </com.android.launcher3.widget.WidgetsContainerView>
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 0f90c4d..397e759 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Tuis"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Program is nie geïnstalleer nie."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Program is nie beskikbaar nie"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Stel op"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dit is \'n stelselprogram en kan nie gedeïnstalleer word nie."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Naamlose vouer"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Tuisskerm %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Bladsy %1$d van %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Tuisskerm %1$d van %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Welkom"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Muurpapiere, legstukke en instellings"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Raak en hou agtergrond om te pasmaak"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"HET DIT"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Vouer oopgemaak, <xliff:g id="WIDTH">%1$d</xliff:g> by <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Raak om vouer toe te maak"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Raak om hernoem te stoor"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Legstukke"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Muurpapiere"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Instellings"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Wag tans…"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Laai tans af…"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installeer tans…"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Onbekend"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Nie teruggestel nie"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Verwyder almal"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Verwyder"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Soek"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Hierdie program is nie geïnstalleer nie"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 52fb95e..87aa071 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"ማስጀመሪያ3"</string>
-    <string name="home" msgid="7658288663002113681">"መነሻ"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"መተግበሪያ አልተጫነም።"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"መተግበሪያ አይገኝም"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"ማዋቀሪያ"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"ይህ የስርዓት መተግበሪያ ነው እና ማራገፍ አይቻልም።"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"ስም-አልባ አቃፊ"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"መነሻ ማያ ገጽ %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"ገጽ %1$d ከ%2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"መነሻ ማያ ገጽ %1$d ከ%2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"እንኳን በደህና መጡ"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"የግድግዳ ወረቀቶች፣ ንዑስ ፕሮግራሞች እና ቅንብሮች"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ለማበጀት ጀርባውን ነክተው ይያዙት"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ገባኝ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"እሺ"</string>
     <string name="folder_opened" msgid="94695026776264709">"አቃፊ ተከፍቷል፣ <xliff:g id="WIDTH">%1$d</xliff:g> በ<xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"አቃፊን ለመዝጋት ይንኩ"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"ዳግም የተሰየመውን ለማስቀመጥ ይንኩ"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"ፍርግሞች"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"የግድግዳ ወረቀቶች"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ቅንብሮች"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"በመጠበቅ ላይ"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"በማውረድ ላይ"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"በመጫን ላይ"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"የማይታወቅ"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"ወደነበረበት አልተመለሰም"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"ሁሉንም አስወግድ"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"አስወግድ"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ፈልግ"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"ይህ መተግበሪያ አልተጫነም"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 02e4ee8..eee003d 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"الرئيسية"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"لم يتم تثبيت التطبيق."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"التطبيق ليس متاحًا"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"الإعداد"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"هذا تطبيق نظام وتتعذر إزالته."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"مجلد بدون اسم"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"‏الشاشة الرئيسية %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"‏الصفحة %1$d من %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"‏الشاشة الرئيسية %1$d من %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"مرحبًا"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"الخلفيات والأدوات والإعدادات"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"المس مع الاستمرار الخلفية لتخصيصها"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"حسنًا"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"موافق"</string>
     <string name="folder_opened" msgid="94695026776264709">"تم فتح المجلد، بمقاس <xliff:g id="WIDTH">%1$d</xliff:g> في <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"المس لإغلاق المجلد"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"المس لحفظ إعادة التسمية"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"الأدوات"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"الخلفيات"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"الإعدادات"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"انتظار"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"جارٍ التنزيل"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"جارٍ التثبيت"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"غير معروفة"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"استعادة مخفقة"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"إزالة الكل"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"إزالة"</string>
     <string name="abandoned_search" msgid="891119232568284442">"بحث"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"لم يتم تثبيت هذا التطبيق"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index cff5c78..b918603 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Начало"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Приложението не е инсталирано."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Приложението не е налично"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Настройване"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Това е системно приложение и не може да се деинсталира."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Папка без име"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Начален екран %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Страница %1$d от %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Начален екран %1$d от %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Добре дошли"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Тапети, приспособления и настройки"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Докоснете и задръжте фона за персонализиране"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"РАЗБРАХ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ОK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Папката е отворена – <xliff:g id="WIDTH">%1$d</xliff:g> на <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Докоснете, за да затворите папката"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Докоснете, за да запазите новото име"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Приспособления"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Тапети"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Настройки"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Изчаква"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Изтегля се"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Инсталира се"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Няма информация"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Не е възстановено"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Премахване на всички"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Премахване"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Търсене"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Това приложение не е инсталирано"</string>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 14a93a2..8387932 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"লঞ্চার৩"</string>
-    <string name="home" msgid="7658288663002113681">"হোম"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"অ্যাপ্লিকেশান ইনস্টল করা নেই৷"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"অ্যাপ্লিকেশান অনুপলব্ধ"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"সেটআপ"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"এটি একটি সিস্টেম অ্যাপ্লিকেশান এবং আনইনস্টল করা যাবে না৷"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"নামবিহীন ফোল্ডার"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"%1$d নম্বর হোম স্ক্রীন"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%2$dটির মধ্যে %1$dটি পৃষ্ঠা"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"%2$dটির %1$d নম্বর হোম স্ক্রীন"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"স্বাগতম"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ওয়ালপেপার, উইজেট এবং সেটিংস"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"কাস্টমাইজ করার জন্য পটভূমি স্পর্শ করে ধরে থাকুন"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"বুঝেছি"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ঠিক আছে"</string>
     <string name="folder_opened" msgid="94695026776264709">"ফোল্ডার খোলা হয়েছে, <xliff:g id="WIDTH">%1$d</xliff:g> বাই <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"ফোল্ডার বন্ধ করতে স্পর্শ করুন"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"পুনঃনামকরণ সংরক্ষণ করতে স্পর্শ করুন"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"উইজেটগুলি"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"ওয়ালপেপারগুলি"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"সেটিংস"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"প্রতীক্ষা"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"ডাউনলোড হচ্ছে"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"ইনস্টল করা হচ্ছে"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"অজানা"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"পুনঃস্থাপন করা যায়নি"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"সবগুলি সরান"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"সরান"</string>
     <string name="abandoned_search" msgid="891119232568284442">"অনুসন্ধান"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"এই অ্যাপ্লিকেশানটি ইন্সটল করা নাই"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 4d38c81..69ace8e 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Inici"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"L\'aplicació no s\'ha instal·lat."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"L\'aplicació no està disponible."</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Configuració"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Aquesta aplicació és una aplicació del sistema i no es pot desinstal·lar."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Carpeta sense nom"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Pantalla d\'inici %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Pàgina %1$d de %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Pantalla d\'inici %1$d de %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Us donem la benvinguda"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fons de pantalla, widgets i configuració"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Mantén premut el fons per fer personalitzacions."</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"D\'ACORD"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"D\'acord"</string>
     <string name="folder_opened" msgid="94695026776264709">"S\'ha obert la carpeta, <xliff:g id="WIDTH">%1$d</xliff:g> per <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Toca per tancar la carpeta"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toca per desar el canvi de nom"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fons de pantalla"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Configuració"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"En espera"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"S\'està baixant"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Instal·lant"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Desconegut"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"No restaurat"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Suprimeix-ho tot"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Suprimeix"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Cerca"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Aquesta aplicació no està instal·lada"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 57598f7..7606a4a 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Plocha"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Aplikace není nainstalována."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Aplikace není k dispozici."</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Nastavení"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Toto je systémová aplikace a nelze ji odinstalovat."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Složka bez názvu"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Plocha %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Strana %1$d z %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Plocha %1$d z %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Vítejte"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Tapety, widgety a nastavení"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Pozadí můžete přizpůsobit klepnutím a podržením"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ROZUMÍM"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Složka otevřena, rozměry <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Dotykem složku zavřete"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Dotykem uložíte změnu názvu"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgety"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Tapety"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Nastavení"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Čekání"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Stahování"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Instalace"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Neznámé"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Nebylo obnoveno"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Odstranit vše"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Odstranit"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Hledat"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Tato aplikace není nainstalována"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 36f3455..b64d20f 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Startskærm"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Appen er ikke installeret."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Appen er ikke tilgængelig"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Konfigurer"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dette er en systemapp, som ikke kan afinstalleres."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Unavngiven mappe"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Startskærm %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Side %1$d ud af %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Startskærm %1$d ud af %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Velkommen"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Baggrunde, widgets og indstillinger"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Tryk på baggrunden, og hold fingeren nede for at tilpasse den"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK, FORSTÅET"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Mappen er åben, <xliff:g id="WIDTH">%1$d</xliff:g> gange <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Tryk for at lukke mappen"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Tryk for at gemme det nye navn"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Baggrunde"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Indstillinger"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Afventer"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Downloader"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installerer"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Ukendt"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Ikke gendannet"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Slet alle"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Fjern"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Søg"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Denne app er ikke installeret"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 1b9bc9e..d64ae45 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Startseite"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"App ist nicht installiert."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"App nicht verfügbar"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Einrichten"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dies ist eine Systemanwendung, die nicht deinstalliert werden kann."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Unbenannter Ordner"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Startbildschirm %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Seite %1$d von %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Startbildschirm %1$d von %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Hallo!"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Hintergründe, Widgets &amp; Einstellungen"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Berühren und halten Sie den Hintergrund, um ihn anzupassen."</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Ordner geöffnet, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Ordner durch Berühren schließen"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Umbenennung durch Berühren speichern"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Hintergründe"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Einstellungen"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Warten"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Download läuft"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installation"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Unbekannt"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Nicht wiederhergestellt"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Alle entfernen"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Entfernen"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Suchen"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Diese App ist nicht installiert"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 69a1e77..8cd2ac9 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Αρχική σελίδα"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Η εφαρμογή δεν έχει εγκατασταθεί."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Η εφαρμογή δεν είναι διαθέσιμη"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Ρύθμιση"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Αυτή είναι μια εφαρμογή συστήματος και δεν είναι δυνατή η κατάργηση της εγκατάστασής της."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Φάκελος χωρίς όνομα"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Αρχική οθόνη %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Σελίδα %1$d από %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Αρχική οθόνη %1$d από %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Καλώς ορίσατε"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Ταπετσαρίες, γραφικά στοιχεία και ρυθμίσεις"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Αγγίξτε παρατεταμένα το παρασκήνιο για προσαρμογή"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ΕΓΙΝΕ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Άνοιγμα φακέλου, <xliff:g id="WIDTH">%1$d</xliff:g> επί <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Αγγίξτε για να κλείσετε τον φάκελο"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Αγγίξτε για να αποθηκεύσετε το νέο όνομα"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Γραφικά στοιχεία"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Ταπετσαρίες"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Ρυθμίσεις"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Αναμονή"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Λήψη "</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Εγκατάσταση"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Άγνωστο"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Δεν ανακτήθηκε"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Κατάργηση όλων"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Κατάργηση"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Αναζήτηση"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Αυτή η εφαρμογή δεν είναι εγκατεστημένη"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index cb25fd9..30d626d 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Home"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"App isn\'t installed."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"App isn\'t available"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Setup"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"This is a system app and can\'t be uninstalled."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Unnamed Folder"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Home screen %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Page %1$d of %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Home screen %1$d of %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Welcome"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpapers, widgets, &amp; settings"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Touch &amp; hold background to customise"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"GOT IT"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Folder opened, <xliff:g id="WIDTH">%1$d</xliff:g> by <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Touch to close folder"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Touch to save rename"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Wallpapers"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Settings"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Waiting"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Downloading"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installing"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Unknown"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Not restored"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Remove All"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remove"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Search"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"This app is not installed"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index cb25fd9..30d626d 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Home"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"App isn\'t installed."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"App isn\'t available"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Setup"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"This is a system app and can\'t be uninstalled."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Unnamed Folder"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Home screen %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Page %1$d of %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Home screen %1$d of %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Welcome"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpapers, widgets, &amp; settings"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Touch &amp; hold background to customise"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"GOT IT"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Folder opened, <xliff:g id="WIDTH">%1$d</xliff:g> by <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Touch to close folder"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Touch to save rename"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Wallpapers"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Settings"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Waiting"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Downloading"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installing"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Unknown"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Not restored"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Remove All"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remove"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Search"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"This app is not installed"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 36f32a7..5e2d87c 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Pantalla principal"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"No se instaló la aplicación."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"La aplicación no está disponible."</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Configuración"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Esta es una aplicación del sistema y no se puede desinstalar."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Carpeta sin nombre"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Pantalla principal %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Página %1$d de %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Pantalla principal %1$d de %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Bienvenido"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fondos, widgets y configuración"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Mantén presionado el fondo para personalizarlo"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ENTENDIDO"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Aceptar"</string>
     <string name="folder_opened" msgid="94695026776264709">"Carpeta abierta, <xliff:g id="WIDTH">%1$d</xliff:g> por <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Toca para cerrar la carpeta."</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toca para guardar el nuevo nombre."</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fondos de pantalla"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Configuración"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Pendiente"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Descargando"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Instalando"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Desconocido"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"No restaurado"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Eliminar todo"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminar"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Buscar"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Esta aplicación no está instalada"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 6dcfba4..1bf1d76 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Home"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"La aplicación no está instalada."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"La aplicación no está disponible"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Configuración"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Esta aplicación es del sistema y no se puede desinstalar."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Carpeta sin nombre"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Pantalla de inicio %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Página %1$d de %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Pantalla de inicio %1$d de %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Te damos la bienvenida"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fondos de pantalla, widgets y ajustes"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Mantén pulsado el fondo para personalizarlo"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ENTENDIDO"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Aceptar"</string>
     <string name="folder_opened" msgid="94695026776264709">"Carpeta abierta, <xliff:g id="WIDTH">%1$d</xliff:g> por <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Toca para cerrar la carpeta"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toca para cambiar el nuevo nombre"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fondos de pantalla"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Ajustes"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Esperando"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Descargando"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Instalando"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Desconocido"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"No restaurado"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Eliminar todo"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminar"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Buscar"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Esta aplicación no está instalada"</string>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index c56bc69..b1c13d7 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Avaekraan"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Rakendus pole installitud."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Rakendus ei ole saadaval"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Seadistamine"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"See on süsteemirakendus ja seda ei saa desinstallida."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Nimetu kaust"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Avaekraan %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Leht %1$d/%2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Avaekraan %1$d/%2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Tere tulemast"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Taustapildid, vidinad ja seaded"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Kohandamiseks puudutage ja hoidke tausta all"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SELGE"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Kaust on avatud, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Puudutage kausta sulgemiseks"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Puudutage uue nime salvestamiseks"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Vidinad"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Taustapildid"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Seaded"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Ootamine"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Allalaadimine"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installimine"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Teadmata"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Ei taastatud"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Eemalda kõik"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eemalda"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Otsing"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"See rakendus ei ole installitud"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index bc95206..afed3b5 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="8424725141379931883">"Käivitaja"</string>
-    <string name="home" msgid="5921706419368316758">"Kodu"</string>
     <string name="folder_name" msgid="8551881338202938211"></string>
     <string name="wallpaper_instructions" msgid="4215640646180727542">"Määra taustapilt"</string>
     <string name="pick_wallpaper" msgid="5630222540525626723">"Taustapildid"</string>
@@ -43,10 +42,8 @@
     <string name="gadget_error_text" msgid="8359351016167075858">"Probleem vidina laadimisel"</string>
     <string name="uninstall_system_app_text" msgid="6429814133777046491">"See on süsteemirakendus ja seda ei saa desinstallida."</string>
     <string name="folder_hint_text" msgid="8633351560105748141">"Nimeta kaust"</string>
-    <string name="workspace_description_format" msgid="2968608205939373034">"Avakuva %1$d"</string>
     <string name="default_scroll_format" msgid="4057140866420001240">"Leht %1$d/%2$d"</string>
     <string name="workspace_scroll_format" msgid="1704767047951143301">"Avakuva %1$d/%2$d"</string>
-    <string name="cling_dismiss" msgid="2780907108735868381">"OK"</string>
     <string name="folder_opened" msgid="1262064100943801533">"Kaust on avatud, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1335478160661137579">"Puudutage kausta sulgemiseks"</string>
     <string name="folder_tap_to_rename" msgid="5201612989905472442">"Puudutage uue nime salvestamiseks"</string>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index 781f262..51ff508 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Abiarazlea3"</string>
-    <string name="home" msgid="7658288663002113681">"Hasiera"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Aplikazioa instalatu gabe dago."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Ez dago erabilgarri aplikazioa"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Konfigurazioa"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Sistema-aplikazioa da hau eta ezin da desinstalatu."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Izenik gabeko karpeta"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"%1$d hasierako pantaila"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%1$d/%2$d orria"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"%1$d/%2$d hasierako pantaila"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Ongi etorri"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Horma-paperak, widgetak eta ezarpenak"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Pertsonalizatzeko, eduki ukituta atzeko planoa"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ADOS"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Ados"</string>
     <string name="folder_opened" msgid="94695026776264709">"Karpeta ireki da: <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Karpeta ixteko, uki ezazu"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Karpetaren izen berria gordetzeko, uki ezazu"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgetak"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Horma-paperak"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Ezarpenak"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Zain"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Deskargatzen"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Instalatzen"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Ezezaguna"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Ez da leheneratu"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Kendu guztiak"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Kendu"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Bilatu"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Aplikazio hau ez dago instalatuta"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index bf3a04f..76ffc9d 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"صفحه اصلی"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"برنامه نصب نشده است."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"برنامه در دسترس نیست"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"تنظیم"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"این برنامه سیستمی است و حذف نصب نمی‌شود."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"پوشه بی‌نام"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"‏صفحه اصلی %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"‏صفحه %1$d از %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"‏صفحه اصلی %1$d از %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"خوش آمدید"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"کاغذدیواری‌ها، ابزارک‌ها و تنظیمات"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"برای سفارشی کردن، پس‌زمینه را لمس کنید و نگه‌دارید"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"متوجه شدم"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"تأیید"</string>
     <string name="folder_opened" msgid="94695026776264709">"پوشه باز شده، <xliff:g id="WIDTH">%1$d</xliff:g> در <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"برای بستن پوشه لمس کنید"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"برای ذخیره تغییر نام لمس کنید"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"ابزارک‌ها"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"کاغذدیواری‌ها"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"تنظیمات"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"در حال انتظار"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"در حال دانلود"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"در حال نصب"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"نامشخص"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"بازیابی نشد"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"حذف همه"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"حذف"</string>
     <string name="abandoned_search" msgid="891119232568284442">"جستجو"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"این برنامه نصب نشده است."</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index da298be..44630c8 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Aloitusruutu"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Sovellusta ei ole asennettu."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Sovellus ei ole käytettävissä"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Asetus"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Tämä on järjestelmäsovellus, eikä sitä voi poistaa."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Nimetön kansio"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Aloitusruutu %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Sivu %1$d / %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Aloitusruutu %1$d/%2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Tervetuloa"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Taustakuvat, widgetit ja asetukset"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Muokkaa taustaa koskettamalla ja painamalla pitkään"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SELVÄ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Kansio avattu, koko <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Sulje kansio koskettamalla"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Tallenna uudella nimellä koskettamalla"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgetit"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Taustakuvat"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Asetukset"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Odottaa"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Ladataan"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Asennetaan"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Tuntematon"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Ei palautettu"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Poista kaikki"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Poista"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Haku"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Sovellusta ei ole asennettu"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index cc4d2a9..f11b34d 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Lanceur3"</string>
-    <string name="home" msgid="7658288663002113681">"Accueil"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"L\'application n\'est pas installée."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Application indisponible"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Configuration"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Impossible de désinstaller cette application, car il s\'agit d\'une application système."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Dossier sans nom"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Écran d\'accueil %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Page %1$d sur %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Écran d\'accueil %1$d sur %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Bienvenue"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fonds d\'écran, widgets et paramètres"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Maintenez le doigt sur le fond d\'écran pour personnaliser"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"J\'ai compris"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Dossier ouvert, <xliff:g id="WIDTH">%1$d</xliff:g> par <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Toucher pour fermer le dossier"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toucher pour enregistrer le nouveau nom"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fonds d\'écran"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Paramètres"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"En attente"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Téléchargement..."</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installation…"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Inconnu"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Non restauré"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Tout supprimer"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Supprimer"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Rechercher"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Cette application n\'est pas installée"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 826e172..692c2ba 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Accueil"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"L\'application n\'est pas installée."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Application indisponible"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Configuration"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Impossible de désinstaller cette application, car il s\'agit d\'une application système."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Dossier sans nom"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Écran d\'accueil %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Page %1$d sur %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Écran d\'accueil %1$d sur %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Bienvenue"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fonds d\'écran, widgets et paramètres"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Appuyez de manière prolongée sur l\'arrière-plan pour le personnaliser."</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Dossier ouvert, <xliff:g id="WIDTH">%1$d</xliff:g> par <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Appuyez pour fermer le dossier."</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Appuyez pour enregistrer le nouveau nom."</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fonds d\'écran"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Paramètres"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"En attente"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Téléchargement…"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installation…"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Inconnu"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Non restauré"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Tout supprimer"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Supprimer"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Rechercher"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Cette application n\'est pas installée"</string>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index 8cd5686..0684bdc 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Inicio"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"A aplicación non está instalada"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"A aplicación non está dispoñible"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Configuración"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Esta aplicación é do sistema e non se pode desinstalar."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Cartafol sen nome"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Pantalla de inicio %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Páxina %1$d de %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Pantalla de inicio %1$d de %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Dámosche a benvida"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fondos pantalla, widgets e configuración"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Mantén tocado o segundo plano para personalizar"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"DE ACORDO"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Aceptar"</string>
     <string name="folder_opened" msgid="94695026776264709">"Abriuse o cartafol, <xliff:g id="WIDTH">%1$d</xliff:g> por <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Toca para pechar o cartafol"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toca para gardar o cambio de nome"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fondos de pantalla"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Configuración"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"En espera"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Descargando"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Instalando"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Descoñecido"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Non restaurado"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Eliminar todas"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminar"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Buscar"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Esta aplicación non está instalada"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 49feb66..c36cc74 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"होम"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"एप्‍लिकेशन इंस्‍टॉल नहीं है."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"ऐप्स उपलब्ध नहीं है"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"सेटअप"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"यह एक सिस्टम ऐप्लिकेशन है और इसे अनइंस्टॉल नहीं किया जा सकता."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"अनामित फ़ोल्डर"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"होम स्‍क्रीन %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"पृष्ठ %2$d में से %1$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"होम स्क्रीन %2$d में से %1$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"स्वागत है"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"वॉलपेपर, शॉर्टकट और सेटिंग"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"पृष्ठभूमि कस्टमाइज़ करने के लिए स्पर्श करके रखें"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"समझ लिया"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ठीक"</string>
     <string name="folder_opened" msgid="94695026776264709">"फ़ोल्डर खोला गया, <xliff:g id="WIDTH">%1$d</xliff:g> गुणा <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"फ़ोल्‍डर बंद करने के लिए स्‍पर्श करें"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"बदला गया नाम सहेजने के लिए स्पर्श करें"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"शॉर्टकट"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"वॉलपेपर"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"सेटिंग"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"प्रतीक्षा में"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"डाउनलोड हो रहा है"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"इंस्टॉल हो रहा है"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"अज्ञात"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"पुन:स्थापित नहीं हुआ"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"सभी निकालें"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"निकालें"</string>
     <string name="abandoned_search" msgid="891119232568284442">"खोजें"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"यह ऐप्स इंस्टॉल नहीं है"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index c43d2f4..016d7eb 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Pokretač3"</string>
-    <string name="home" msgid="7658288663002113681">"Početna"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Aplikacija nije instalirana."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Aplikacija nije dostupna"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Postavljanje"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ovo je aplikacija sustava i ne može se ukloniti."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Neimenovana mapa"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Početni zaslon %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Stranica %1$d od %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Početni zaslon %1$d od %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Dobro došli"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Pozadinske slike, widgeti i postavke"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Dodirnite i zadržite pozadinu radi prilagodbe"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SHVAĆAM"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"U redu"</string>
     <string name="folder_opened" msgid="94695026776264709">"Mapa je otvorena, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Dodirnite da biste zatvorili mapu"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Dodirnite da biste spremili preimenovanje"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgeti"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Pozadinske slike"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Postavke"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Čekanje"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Preuzimanje"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Instaliranje"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Nepoznato"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Nije vraćeno"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Ukloni sve"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Ukloni"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Traži"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Ta aplikacija nije instalirana"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index ef804a4..9074c17 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Főoldal"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Az alkalmazás nincs telepítve."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Az alkalmazás nem érhető el"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Beállítás"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ez egy rendszeralkalmazás, és nem lehet eltávolítani."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Névtelen mappa"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"%1$d. kezdőképernyő"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%2$d/%1$d. oldal"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"%2$d/%1$d. kezdőképernyő"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Üdvözöljük!"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Háttérképek, modulok és beállítások"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Érintse meg és tartsa lenyomva a személyre szabáshoz"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"MEGÉRTETTEM"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Mappa megnyitva – szélesség: <xliff:g id="WIDTH">%1$d</xliff:g>; magasság: <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Érintse meg a mappa bezárásához"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Érintse meg az átnevezés mentéséhez"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Modulok"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Háttérképek"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Beállítások"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Várakozik"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Letöltés alatt"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Települ"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Ismeretlen"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Nincs visszaállítva"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Az összes eltávolítása"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eltávolítás"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Keresés"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Az alkalmazás nincs telepítve"</string>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index cbc5585..ea4b2a1 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Հիմնական"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Ծրագիրը տեղադրված չէ:"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Հավելվածը հասանելի չէ"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Կարգավորում"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Սա համակարգային ծրագիր է և չի կարող ապատեղադրվել:"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Անանուն թղթապանակ"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Հիմնական էկրան %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Էջ %1$d՝ %2$d-ից"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Հիմնական էկրան %1$d` %2$d-ից"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Բարի գալուստ"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Պաստառներ, վիջեթներ և կարգավորումներ"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Հարմարեցնելու համար հպեք և պահեք հետնաշերտի վրա"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ՀԱՍԿԱՆԱԼԻ Է"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Լավ"</string>
     <string name="folder_opened" msgid="94695026776264709">"Թղթապանակը բաց է, <xliff:g id="WIDTH">%1$d</xliff:g>-ից <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Հպեք՝ թղթապանակը փակելու համար"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Հպեք՝ վերանվանումը պահելու համար"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Վիջեթներ"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Պաստառներ"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Կարգավորումներ"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Առկախ է"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Ներբեռնվում է"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Տեղադրվում է"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Անհայտ է"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Չի վերականգնվել"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Հեռացնել բոլորը"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Հեռացնել"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Գտնել"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Այս ծրագիրը տեղադրված չէ:"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index ea9ebb5..edefc44 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Layar Utama"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Aplikasi tidak dipasang."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Aplikasi tidak tersedia"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Siapkan"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ini adalah aplikasi sistem dan tidak dapat dicopot pemasangannya."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Folder Tanpa Nama"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Layar utama %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Laman %1$d dari %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Layar utama %1$d dari %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Selamat Datang"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpaper, widget, &amp; setelan"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Sentuh &amp; tahan latar belakang untuk menyesuaikan"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"MENGERTI"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Oke"</string>
     <string name="folder_opened" msgid="94695026776264709">"Folder dibuka, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Sentuh untuk menutup folder"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Sentuh untuk menyimpan ganti nama"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widget"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Wallpaper"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Setelan"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Menunggu"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Mengunduh"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Memasang"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Tidak dikenal"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Tak dipulihkan"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Buang Semua"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Buang"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Telusuri"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Aplikasi ini belum terpasang"</string>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index 41e43b5..70f87e4 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Heim"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Forritið er ekki uppsett."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Forritið er ekki í boði"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Uppsetning"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Þetta er kerfisforrit sem ekki er hægt að fjarlægja."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Ónefnd mappa"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Heimaskjár %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Síða %1$d af %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Heimaskjár %1$d af %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Komdu fagnandi"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Veggfóður, græjur og stillingar"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Haltu fingri á bakgrunninum til að sérsníða hann"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ÉG SKIL"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Í lagi"</string>
     <string name="folder_opened" msgid="94695026776264709">"Mappa opnuð, <xliff:g id="WIDTH">%1$d</xliff:g> sinnum <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Snertu til að loka möppunni"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Snertu til að staðfesta nýtt heiti"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Græjur"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Veggfóður"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Stillingar"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Bíður"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Sækir"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Setur upp"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Óþekkt"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Ekki endurheimt"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Fjarlægja öll"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Fjarlægja"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Leita"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Þetta forrit er ekki uppsett"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 6307fff..6ad1ed4 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Home page"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"App non installata."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"App non disponibile"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Configurazione"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Questa è un\'app di sistema e non può essere disinstallata."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Cartella senza nome"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Schermata Home %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Pagina %1$d di %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Schermata Home %1$d di %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Benvenuto"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Sfondi, widget e impostazioni"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Tocca lo sfondo e tieni premuto per personalizzare"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Cartella aperta, <xliff:g id="WIDTH">%1$d</xliff:g> per <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Tocca per chiudere la cartella"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Tocca per salvare nuovo nome"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widget"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Sfondi"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Impostazioni"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"In attesa"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Download..."</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installazione..."</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Sconosciuto"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Non ripristinato"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Rimuovi tutto"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Rimuovi"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Cerca"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"L\'app non è installata"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 479be10..3e3fe33 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"דף הבית"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"האפליקציה לא מותקנת."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"האפליקציה אינה זמינה"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"הגדר"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"זוהי אפליקציית מערכת ולא ניתן להסיר את התקנתה."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"תיקיה ללא שם"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"‏מסך דף הבית %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"‏דף %1$d מתוך %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"‏מסך דף הבית %1$d מתוך %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"ברוכים הבאים"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"טפטים, ווידג\'טים והגדרות"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"גע והחזק ברקע לביצוע התאמה אישית"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"הבנתי"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"אישור"</string>
     <string name="folder_opened" msgid="94695026776264709">"תיקיה פתוחה, <xliff:g id="WIDTH">%1$d</xliff:g> על <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"גע כדי לסגור את התיקיה"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"גע כדי לשמור את שינוי השם"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"רכיבי ווידג\'ט"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"טפטים"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"הגדרות"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"ממתין"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"מוריד"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"מתקין"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"לא ידוע"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"לא שוחזרה"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"הסר את הכל"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"הסר"</string>
     <string name="abandoned_search" msgid="891119232568284442">"חפש"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"אפליקציה זו אינה מותקנת"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index aa700aa..1fc9aca 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"ホーム"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"このアプリはインストールされていません。"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"このアプリは使用できません"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"セットアップ"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"このシステムアプリはアンインストールできません。"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"名前のないフォルダ"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"ホーム画面: %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%1$d/%2$dページ"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"ホーム画面: %1$d/%2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"ようこそ"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"壁紙、ウィジェット、設定"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"カスタマイズするにはバックグラウンドを押し続けます"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"フォルダが開いています。<xliff:g id="WIDTH">%1$d</xliff:g>x<xliff:g id="HEIGHT">%2$d</xliff:g>の大きさです"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"タップしてフォルダを閉じます"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"タップして名前の変更を保存します"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"ウィジェット"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"壁紙"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"設定"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"待機中"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"ダウンロード中"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"インストール中"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"不明"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"復元失敗"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"すべて削除"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"削除"</string>
     <string name="abandoned_search" msgid="891119232568284442">"検索"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"このアプリはインストールされていません"</string>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index 79434c0..4a93b9a 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"მთავარი"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"აპი არ არის დაყენებული."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"აპი მიუწვდომელია"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"დაყენება"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"ეს სისტემური აპია და მისი წაშლა შეუძლებელია."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"უსახელო საქაღალდე"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"მთავარი ეკრანი %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"გვერდი %1$d %2$d-დან"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"მთავარი ეკრანი %1$d, %2$d-დან"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"მოგესალმებით"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ფონები, ვიჯეტები, &amp; პარამეტრები"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"მოსარგებად შეეხეთ &amp; დააყოვნეთ ფონზე"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"გასაგებია"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"კარგი"</string>
     <string name="folder_opened" msgid="94695026776264709">"საქაღალდე გახსნილია, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"შეეხეთ საქაღალდის დასახურად"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"შეეხეთ ახალი სახელის შესანახად"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"ვიჯეტები"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"ფონები"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"პარამეტრები"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"მოცდა..."</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"ჩამოტვირთვა..."</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"ინსტალაცია..."</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"უცნობი"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"არ აღდგა"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"ყველას ამოშლა"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ამოშლა"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ძიება"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"ეს აპი დაყენებული არ არის"</string>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index 8a0c627..40de753 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Негізгі"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Қолданба орнатылмаған."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Қолданба қол жетімді емес"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Орнату"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Бұл жүйе қолданбасы, сондықтан оны алу мүмкін емес."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Атауы жоқ қалта"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"%1$d негізгі экран"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%1$d бет, барлығы %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"%1$d негізгі экран, барлығы %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Қош келдіңіз"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Тұсқағаздар, виджеттер және параметрлер"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Теңшеу үшін фонды түртіп, ұстап тұрыңыз"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ТҮСІНДІМ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Жарайды"</string>
     <string name="folder_opened" msgid="94695026776264709">"Қалта ашылды, <xliff:g id="WIDTH">%1$d</xliff:g> және <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Қалтаны жабу үшін түртіңіз"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Өзгертілген атауын сақтау үшін түртіңіз"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Виджеттер"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Артқы фондар"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Параметрлер"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Күтілуде"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Жүктелуде"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Орнатылуда"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Белгісіз"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Қалп. кел-меді"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Барлығын алып тастау"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Алып тастау"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Іздеу"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Бұл қолданба орнатылмаған"</string>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index a61be73..1cd8fe2 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"ដើម"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"មិន​បាន​ដំឡើង​កម្មវិធី។"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"មិន​មាន​កម្មវិធី"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"រៀបចំ"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"នេះ​​​ជា​កម្មវិធី​ប្រព័ន្ធ មិន​អាច​លុប​បាន​ទេ។"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"ថត​គ្មាន​ឈ្មោះ"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"អេក្រង់​ដើម %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"ទំព័រ %1$d នៃ %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"អេក្រង់​ដើម %1$d នៃ %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"សូម​ស្វាគមន៍​"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ផ្ទាំងរូបភាព,ធាតុក្រាហ្វិក &amp; ការកំណត់"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ប៉ះ &amp; សង្កត់​ផ្ទៃ​ខាង​ក្រោយ​ដើម្បី​ប្ដូរ​តាម​​តម្រូវ​ការ"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"យល់​ហើយ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"យល់ព្រម"</string>
     <string name="folder_opened" msgid="94695026776264709">"បាន​បើក​ថត <xliff:g id="WIDTH">%1$d</xliff:g> ដោយ <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"ប៉ះ ដើម្បី​បិទ​ថត"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"ប៉ះ ដើម្បី​រក្សាទុក​ការ​ប្ដូរ​ឈ្មោះ"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"ធាតុ​ក្រាហ្វិក"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"ផ្ទាំង​រូបភាព"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ការកំណត់"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"រង់ចាំ"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"​ទាញ​យក"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"ដំឡើង"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"មិន​ស្គាល់"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"មិនបាន​​ស្តា​រ"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"លុបចេញ​​​ទាំងអស់"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"លុបចេញ"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ស្វែងរក"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"មិន​បាន​ដំឡើង​កម្មវិធី​នេះ"</string>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 9680cb6..a823528 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"ಲಾಂಚರ್3"</string>
-    <string name="home" msgid="7658288663002113681">"ಮುಖಪುಟ"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"ಅಪ್ಲಿಕೇಶನ್‌ ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"ಅಪ್ಲಿಕೇಶನ್ ಲಭ್ಯವಿಲ್ಲ"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"ಸೆಟಪ್"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"ಇದೊಂದು ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದೆ ಮತ್ತು ಅಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"ಹೆಸರಿಲ್ಲದ ಫೋಲ್ಡರ್"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"ಮುಖಪುಟದ ಪರದೆ %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%2$d ರಲ್ಲಿ %1$d ಪುಟ"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"%2$d ರಲ್ಲಿ %1$d ಮುಖಪುಟದ ಪರದೆ"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"ಸುಸ್ವಾಗತ"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ವಾಲ್‌ಪೇಪರ್‌ಗಳು, ವಿಜೆಟ್‌ಗಳು, &amp; ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ಕಸ್ಟಮೈಸ್ ಮಾಡಲು ಹಿನ್ನೆಲೆಯನ್ನು ಸ್ಪರ್ಶಿಸಿ &amp; ಒತ್ತಿ ಹಿಡಿಯಿರಿ"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ಅರ್ಥವಾಯಿತು"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ಸರಿ"</string>
     <string name="folder_opened" msgid="94695026776264709">"ಫೋಲ್ಡರ್ ತೆರೆಯಲಾಗಿದೆ, <xliff:g id="WIDTH">%1$d</xliff:g> ಬೈ <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"ಫೋಲ್ಡರ್‌ ಮುಚ್ಚಲು ಸ್ಪರ್ಶಿಸಿ"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"ಮರುಹೆಸರನ್ನು ಉಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"ವಿಜೆಟ್‌ಗಳು"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"ವಾಲ್‌ಪೇಪರ್‌ಗಳು"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"ಅಜ್ಞಾತ"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"ಇನ್ನೂ ಪುನಃಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"ಎಲ್ಲವನ್ನೂ ತೆಗೆದುಹಾಕಿ"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ತೆಗೆದುಹಾಕಿ"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ಹುಡುಕು"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"ಈ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಾಪನೆಗೊಂಡಿಲ್ಲ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 7e924cb..628900a 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"홈"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"앱이 설치되지 않았습니다."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"앱을 사용할 수 없음"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"설정"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"시스템 앱은 제거할 수 없습니다."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"이름이 없는 폴더"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"홈 화면 %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"페이지 %1$d/%2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"홈 화면 %1$d/%2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"환영합니다."</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"배경화면, 위젯, 설정"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"백그라운드를 길게 터치하여 맞춤설정합니다."</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"확인"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"확인"</string>
     <string name="folder_opened" msgid="94695026776264709">"폴더 열림(<xliff:g id="WIDTH">%1$d</xliff:g>X<xliff:g id="HEIGHT">%2$d</xliff:g>)"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"터치하여 폴더를 닫음"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"터치하여 바꾼 이름을 저장"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"위젯"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"배경화면"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"설정"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"대기 중"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"다운로드 중"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"설치 중"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"알 수 없음"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"복원되지 않음"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"모두 삭제"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"삭제"</string>
     <string name="abandoned_search" msgid="891119232568284442">"검색"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"이 앱이 설치되어 있지 않음"</string>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 39cbee2..865db3b 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Үйгө"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Колдонмо орнотулган эмес."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Колдонмо жеткиликтүү эмес"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Орнотуу"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Бул системдик колдонмо жана аны чечкенге болбойт."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Аты жок фолдер"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Үй экраны %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%2$d ичинен %1$d барак"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Үй экраны %2$d ичинен %1$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Кош келиңиз"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Тушкагаздар, виджеттер &amp; жөндөөлөр"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Өзгөчөлөштүрүү үчүн фонго тийип &amp; коё бербей туруңуз"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ТҮШҮНДҮМ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Фолдер ачылды, туурасы <xliff:g id="WIDTH">%1$d</xliff:g>, бийиктиги <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Фолдерди жабыш үчүн тийиңиз"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Тийип, аттын өзгөртүлүшүн сактаңыз"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Виджеттер"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Тушкагаздар"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Тууралоолор"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Күтүүдө"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Жүктөлп алнууда"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Орнотулууда"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Белгисиз"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Калыбн келт. жок"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Баарын алып салуу"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Алып салуу"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Издөө"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Бул колдонмо орнотулган эмес"</string>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index aa45950..b3c4676 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"ໜ້າຫຼັກ"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"ແອັບຯບໍ່ໄດ້ຖືກຕິດຕັ້ງ."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"ແອັບຯ​ໃຊ້​ບໍ່​ໄດ້"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"ຕິດຕັ້ງ"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"ນີ້ແມ່ນແອັບຯຂອງລະບົບ ແລະບໍ່ສາມາດຖອນການຕິດຕັ້ງອອກໄດ້."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"ໂຟນເດີຍັງບໍ່ຖືກຕັ້ງຊື່"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"ໜ້າຈໍຫຼັກ %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"ໜ້າ %1$d ຈາກ %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"ໜ້າຈໍຫຼັກ %1$d ໃນ %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"ຍິນດີຕ້ອນຮັບ"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"​ຮູບ​ພື້ນຫຼັງ, ວິດເຈັດ, &amp; ​ການ​ຕັ້ງ​ຄ່າ"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ແຕະທີ່​ພາບ​ພື້ນ​ຫລັງ​ຄ້າງ​ໄວ້​ເພື່ອ​ປັບ​ແຕ່ງ"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ເຂົ້າໃຈແລ້ວ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ຕົກລົງ"</string>
     <string name="folder_opened" msgid="94695026776264709">"ເປີດໂຟນເດີແລ້ວ, <xliff:g id="WIDTH">%1$d</xliff:g> ຄູນ <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"ສຳພັດເພື່ອປິດໂຟນເດີ"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"ສຳພັດເພື່ອບັນທຶກການປ່ຽນຊື່"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"ວິດເຈັດ"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"ພາບພື້ນຫຼັງ"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ການຕັ້ງຄ່າ"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"ກຳ​ລັງ​ລໍ​ຖ້າ"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"ກຳລັງດາວໂຫລດ"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"​ກຳ​ລັງ​ຕິດ​ຕັ້ງ"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"​ບໍ່​ຮູ້​ຈັກ"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"ບໍ່​ໄດ້​ກູ້​ຂໍ້ມູນ​ມາ​ເທື່ອ"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"ລຶບ​ທັງ​ໝົດ"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ລຶບ​"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ຊອກຫາ"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"ແອັບຯ​ນີ້​ຍັງ​ບໍ່​ໄດ້​ຕິດ​ຕັ້ງ​ເທື່ອ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 3dd9fc9..a6d5edc 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Pagrindinis"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Programa neįdiegta."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Programa nepasiekiama"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Sąranka"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Tai sistemos programa ir jos negalima pašalinti."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Aplankas be pavadinimo"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"%1$d pagrindinis ekranas"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%1$d psl. iš %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"%1$d pagrindinis ekranas iš %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Sveiki"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Ekrano fonai, valdikliai ir nustatymai"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Jei norite tinkinti, palieskite ir palaikykite foną"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SUPRATAU"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Gerai"</string>
     <string name="folder_opened" msgid="94695026776264709">"Atidarytas aplankas, <xliff:g id="WIDTH">%1$d</xliff:g> ir <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Palieskite, kad uždarytumėte aplanką"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Palieskite, kad išsaugotumėte naują pavadinimą"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Valdikliai"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Ekrano fonai"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Nustatymai"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Laukiama"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Atsisiunčiama"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Diegiama"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Nežinoma"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Neatkurta"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Pašalinti viską"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Pašalinti"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Ieškoti"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Ši programa neįdiegta"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 07ed9ec..fdbee78 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Sākums"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Lietotne nav instalēta."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Lietotne nav pieejama."</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Notiek iestatīšana"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Šī ir sistēmas lietotne, un to nevar atinstalēt."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Mape bez nosaukuma"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Sākuma ekrāns: %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%1$d. lapa no %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Sākuma ekrāns: %1$d no %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Laipni lūdzam!"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fona tapetes, logrīki un iestatījumi"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Lai pielāgotu, pieskarieties fonam un turiet to nospiestu."</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SAPRATU!"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Labi"</string>
     <string name="folder_opened" msgid="94695026776264709">"Atvērta mape: <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Pieskarieties, lai aizvērtu mapi."</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Pieskarieties, lai saglabātu pārdēvēto nosaukumu."</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Logrīki"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fona tapetes"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Iestatījumi"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Gaida"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Lejupielādē"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Instalē"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Nezināma"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Nav atjaunota"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Noņemt visas"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Noņemt"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Meklēt"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Šī lietotne nav instalēta"</string>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index 4e7c525..f6df54d 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Почетна страница"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Апликацијата не е инсталирана."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Апликацијата не е достапна"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Поставување"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ова е системска апликација и не може да се деинсталира."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Неименувана папка"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Екран на почетна страница %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Страница %1$d од %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Екран на почетна страница %1$d од %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Добредојдовте"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Тапети, додатоци и поставки"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Допрете и задржете на заднината за да приспособите"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"СФАТИВ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Во ред"</string>
     <string name="folder_opened" msgid="94695026776264709">"Отворена е папка, <xliff:g id="WIDTH">%1$d</xliff:g> на <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Допри за да се затвори папката"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Допри за да се зачува преименувањето"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Виџети"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Тапети"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Подесувања"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"На чекање"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Се презема"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Се инсталира"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Непознато"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Не е обновено"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Отстрани ги сите"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Отстрани"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Барај"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Апликацијата не е инсталирана"</string>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index d1338b6..de37f47 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"ഹോം"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"അപ്ലിക്കേഷൻ ഇൻസ്‌റ്റാളുചെ‌യ്‌തിട്ടില്ല."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"അപ്ലിക്കേഷൻ ലഭ്യമല്ല"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"സജ്ജീകരിക്കുക"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"ഇതൊരു സിസ്‌റ്റം അപ്ലിക്കേഷനായതിനാൽ അൺഇൻസ്‌റ്റാളുചെയ്യാനാവില്ല."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"പേരുനൽകാത്ത ഫോൾഡർ"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"ഹോം സ്‌ക്രീൻ %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"പേജ് %1$d / %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"ഹോം സ്‌ക്രീൻ %1$d / %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"സ്വാഗതം"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"വാൾപേപ്പറുകൾ, വിജറ്റുകൾ, ക്രമീകരണങ്ങൾ എന്നിവ"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ഇഷ്‌ടാനുസൃതമാക്കുന്നതിന് പശ്‌ചാത്തലം സ്‌പർശിച്ചുപിടിക്കുക"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"മനസ്സിലായി"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ശരി"</string>
     <string name="folder_opened" msgid="94695026776264709">"ഫോൾഡർ തുറന്നു, <xliff:g id="WIDTH">%1$d</xliff:g> / <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"ഫോൾഡർ അടയ്ക്കാൻ സ്‌പർശിക്കുക"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"പേരുമാറ്റം സംരക്ഷിക്കുന്നതിന് സ്‌പർശിക്കുക"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"വിജറ്റുകൾ"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"വാൾപേപ്പറുകൾ"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ക്രമീകരണങ്ങൾ"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"കാത്തിരിക്കുന്നു"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"ഡൗൺലോഡുചെയ്യുന്നു"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"ഇൻസ്‌റ്റാൾ ചെയ്യുന്നു"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"അജ്ഞാതം"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"പുനഃസ്ഥാപിച്ചിട്ടില്ല"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"എല്ലാം നീക്കം ചെയ്യുക"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"നീക്കംചെയ്യുക"</string>
     <string name="abandoned_search" msgid="891119232568284442">"തിരയുക"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"ഈ അപ്ലിക്കേഷൻ ഇൻസ്റ്റാളുചെയ്‌തിട്ടില്ല"</string>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 6639e6d..27b166d 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Нүүр"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Апп суугаагүй байна."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Апп-г ашиглах боломжгүй"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Тохируулга"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Энэ апп нь системийн апп ба устгах боломжгүй."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Нэргүй фолдер"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Нүүр дэлгэц %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%2$d-н %1$d хуудас"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"%2$d-н Нүүр дэлгэц %1$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Тавтай морилно уу"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Дэвсгэр зураг, виджет, &amp; тохиргоо"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Тааруулахын тулд арын дэлгэцэнд хүрээд &amp; барина уу"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"Ойлголоо"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Тийм"</string>
     <string name="folder_opened" msgid="94695026776264709">"<xliff:g id="WIDTH">%1$d</xliff:g> <xliff:g id="HEIGHT">%2$d</xliff:g> фолдер нээгдэв"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Фолдер хаах бол хүрнэ үү"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Шинэ нэрийг хадгалах бол хүрнэ үү"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Виджет"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Ханын зураг"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Тохиргоо"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Хүлээж байна"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Татаж авч байна"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Суулгаж байна"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Тодорхойгүй"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Сэргээгээгүй"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Бүгдийг устгах"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Устгах"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Хайх"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Энэ апп-г суулгаагүй байна"</string>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index 0d61ff3..ad75e88 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"मुख्‍यपृष्‍ठ"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"अॅप स्थापित केलेला नाही."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"अॅप उपलब्ध नाही"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"सेटअप"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"हा सिस्टम अॅप आहे आणि विस्थापित केला जाऊ शकत नाही."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"अनामित फोल्डर"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"मुख्य स्क्रीन %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%2$d पैकी %1$d पृष्ठ"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"%2$d पैकी %1$d मुख्य स्क्रीन"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"सुस्वागतम"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"वॉलपेपर, विजेट आणि सेटिंग्ज"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"सानुकूल करण्यासाठी पार्श्वभूमीस स्पर्श करा आणि धरुन ठेवा"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"समजले"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ठीक"</string>
     <string name="folder_opened" msgid="94695026776264709">"फोल्डर उघडले, <xliff:g id="WIDTH">%1$d</xliff:g> बाय <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"फोल्डर बंद करण्यासाठी स्पर्श करा"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"नवे नाव जतन करण्यासाठी स्पर्श करा"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"विजेट"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"वॉलपेपर"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"सेटिंग्ज"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"प्रतीक्षारत"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"डाउनलोड करत आहे"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"स्थापित करत आहे"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"अज्ञात"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"पुनर्स्थापित झाले नाही"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"सर्व काढा"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"काढा"</string>
     <string name="abandoned_search" msgid="891119232568284442">"शोधा"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"हा अॅप स्थापित केलेला नाही"</string>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index a9344f5..e2b8e16 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Laman Utama"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Apl tidak dipasang."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Apl tidak tersedia"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Persediaan"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ini ialah apl sistem dan tidak boleh dinyahpasang."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Folder Tanpa Nama"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Skrin Laman Utama %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Halaman %1$d daripada %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Skrin Laman Utama %1$d daripada %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Selamat datang"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Kertas dinding, widget &amp; tetapan"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Sentuh &amp; tahan latar belakang untuk memperibadikan"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"FAHAM"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Folder dibuka, <xliff:g id="WIDTH">%1$d</xliff:g> kali <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Sentuh untuk menutup folder"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Sentuh untuk menyimpan penamaan semula"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widget"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Kertas dinding"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Tetapan"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Menunggu"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Memuat turun"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Memasang"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Tidak diketahui"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Tak dipulihkan"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Buang Semua"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Alih keluar"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Carian"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Apl ini tidak dipasang"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index de274d7..7335605 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="8424725141379931883">"Pelancar"</string>
-    <string name="home" msgid="5921706419368316758">"Laman Utama"</string>
     <string name="folder_name" msgid="8551881338202938211"></string>
     <string name="wallpaper_instructions" msgid="4215640646180727542">"Tetapkan kertas dinding"</string>
     <string name="pick_wallpaper" msgid="5630222540525626723">"Kertas dinding"</string>
@@ -43,10 +42,8 @@
     <string name="gadget_error_text" msgid="8359351016167075858">"Masalah memuatkan widget"</string>
     <string name="uninstall_system_app_text" msgid="6429814133777046491">"Ini adalah aplikasi sistem dan tidak boleh dinyahpasang."</string>
     <string name="folder_hint_text" msgid="8633351560105748141">"Folder Tanpa Nama"</string>
-    <string name="workspace_description_format" msgid="2968608205939373034">"Skrin utama %1$d"</string>
     <string name="default_scroll_format" msgid="4057140866420001240">"Halaman %1$d dari %2$d"</string>
     <string name="workspace_scroll_format" msgid="1704767047951143301">"Skrin utama %1$d dari %2$d"</string>
-    <string name="cling_dismiss" msgid="2780907108735868381">"OK"</string>
     <string name="folder_opened" msgid="1262064100943801533">"Folder dibuka, <xliff:g id="WIDTH">%1$d</xliff:g> kali <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1335478160661137579">"Sentuh untuk menutup folder"</string>
     <string name="folder_tap_to_rename" msgid="5201612989905472442">"Sentuh untuk menyimpan penamaan semula"</string>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index fc3f4a4..7589f75 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher၃"</string>
-    <string name="home" msgid="7658288663002113681">"ပင်မစာမျက်နှာ"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"အပ်ပလီကေးရှင်း မထည့်သွင်းထားပါ"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"App လက်လှမ်း မမှီပါ"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"စဖွင့်သတ်မှတ်ရန်"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"ဤအပ်ပလီကေးရှင်းမှာ စစ်စတန်ပိုင်းဆိုင်ရာ အပ်ပလီကေးရှင်းဖြစ်ပါသည်။ ထုတ်ပစ်၍ မရပါ"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"အမည်မရှိအကန့်"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"ပင်မစာမျက်နှာ %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"စာမျက်နှာ %1$d မှ %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"ပင်မစာမျက်နှာ %1$d မှ %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"မင်္ဂလာပါ"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"နောက်ခံများ၊ ဝီဂျက်များ&amp; ဆက်တင်များ"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"နောက်ခံကို စိတ်တိုင်းကျ ပြုလုပ်ရန် ထိလျက် &amp; ကိုင်ထားပါ"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ရပြီ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ကောင်းပြီ"</string>
     <string name="folder_opened" msgid="94695026776264709">"ဖွင့်ထားသောအကန့်, <xliff:g id="WIDTH">%1$d</xliff:g> နှင့် <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"အကန့်ကို ပိတ်ရန် ဖိကိုင်ပါ"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"အမည်ပြောင်းခြင်း အတည်ပြုရန် ဖိကိုင်ပါ"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"ဝဒ်ဂျက်များ"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"နောက်ခံများ"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"အပြင်အဆင်များ"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"စောင့်နေ"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"ဒေါင်းလုဒ် လုပ်နေ"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"တပ်ဆင်နေ"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"မသိရ"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"ပြန်မဖေါ်ခဲ့"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"အားလုံး ဖယ်ရှားရန်"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ဖယ်ရှားရန်"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ရှာဖွေရန်"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"App မတပ်ဆင်ရသေးပါ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 386019c..df9ec93 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Startside"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Appen er ikke installert."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Appen er ikke tilgjengelig"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Konfigurering"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dette er en systemapp som ikke kan avinstalleres."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Mappe uten navn"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Startside %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Side %1$d av %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Startside %1$d av %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Velkommen"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Bakgrunner, moduler og innstillinger"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Trykk og hold på bakgrunnen for å tilpasse den"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SKJØNNER"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Mappen er åpnet – <xliff:g id="WIDTH">%1$d</xliff:g> ganger <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Trykk for å lukke mappen"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Trykk for å lagre det nye navnet"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Moduler"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Bakgrunner"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Innstillinger"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Venter …"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Laster ned …"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installerer …"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Ukjent"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Ikke gjenoppr."</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Fjern alle"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Fjern"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Søk"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Denne appen er ikke installert"</string>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 9efc04f..4398334 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"गृह"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"अनुप्रयोग स्थापित छैन।"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"अनुप्रयोग उपलब्ध छैन"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"सेटअप"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"यो प्रणाली अनुप्रयोग हो र यसलाई स्थापना रद्द गर्न सकिँदैन।"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"बेनाम फोल्डर"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"गृह स्क्रिन %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"पृष्ठ %2$d को %1$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"गृह स्क्रिन %2$d को %2$d"</string>
     <!-- String.format failed for translation -->
@@ -60,7 +58,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"वालपेपरहरू, विजेट; सेटिङहरू"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"छुनुहोस् ; अनुकूलन पृष्ठभूमि होल्ड गर्नुहोस्"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"बुझियो"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ठिक छ"</string>
     <string name="folder_opened" msgid="94695026776264709">"फोल्डर खुल्यो <xliff:g id="WIDTH">%1$d</xliff:g> बाट <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"फोल्डर बन्द गर्नको लागि टच गर्नुहोस्"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"पुन: नामाकरण बचत गर्न टच गर्नुहोस्।"</string>
@@ -70,12 +67,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"विजेटहरू"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"वालपेपरहरु"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"सेटिंङहरू"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"पर्खँदै"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"डाउनलोड हुँदै"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"स्थापना गर्दै"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"अज्ञात"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"पुनर्स्थापित भएन"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"सबै हटाउनुहोस्"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"हटाउनुहोस्"</string>
     <string name="abandoned_search" msgid="891119232568284442">"खोजी गर्नुहोस्"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"यो अनुप्रयोग स्थापित छैन"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index d9b6aea..8a82624 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Startpagina"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"App is niet geïnstalleerd."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"App is niet beschikbaar"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Configuratie"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dit is een systeemapp die niet kan worden verwijderd."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Naamloze map"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Startscherm %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Pagina %1$d van %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Startscherm %1$d van %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Welkom"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Achtergronden, widgets en instellingen"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Blijf de achtergrond aanraken om deze aan te passen"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Map geopend, <xliff:g id="WIDTH">%1$d</xliff:g> bij <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Raak dit aan om de map te sluiten"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Raak dit aan om de gewijzigde naam op te slaan"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Achtergronden"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Instellingen"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Wachten"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Downloaden"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installeren"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Onbekend"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Niet hersteld"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Alles verwijderen"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Verwijderen"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Zoeken"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Deze app is niet geïnstalleerd"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 5506781..94da2a5 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Ekran główny"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Aplikacja nie jest zainstalowana."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Aplikacja niedostępna"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Konfiguracja"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"To aplikacja systemowa i nie można jej odinstalować."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Folder bez nazwy"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Ekran główny %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Strona %1$d z %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Ekran główny %1$d z %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Witamy"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Tapety, widżety i ustawienia"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Kliknij i przytrzymaj tło, by dostosować"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Folder otwarty, <xliff:g id="WIDTH">%1$d</xliff:g> na <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Kliknij, by zamknąć folder"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Kliknij, by zapisać zmianę nazwy"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widżety"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Tapety"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Ustawienia"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Oczekiwanie"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Pobieranie"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Instalowanie"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Brak informacji"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Nie przywrócono"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Usuń wszystkie"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Usuń"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Szukaj"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Ta aplikacja nie jest zainstalowana"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index db2f793..ef1fa6f 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Iniciador3"</string>
-    <string name="home" msgid="7658288663002113681">"Ecrã principal"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"A aplicação não está instalada."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"A aplicação não está disponível"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Configuração"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"É uma aplicação de sistema e não pode ser desinstalada."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Pasta sem nome"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Ecrã principal %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Página %1$d de %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Ecrã principal %1$d de %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Bem-vindo(a)"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Imagens de fundo, widgets e definições"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Toque sem soltar no fundo para personalizar"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"COMPREENDI"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Pasta aberta, <xliff:g id="WIDTH">%1$d</xliff:g> por <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Toque para fechar a pasta"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toque para guardar o nome novo"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Imagens de fundo"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Definições"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"A aguardar"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"A transferir "</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"A instalar"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Desconhecido"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Não restaurado"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Remover todos"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remover"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Pesquisar"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Esta aplicação não está instalada"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 7172b24..8c592c1 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Início"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"O app não está instalado."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"O app não está disponível"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Configuração"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Este é um app do sistema e não pode ser desinstalado."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Pasta sem nome"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Tela inicial %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Página %1$d de %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Tela inicial %1$d de %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Bem-vindo"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Plano de fundo, widgets e configurações"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Toque e mantenha pressionado o segundo plano para personalizar"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ENTENDI"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Ok"</string>
     <string name="folder_opened" msgid="94695026776264709">"Pasta aberta, <xliff:g id="WIDTH">%1$d</xliff:g> por <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Toque para fechar a pasta"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toque para salvar o novo nome"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Planos de fundo"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Configurações"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Aguardando"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Transferindo"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Instalando"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Desconhecido"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Não restaurado"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Remover tudo"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remover"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Pesquisar"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Este app não está instalado"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index b2da9fb..1bcaa5a 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Ecran de pornire"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Aplicația nu este instalată."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Aplicația nu este disponibilă"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Configurați"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Aceasta este o aplicație de sistem și nu poate fi dezinstalată."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Dosar fără nume"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Ecran de pornire %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Pagina %1$d din %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Ecranul de pornire %1$d din %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Bun venit"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Imagini de fundal, widgeturi și setări"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Atingeți lung fundalul pentru a-l personaliza"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"AM ÎNȚELES"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Dosar deschis, <xliff:g id="WIDTH">%1$d</xliff:g> pe <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Atingeți pentru a închide dosarul"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Atingeți pentru a salva redenumirea"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgeturi"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Imagini de fundal"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Setări"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"În așteptare"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Se descarcă"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Se instalează"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Necunoscut"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Nerestabilit"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Eliminați-le pe toate"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminați"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Căutați"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Aplicația nu este instalată"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index c0a8d02..c5eb1c2 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Главный экран"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Приложение удалено"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Приложение недоступно"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Настройка"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Это системное приложение, его нельзя удалить."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Папка без названия"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Главный экран %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Стр. %1$d из %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Главные экран %1$d из %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Добро пожаловать!"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Обои, виджеты и настройки"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Чтобы выполнить настройку, коснитесь фона и удерживайте его"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ОК"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ОК"</string>
     <string name="folder_opened" msgid="94695026776264709">"Папка открыта, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Нажмите, чтобы закрыть папку"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Нажмите, чтобы подтвердить переименование"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Виджеты"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Обои"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Настройки"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Ожидается"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Скачивается"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Устанавливается"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Неизвестно"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Не восстановлен"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Удалить все"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Удалить"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Найти"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Приложение не установлено"</string>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 3b8d811..fcfa717 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"මුල් පිටුව"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"යෙදුම ස්ථාපනය කර නැත."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"යෙදුම නොතිබේ"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"ස්ථාපනය කරන්න"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"මෙය පද්ධති යෙදුමක් වන අතර අස්ථාපනය කළ නොහැක."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"නම් නොකළ ෆෝල්ඩරය"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"මුල් පිටු තිරය %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%2$d හි %1$d පිටුව"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"මුල් පිටු තිරය %2$d හි %1$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"සාදරයෙන් පිළිගනිමු"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"වෝල්පේපර, විජට්, සහ සැකසීම්"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"පසුබිම අභිරුචිකරණය කිරීමට ස්පර්ශ කර අල්ලා සිටින්න"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"තේරුණා"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"හරි"</string>
     <string name="folder_opened" msgid="94695026776264709">"ෆෝල්ඩරය විවෘත විය, <xliff:g id="WIDTH">%1$d</xliff:g> හි <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"ෆෝල්ඩරය වැසීමට ස්පර්ශ කරන්න"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"නැවත නම් කිරීම සුරැකීමට ස්පර්ශ කරන්න"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"විජට්"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"වෝල්පේපර"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"සැකසීම්"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"රැඳී සිටිමින්"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"බාගනිමින්"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"ස්ථාපනය කරමින්"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"නොදනී"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"ප්‍රතිස්ථාපනය කළේ නැත"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"සියල්ල ඉවත් කරන්න"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ඉවත් කරන්න"</string>
     <string name="abandoned_search" msgid="891119232568284442">"සොයන්න"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"මෙම යෙදුම ස්ථාපනය කර නොමැත"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 8cfb992..7b20ba4 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Plocha"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Aplikácia nie je nainštalovaná."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Aplikácia nie je k dispozícii"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Nastavenie"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Toto je systémová aplikácia a nedá sa odinštalovať."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Nepomenovaný priečinok"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Plocha %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Stránka %1$d z %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Plocha %1$d z %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Vitajte!"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Pozadia, miniaplikácie a nastavenia"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Ak si chcete pozadie prispôsobiť, klepnite naň a podržte ho"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ROZUMIEM"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Otvorený priečinok, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Dotykom zavriete priečinok"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Dotykom premenovanie uložíte"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Miniaplikácie"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Tapety"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Nastavenia"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Čaká sa"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Sťahovanie"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Inštalácia"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Neznáme"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Nebolo obnovené"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Odstrániť všetky"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Odstrániť"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Vyhľadať"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Táto aplikácia nie je nainštalovaná"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 63a4bac..ae8c071 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Zaganjalnik3"</string>
-    <string name="home" msgid="7658288663002113681">"Začetni zaslon"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Aplikacija ni nameščena."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Aplikacija ni na voljo"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Nastavitev"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"To je sistemska aplikacija in je ni mogoče odstraniti."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Neimenovana mapa"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Začetni zaslon %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Stran %1$d od %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Začetni zaslon %1$d od %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Pozdravljeni"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Ozadja, pripomočki in nastavitve"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Za prilagajanje se dotaknite ozadja in ga pridržite"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"V REDU"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"V redu"</string>
     <string name="folder_opened" msgid="94695026776264709">"Mapa je odprta, <xliff:g id="WIDTH">%1$d</xliff:g> krat <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Dotaknite se, da zaprete mapo"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Dotaknite se, da shranite preimenovanje"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Pripomočki"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Ozadja"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Nastavitve"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Čakanje"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Prenašanje"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Nameščanje"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Neznano"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Ni obnovljen"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Odstrani vse"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Odstrani"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Iskanje"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Ta aplikacija ni nameščena."</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 955c44c..744fe37 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Почетна"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Апликација није инсталирана."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Апликација није доступна"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Подешавање"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ово је системска апликација и не може да се деинсталира."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Неименовани директоријум"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Почетни екран %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%1$d. страница од %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"%1$d. почетни екран од %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Добро дошли"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Позадине, виџети и подешавања"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Додирните и задржите позадину да бисте прилагодили"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ВАЖИ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Потврди"</string>
     <string name="folder_opened" msgid="94695026776264709">"Директоријум је отворен, <xliff:g id="WIDTH">%1$d</xliff:g> пута <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Додирните да бисте затворили директоријум"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Додирните да бисте сачували промену имена"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Виџети"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Позадине"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Подешавања"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Чека се"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Преузима се"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Инсталира се"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Непознато"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Није враћено"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Уклони све"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Уклони"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Претражи"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Ова апликација није инсталирана"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 636cabc..cb1a429 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Startskärm"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Appen är inte installerad."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Appen är inte tillgänglig"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Konfiguration"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Det här är en systemapp som inte kan avinstalleras."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Namnlös mapp"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Startskärmen %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Sidan %1$d av %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Startskärmen %1$d av %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Välkommen"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Bakgrunder, widgetar och inställningar"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Tryck länge på bakgrunden om du vill anpassa den"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Mappen är öppen, <xliff:g id="WIDTH">%1$d</xliff:g> gånger <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Tryck om du vill stänga mappen"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Tryck om du vill spara det nya namnet"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widgetar"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Bakgrunder"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Inställningar"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Väntar"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Hämtas"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Installerar"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Okänt"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Inte återställt"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Ta bort alla"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Ta bort"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Sök"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Appen är inte installerad"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 6a2abcc..5283e47 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Kizindua3"</string>
-    <string name="home" msgid="7658288663002113681">"Mwanzo"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Programu haijasakinishwa."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Programu haipatikani"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Sanidi"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Hii ni programu ya mfumo na haiwezi kuondolewa."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Folda isiyo na jina"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Skrini ya mwazo %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Ukurasa%1$d wa %2$d"</string>
     <!-- String.format failed for translation -->
     <!-- no translation found for workspace_scroll_format (8458889198184077399) -->
@@ -59,7 +57,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Mandhari, wijeti, na mipangilio"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Gusa na ushikilie mandhari ili uweke mapendeleo"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"NIMEELEWA"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"SAWA"</string>
     <string name="folder_opened" msgid="94695026776264709">"Folda imefunguliwa, <xliff:g id="WIDTH">%1$d</xliff:g> kwa <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Gusa ili ufunge folda"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Gusa ili uhifadhi jina jipya"</string>
@@ -69,12 +66,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Wijeti"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Mandhari"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Mipangilio"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Inasubiri"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Inapakua"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Inasakinisha"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Yasiyojulikana"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Haijarejeshwa"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Ondoa Zote"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Ondoa"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Tafuta"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Programu hii haijasakinishwa"</string>
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index daa98ef..2651fbb 100644
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -16,7 +16,6 @@
 
 <resources>
 <!-- All Apps -->
-    <dimen name="all_apps_container_inset">18dp</dimen>
     <dimen name="all_apps_grid_view_start_margin">0dp</dimen>
     <dimen name="all_apps_grid_section_text_size">26sp</dimen>
     <dimen name="all_apps_icon_top_bottom_padding">12dp</dimen>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index 9c7e699..a610bf8 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"லாஞ்சர்3"</string>
-    <string name="home" msgid="7658288663002113681">"முகப்பு"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"பயன்பாடு நிறுவப்படவில்லை."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"பயன்பாடு இல்லை"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"அமைவு"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"இது அமைப்பு பயன்பாடு என்பதால் நிறுவல் நீக்கம் செய்ய முடியாது."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"பெயரிடப்படாத கோப்புறை"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"முகப்புத் திரை %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"பக்கம் %1$d / %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"முகப்புத் திரை %1$d of %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"வரவேற்கிறோம்"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"வால்பேப்பர்கள், விட்ஜெட்கள் &amp; அமைப்புகள்"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"தனிப்பயனாக்க, பின்னணியைத் தொட்டுப் பிடிக்கவும்"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"புரிந்தது"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"சரி"</string>
     <string name="folder_opened" msgid="94695026776264709">"திறக்கப்பட்டக் கோப்புறை, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"கோப்புறையை மூட, தொடவும்"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"மறுபெயரிட்டதைச் சேமிக்க, தொடவும்"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"ஷார்ட்கட்ஸ்"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"வால்பேப்பர்கள்"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"அமைப்பு"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"காத்திருக்கிறது"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"பதிவிறக்குகிறது"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"நிறுவுகிறது"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"தெரியாதது"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"மீட்டெடுக்க முடியாது"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"அனைத்தையும் அகற்று"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"அகற்று"</string>
     <string name="abandoned_search" msgid="891119232568284442">"தேடு"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"பயன்பாடு நிறுவப்படவில்லை"</string>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 19e45e7..e3fd8e4 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"లాంచర్3"</string>
-    <string name="home" msgid="7658288663002113681">"హోమ్"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"అనువర్తనం ఇన్‌స్టాల్ చేయబడలేదు."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"అనువర్తనం అందుబాటులో లేదు"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"సెటప్ చేయి"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"ఇది సిస్టమ్ అనువర్తనం మరియు దీన్ని అన్‌ఇన్‌స్టాల్ చేయడం సాధ్యపడదు."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"పేరు లేని ఫోల్డర్"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"హోమ్ స్క్రీన్ %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%2$dలో %1$dవ పేజీ"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"%2$dలో %1$dవ హోమ్ స్క్రీన్"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"స్వాగతం"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"వాల్‌పేపర్‌లు, విడ్జెట్‌లు &amp; సెట్టింగ్‌లు"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"అనుకూలీకరించడానికి నేపథ్యాన్ని నొక్కి &amp; ఉంచండి"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"అర్థమైంది"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"సరే"</string>
     <string name="folder_opened" msgid="94695026776264709">"ఫోల్డర్ తెరవబడింది, <xliff:g id="WIDTH">%1$d</xliff:g> X <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"ఫోల్డర్‌ను మూసివేయడానికి తాకండి"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"పేరు మార్పును సేవ్ చేయడానికి తాకండి"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"విడ్జెట్‌లు"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"వాల్‌పేపర్‌లు"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"సెట్టింగ్‌లు"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"వేచి ఉంది"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"డౌన్‌లోడ్ చేస్తోంది"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"ఇన్‌స్టాల్ చేస్తోంది"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"తెలియదు"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"పునరుద్ధరించబడలేదు"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"అన్నీ తీసివేయి"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"తీసివేయి"</string>
     <string name="abandoned_search" msgid="891119232568284442">"శోధించు"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"ఈ అనువర్తనం ఇన్‌స్టాల్ చేయబడలేదు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 2627885..72d2d4b 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"หน้าแรก"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"ไม่ได้ติดตั้งแอป"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"แอปไม่พร้อมใช้งาน"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"ตั้งค่า"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"นี่เป็นแอประบบและไม่สามารถถอนการติดตั้งได้"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"โฟลเดอร์ที่ไม่มีชื่อ"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"หน้าจอหลัก %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"หน้า %1$d จาก %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"หน้าจอหลัก %1$d จาก %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"ยินดีต้อนรับ"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"วอลเปเปอร์ วิดเจ็ต และการตั้งค่า"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"แตะพื้นหลังค้างไว้เพื่อกำหนดค่า"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"รับทราบ"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ตกลง"</string>
     <string name="folder_opened" msgid="94695026776264709">"เปิดโฟลเดอร์ <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"แตะเพื่อปิดโฟลเดอร์"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"แตะเพื่อบันทึกการเปลี่ยนชื่อ"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"วิดเจ็ต"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"วอลเปเปอร์"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"การตั้งค่า"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"กำลังรอ"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"กำลังดาวน์โหลด"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"กำลังติดตั้ง"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"ไม่รู้จัก"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"ไม่ได้คืนค่า"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"ลบทั้งหมด"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ลบ"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ค้นหา"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"ไม่ได้ติดตั้งแอปนี้"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 5356aa5..948139b 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Home"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Hindi naka-install ang app."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Hindi available ang app"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"I-setup"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Isa itong app ng system at hindi maaaring i-uninstall."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Walang Pangalang Folder"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Home screen %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Pahina %1$d ng %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Home screen %1$d ng %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Maligayang Pagdating"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Mga wallpaper, widget at setting"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Pindutin nang matagal ang background upang i-customize"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"NAKUHA KO"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Binuksan ang folder, <xliff:g id="WIDTH">%1$d</xliff:g> by <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Pindutin upang isara ang folder"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Pindutin upang i-save ang pagpapalit ng pangalan"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Mga Widget"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Mga Wallpaper"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Mga Setting"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Naghihintay"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Nagda-download"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Nag-i-install"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Hindi kilala"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Hindi naibalik"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Alisin Lahat"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Alisin"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Maghanap"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Hindi naka-install ang app na ito"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 24e7815..b9add4e 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Ana ekran"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Uygulama yüklü değil."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Uygulama kullanılamıyor"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Kurulum"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Bu bir sistem uygulamasıdır ve yüklemesi kaldırılamaz."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Adsız Klasör"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Ana ekran %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Sayfa %1$d / %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Ana ekran %1$d / %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Hoş geldiniz"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Duvar kağıtları, widget\'lar ve ayarlar"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Özelleştirmek için arka plana dokunun ve basılı tutun"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"TAMAM"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"Tamam"</string>
     <string name="folder_opened" msgid="94695026776264709">"Klasör açıldı, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Klasörü kapatmak için dokunun"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Yeni adı kaydetmek için dokunun"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Widget\'lar"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Duvar Kağıtları"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Ayarlar"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Bekliyor"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"İndiriliyor"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Yükleniyor"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Bilinmiyor"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Geri yüklenmedi"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Tümünü Kaldır"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Kaldır"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Ara"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Bu uygulama yüklü değil"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 75a2a60..a1eead8 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Головний екран"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Додаток видалено."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Додаток недоступний"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Налаштування"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Це системна програма, її неможливо видалити."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Папка без назви"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Головний екран %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Сторінка %1$d з %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Головний екран %1$d з %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Вітаємо"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Фонові малюнки, віджети й налаштування"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Натисніть і втримуйте фон, щоб налаштувати робочу область"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ЗРОЗУМІЛО"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OК"</string>
     <string name="folder_opened" msgid="94695026776264709">"Папку відкрито (<xliff:g id="WIDTH">%1$d</xliff:g> х <xliff:g id="HEIGHT">%2$d</xliff:g>)"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Торкніться, щоб закрити папку"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Торкніться, щоб зберегти нову назву"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Віджети"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Фонові малюнки"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Налаштування"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Очікування"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Завантаження"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Встановлення"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Невідомо"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Не відновлено"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Видалити всі"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Видалити"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Шукати"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Цей додаток не встановлено"</string>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index 7054924..efad228 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"ہوم"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"ایپ انسٹال نہیں ہے۔"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"ایپ دستیاب نہیں ہے"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"ترتیب دیں"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"یہ ایک سسٹم ایپ ہے اور اسے اَن انسٹال نہیں کیا جا سکتا ہے۔"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"بلا نام فولڈر"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"‏ہوم اسکرین ‎%1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"‏صفحہ ‎%1$d از ‎%2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"‏ہوم اسکرین ‎%1$d از ‎%2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"خوش آمدید"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"وال پیپرز، ویجیٹس اور ترتیبات"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"حسب ضرورت بنانے کیلئے پس منظر کو ٹچ کریں اور دبائے رکھیں"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"سمجھ آ گئی"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"ٹھیک ہے"</string>
     <string name="folder_opened" msgid="94695026776264709">"فولڈر کھولا گیا، <xliff:g id="WIDTH">%1$d</xliff:g> × <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"فولڈر بند کرنے کیلئے ٹچ کریں"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"نام کی تبدیلی محفوظ کرنے کیلئے ٹچ کریں"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"ویجیٹس"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"وال پیپرز"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ترتیبات"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"منتظر"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"ڈاؤن لوڈ کیا جا رہا ہے"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"انسٹال کیا جا رہا ہے"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"نامعلوم"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"بحال نہیں ہوا"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"سبھی کو ہٹا دیں"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ہٹائیں"</string>
     <string name="abandoned_search" msgid="891119232568284442">"تلاش کریں"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"یہ ایپ انسٹال کردہ نہیں ہے"</string>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index a5c4613..b594e7d 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Ishga tushirgich3"</string>
-    <string name="home" msgid="7658288663002113681">"Uy"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Ilova o‘rnatilmadi."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Ilova mavjud emas"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Sozlash"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Bu tizim ilovasi, shuning uchun o‘chirib bo‘lmaydi."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Nomsiz jild"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Uy ekrani %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"%2$ddan %1$d ta sahifa"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Uy ekrani %2$ddan %1$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Xush kelibsiz"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Orqa fon rasmlari, vidjet va sozlamalar"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Orqa fonni moslashtirish uchun uni bosing va ushlab turing"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Jild ochildi, <xliff:g id="WIDTH">%1$d</xliff:g> ga <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Jildni yopish uchun bosing"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"O‘zgartirilgan nomni saqlash uchun bosing"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Vidjetlar"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Orqa fon rasmlari"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Sozlamalar"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Kutilmoqda"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Yuklab olinmoqda"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"O‘rnatilmoqda"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Noma’lum"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Qayta tiklanmadi"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Barchasini o‘chirish"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"O‘chirish"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Qidirish"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Ushbu ilova o‘rnatilmagan"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 45bfa4c..278bb54 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"Màn hình chính"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Ứng dụng chưa được cài đặt."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Ứng dụng không có sẵn"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Thiết lập"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Đây là ứng dụng hệ thống và không thể gỡ cài đặt."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Thư mục chưa đặt tên"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Màn hình chính %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Trang %1$d / %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Màn hình chính %1$d / %2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Chào mừng"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Hình nền, tiện ích và cài đặt"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Chạm và giữ nền để tùy chỉnh"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Đã mở thư mục, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Chạm để đóng thư mục"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Chạm để lưu tên mới"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Tiện ích con"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Hình nền"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Cài đặt"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Đang đợi"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Đang tải xuống"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Đang cài đặt"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Không xác định"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Không được khôi phục"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Xóa tất cả"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Xóa"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Tìm kiếm"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Ứng dụng này chưa được cài đặt"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index c8ca12d..9cd26b9 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"主屏"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"未安装该应用。"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"应用不可用"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"设置"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"这是系统应用,无法卸载。"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"未命名文件夹"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"主屏幕%1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"第%1$d页,共%2$d页"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"主屏幕:第%1$d屏,共%2$d屏"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"欢迎使用"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"壁纸、小部件和设置"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"触摸并按住背景,即可进行个性化设置"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"知道了"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"确定"</string>
     <string name="folder_opened" msgid="94695026776264709">"文件夹已打开,大小为<xliff:g id="WIDTH">%1$d</xliff:g>×<xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"触摸可关闭文件夹"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"触摸可保存新名称"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"小部件"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"壁纸"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"设置"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"正在等待"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"正在下载"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"正在安装"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"未知"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"无法还原"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"全部移除"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"移除"</string>
     <string name="abandoned_search" msgid="891119232568284442">"搜索"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"未安装此应用"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 132df14..052e8a0 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"主畫面"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"尚未安裝應用程式。"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"目前無法使用這個應用程式"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"設定"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"這是系統應用程式,無法將其解除安裝。"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"未命名的資料夾"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"主畫面 %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"第 %1$d 頁,共 %2$d 頁"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"主畫面 %1$d,共 %2$d 個"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"歡迎"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"桌布、小工具和設定"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"輕觸並按住背景即可自訂"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"知道了"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"確定"</string>
     <string name="folder_opened" msgid="94695026776264709">"資料夾已開啟 (<xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>)"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"輕觸即可關閉資料夾"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"輕觸即可儲存新改的名稱"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"小工具"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"桌布"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"設定"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"等候中"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"下載中"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"安裝中"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"不明"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"無法還原"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"全部移除"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"移除"</string>
     <string name="abandoned_search" msgid="891119232568284442">"搜尋"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"尚未安裝這個應用程式"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index d1e41fb..b6b5c4e 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Launcher3"</string>
-    <string name="home" msgid="7658288663002113681">"主螢幕"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"應用程式未安裝。"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"應用程式目前無法使用"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"設定"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"這是系統應用程式,不可解除安裝。"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"未命名的資料夾"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"主螢幕 %1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"第 %1$d 頁,共 %2$d 頁"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"主螢幕:第 %1$d 頁,共 %2$d 頁"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"歡迎使用"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"桌布、小工具和設定"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"輕觸並按住背景即可自訂"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"知道了"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"確定"</string>
     <string name="folder_opened" msgid="94695026776264709">"資料夾已開啟 (<xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>)"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"輕觸即可關閉資料夾"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"輕觸即可儲存新名稱"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"小工具"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"桌布"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"設定"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"等待中"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"下載中…"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"安裝中"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"不明"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"無法還原"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"全部移除"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"移除"</string>
     <string name="abandoned_search" msgid="891119232568284442">"搜尋"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"尚未安裝這個應用程式"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 73852bf..2dbd722 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -20,7 +20,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="5181331383435256801">"Isiqalisi3"</string>
-    <string name="home" msgid="7658288663002113681">"Ikhaya"</string>
     <string name="folder_name" msgid="7371454440695724752"></string>
     <string name="activity_not_found" msgid="8071924732094499514">"Uhlelo lokusebenza alufakiwe."</string>
     <string name="activity_not_available" msgid="7456344436509528827">"Uhlelo lokusebenza alutholakali"</string>
@@ -46,7 +45,6 @@
     <string name="gadget_setup_text" msgid="8274003207686040488">"Ukumisa"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"Lolu uhlelo lokusebenza lwesistimu futhi alikwazi ukukhishwa."</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"Ifolda engenagama"</string>
-    <string name="workspace_description_format" msgid="2950174241104043327">"Isikrini sasekhaya esingu-%1$d"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"Ikhasi elingu-%1$d kwangu-%2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Isikrini sasekhaya esingu-%1$d se-%2$d"</string>
     <string name="first_run_cling_title" msgid="2459738000155917941">"Siyakwamukela"</string>
@@ -57,7 +55,6 @@
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Izithombe zangemuva, amawijethi, nezilungiselelo"</string>
     <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Thinta uphinde ubambe ingemuva ukuze wenze ngokwezifiso"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"NGIYITHOLILE"</string>
-    <string name="cling_dismiss" msgid="8962359497601507581">"KULUNGILE"</string>
     <string name="folder_opened" msgid="94695026776264709">"Ifolda ivuliwe, <xliff:g id="WIDTH">%1$d</xliff:g> nge-<xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="1884479294466410023">"Thinta ukuze uvale ifolda"</string>
     <string name="folder_tap_to_rename" msgid="9191075570492871147">"Thinta ukuze ulondoloze ukuqamba kabusha"</string>
@@ -67,12 +64,7 @@
     <string name="widget_button_text" msgid="2880537293434387943">"Amawijethi"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Izithombe zangemuva"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Izilungiselelo"</string>
-    <string name="package_state_enqueued" msgid="6227252464303085641">"Ilindile"</string>
-    <string name="package_state_downloading" msgid="4088770468458724721">"Iyalanda"</string>
-    <string name="package_state_installing" msgid="7588193972189849870">"Iyafaka"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Akwaziwa"</string>
-    <string name="package_state_error" msgid="7672093962724223588">"Ayibuyiselwe"</string>
-    <string name="abandoned_clean_all" msgid="5256770727689657618">"Susa konke"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Susa"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Sesha"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"Lolu hlelo lokusebenza alifakiwe"</string>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 2184ead..da56d90 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -51,20 +51,21 @@
 
 <!-- All Apps -->
     <!-- Note: This needs to match the fixed insets for the search box. -->
-    <dimen name="container_fixed_bounds_inset">8dp</dimen>
+    <dimen name="container_bounds_inset">8dp</dimen>
+    <!-- Notes: container_bounds_inset - quantum_panel_outer_padding -->
+    <dimen name="container_bounds_minus_quantum_panel_padding_inset">4dp</dimen>
 
-    <dimen name="all_apps_container_inset">8dp</dimen>
-    <dimen name="all_apps_grid_view_start_margin">56dp</dimen>
+    <dimen name="all_apps_grid_view_start_margin">0dp</dimen>
     <dimen name="all_apps_grid_section_y_offset">8dp</dimen>
     <dimen name="all_apps_grid_section_text_size">24sp</dimen>
-    <dimen name="all_apps_search_bar_height">52dp</dimen>
+    <dimen name="all_apps_search_bar_height">48dp</dimen>
     <dimen name="all_apps_search_bar_prediction_bar_padding">8dp</dimen>
     <dimen name="all_apps_icon_top_bottom_padding">8dp</dimen>
     <dimen name="all_apps_icon_width_gap">24dp</dimen>
-    <dimen name="all_apps_prediction_bar_bottom_padding">16dp</dimen>
+    <dimen name="all_apps_prediction_bar_top_bottom_padding">16dp</dimen>
 
     <dimen name="all_apps_fast_scroll_bar_width">4dp</dimen>
-    <dimen name="all_apps_fast_scroll_scrubber_touch_inset">-16dp</dimen>
+    <dimen name="all_apps_fast_scroll_scrubber_touch_inset">-24dp</dimen>
     <dimen name="all_apps_fast_scroll_popup_size">72dp</dimen>
     <dimen name="all_apps_fast_scroll_text_size">48dp</dimen>
 
@@ -117,7 +118,7 @@
 
 <!-- Sizes for managed profile badges -->
     <dimen name="profile_badge_size">24dp</dimen>
-    <dimen name="profile_badge_margin">4dp</dimen>
+    <dimen name="profile_badge_margin">5dp</dimen>
     <dimen name="profile_badge_minimum_top">2dp</dimen>
 
 <!-- Shadows and outlines -->
diff --git a/src/com/android/launcher3/AppInfo.java b/src/com/android/launcher3/AppInfo.java
index 9c87ced..c95d558 100644
--- a/src/com/android/launcher3/AppInfo.java
+++ b/src/com/android/launcher3/AppInfo.java
@@ -25,6 +25,7 @@
 import com.android.launcher3.compat.LauncherActivityInfoCompat;
 import com.android.launcher3.compat.UserHandleCompat;
 import com.android.launcher3.compat.UserManagerCompat;
+import com.android.launcher3.util.ComponentKey;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -137,6 +138,10 @@
         return new ShortcutInfo(this);
     }
 
+    public ComponentKey toComponentKey() {
+        return new ComponentKey(componentName, user);
+    }
+
     public static Intent makeLaunchIntent(Context context, LauncherActivityInfoCompat info,
             UserHandleCompat user) {
         long serialNumber = UserManagerCompat.getInstance(context).getSerialNumberForUser(user);
diff --git a/src/com/android/launcher3/BaseContainerView.java b/src/com/android/launcher3/BaseContainerView.java
index bd1c625..4b7b977 100644
--- a/src/com/android/launcher3/BaseContainerView.java
+++ b/src/com/android/launcher3/BaseContainerView.java
@@ -19,16 +19,25 @@
 import android.content.Context;
 import android.graphics.Rect;
 import android.util.AttributeSet;
-import android.widget.FrameLayout;
+import android.widget.LinearLayout;
 
 /**
  * A base container view, which supports resizing.
  */
-public class BaseContainerView extends FrameLayout implements Insettable {
+public abstract class BaseContainerView extends LinearLayout implements Insettable {
 
-    protected Rect mInsets = new Rect();
-    protected Rect mFixedBounds = new Rect();
-    protected int mFixedBoundsContainerInset;
+    // The window insets
+    private Rect mInsets = new Rect();
+    // The bounds of the search bar.  Only the left, top, right are used to inset the
+    // search bar and the height is determined by the measurement of the layout
+    private Rect mSearchBarBounds = new Rect();
+    // The bounds of the container
+    protected Rect mContentBounds = new Rect();
+    // The padding to apply to the container to achieve the bounds
+    protected Rect mContentPadding = new Rect();
+    // The inset to apply to the edges and between the search bar and the container
+    private int mContainerBoundsInset;
+    private boolean mHasSearchBar;
 
     public BaseContainerView(Context context) {
         this(context, null);
@@ -40,62 +49,73 @@
 
     public BaseContainerView(Context context, AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
-        mFixedBoundsContainerInset = context.getResources().getDimensionPixelSize(
-                R.dimen.container_fixed_bounds_inset);
+        mContainerBoundsInset = getResources().getDimensionPixelSize(R.dimen.container_bounds_inset);
     }
 
     @Override
     final public void setInsets(Rect insets) {
         mInsets.set(insets);
-        onUpdateBackgrounds();
-        onUpdatePaddings();
+        updateBackgroundAndPaddings();
+    }
+
+    protected void setHasSearchBar() {
+        mHasSearchBar = true;
     }
 
     /**
-     * Sets the fixed bounds for this container view.
+     * Sets the search bar bounds for this container view to match.
      */
-    final public void setFixedBounds(Rect fixedBounds) {
-        if (!fixedBounds.isEmpty() && !fixedBounds.equals(mFixedBounds)) {
-            mFixedBounds.set(fixedBounds);
-            if (Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION) {
-                mFixedBounds.top = mInsets.top;
-                mFixedBounds.bottom = mInsets.bottom;
-            }
-            // To ensure that the child RecyclerView has the full width to handle touches right to
-            // the edge of the screen, we only apply the top and bottom padding to the bounds
-            mFixedBounds.top += mFixedBoundsContainerInset;
-            mFixedBounds.bottom += mFixedBoundsContainerInset;
-            onFixedBoundsUpdated();
-        }
+    final public void setSearchBarBounds(Rect bounds) {
+        mSearchBarBounds.set(bounds);
+
         // Post the updates since they can trigger a relayout, and this call can be triggered from
         // a layout pass itself.
         post(new Runnable() {
             @Override
             public void run() {
-                onUpdateBackgrounds();
-                onUpdatePaddings();
+                updateBackgroundAndPaddings();
             }
         });
     }
 
     /**
-     * Update the UI in response to a change in the fixed bounds.
+     * Update the backgrounds and padding in response to a change in the bounds or insets.
      */
-    protected void onFixedBoundsUpdated() {
-        // Do nothing
+    protected void updateBackgroundAndPaddings() {
+        Rect padding;
+        Rect searchBarBounds = new Rect(mSearchBarBounds);
+        if (mSearchBarBounds.isEmpty()) {
+            // Use the normal bounds
+            padding = new Rect(mInsets.left + mContainerBoundsInset,
+                    (mHasSearchBar ? 0 : (mInsets.top + mContainerBoundsInset)),
+                    mInsets.right + mContainerBoundsInset,
+                    mInsets.bottom + mContainerBoundsInset);
+
+            // Special case -- we have the search bar, but no specific bounds, so just give it
+            // the inset bounds without a height.
+            searchBarBounds.set(mInsets.left + mContainerBoundsInset,
+                    mInsets.top + mContainerBoundsInset,
+                    getMeasuredWidth() - (mInsets.right + mContainerBoundsInset), 0);
+        } else {
+            // Use the search bounds, if there is a search bar, the bounds will contain
+            // the offsets for the insets so we can ignore that
+            padding = new Rect(mSearchBarBounds.left,
+                    (mHasSearchBar ? 0 : (mInsets.top + mContainerBoundsInset)),
+                    getMeasuredWidth() - mSearchBarBounds.right,
+                    mInsets.bottom + mContainerBoundsInset);
+        }
+        if (!padding.equals(mContentPadding) || !searchBarBounds.equals(mSearchBarBounds)) {
+            mContentPadding.set(padding);
+            mContentBounds.set(padding.left, padding.top,
+                    getMeasuredWidth() - padding.right,
+                    getMeasuredHeight() - padding.bottom);
+            mSearchBarBounds.set(searchBarBounds);
+            onUpdateBackgroundAndPaddings(mSearchBarBounds, padding);
+        }
     }
 
     /**
-     * Update the paddings in response to a change in the bounds or insets.
+     * To be implemented by container views to update themselves when the bounds changes.
      */
-    protected void onUpdatePaddings() {
-        // Do nothing
-    }
-
-    /**
-     * Update the backgrounds in response to a change in the bounds or insets.
-     */
-    protected void onUpdateBackgrounds() {
-        // Do nothing
-    }
+    protected abstract void onUpdateBackgroundAndPaddings(Rect searchBarBounds, Rect padding);
 }
\ No newline at end of file
diff --git a/src/com/android/launcher3/BaseRecyclerView.java b/src/com/android/launcher3/BaseRecyclerView.java
index a207d9a..140c28c 100644
--- a/src/com/android/launcher3/BaseRecyclerView.java
+++ b/src/com/android/launcher3/BaseRecyclerView.java
@@ -16,6 +16,8 @@
 
 package com.android.launcher3;
 
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
 import android.animation.ObjectAnimator;
 import android.content.Context;
 import android.content.res.Resources;
@@ -89,9 +91,7 @@
     private int mLastY;
     private int mScrollbarWidth;
     private int mScrollbarInset;
-    private Rect mBackgroundPadding = new Rect();
-
-
+    protected Rect mBackgroundPadding = new Rect();
 
     public BaseRecyclerView(Context context) {
         this(context, null);
@@ -230,6 +230,10 @@
         return false;
     }
 
+    public void updateBackgroundPadding(Rect padding) {
+        mBackgroundPadding.set(padding);
+    }
+
     @Override
     protected void dispatchDraw(Canvas canvas) {
         super.dispatchDraw(canvas);
@@ -290,6 +294,13 @@
     }
 
     /**
+     * Returns the fast scroller alpha.
+     */
+    public float getFastScrollerAlpha() {
+        return mFastScrollAlpha;
+    }
+
+    /**
      * Maps the touch (from 0..1) to the adapter position that should be visible.
      * <p>Override in each subclass of this base class.
      */
@@ -306,13 +317,38 @@
     /**
      * Animates the visibility of the fast scroller popup.
      */
-    private void animateFastScrollerVisibility(boolean visible) {
+    private void animateFastScrollerVisibility(final boolean visible) {
         ObjectAnimator anim = ObjectAnimator.ofFloat(this, "fastScrollerAlpha", visible ? 1f : 0f);
         anim.setDuration(visible ? 200 : 150);
+        anim.addListener(new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationStart(Animator animation) {
+                if (visible) {
+                    onFastScrollingStart();
+                }
+            }
+
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                if (!visible) {
+                    onFastScrollingEnd();
+                }
+            }
+        });
         anim.start();
     }
 
     /**
+     * To be overridden by subclasses.
+     */
+    protected void onFastScrollingStart() {}
+
+    /**
+     * To be overridden by subclasses.
+     */
+    protected void onFastScrollingEnd() {}
+
+    /**
      * Invalidates the fast scroller popup.
      */
     protected void invalidateFastScroller(Rect bounds) {
@@ -340,9 +376,10 @@
             // Calculate the position for the fast scroller popup
             Rect bgBounds = mFastScrollerBg.getBounds();
             if (Utilities.isRtl(getResources())) {
-                x = mBackgroundPadding.left + getScrollBarSize();
+                x = mBackgroundPadding.left + (2 * getScrollbarWidth());
             } else {
-                x = getWidth() - getPaddingRight() - getScrollBarSize() - bgBounds.width();
+                x = getWidth() - mBackgroundPadding.right - (2 * getScrollbarWidth()) -
+                        bgBounds.width();
             }
             y = mLastY - (int) (FAST_SCROLL_OVERLAY_Y_OFFSET_FACTOR * bgBounds.height());
             y = Math.max(getPaddingTop(), Math.min(y, getHeight() - getPaddingBottom() -
diff --git a/src/com/android/launcher3/ClickShadowView.java b/src/com/android/launcher3/ClickShadowView.java
index 42fafe2..e31d7f7 100644
--- a/src/com/android/launcher3/ClickShadowView.java
+++ b/src/com/android/launcher3/ClickShadowView.java
@@ -96,12 +96,14 @@
         float drawableWidth = view.getIcon().getBounds().width();
 
         setTranslationX(leftShift
+                + viewParent.getTranslationX()
                 + view.getCompoundPaddingLeft() * view.getScaleX()
                 + (iconHSpace - drawableWidth) * view.getScaleX() / 2  /* drawable gap */
                 + iconWidth * (1 - view.getScaleX()) / 2  /* gap due to scale */
                 - mShadowPadding  /* extra shadow size */
                 );
         setTranslationY(topShift
+                + viewParent.getTranslationY()
                 + view.getPaddingTop() * view.getScaleY()  /* drawable gap */
                 + view.getHeight() * (1 - view.getScaleY()) / 2  /* gap due to scale */
                 - mShadowPadding  /* extra shadow size */
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index 9c59dab..a50540d 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -223,26 +223,22 @@
         folderCellHeightPx = cellHeightPx + edgeMarginPx;
         folderBackgroundOffset = -edgeMarginPx;
         folderIconSizePx = iconSizePx + 2 * -folderBackgroundOffset;
-
-        updateAppsViewNumCols(res, 0);
     }
 
-    public boolean updateAppsViewNumCols(Resources res, int containerWidth) {
+    /**
+     * @param recyclerViewWidth the available width of the AllAppsRecyclerView
+     */
+    public void updateAppsViewNumCols(Resources res, int recyclerViewWidth) {
         int appsViewLeftMarginPx =
                 res.getDimensionPixelSize(R.dimen.all_apps_grid_view_start_margin);
         int allAppsCellWidthGap =
                 res.getDimensionPixelSize(R.dimen.all_apps_icon_width_gap);
-        int availableAppsWidthPx = (containerWidth > 0) ? containerWidth : availableWidthPx;
+        int availableAppsWidthPx = (recyclerViewWidth > 0) ? recyclerViewWidth : availableWidthPx;
         int numAppsCols = (availableAppsWidthPx - appsViewLeftMarginPx) /
                 (allAppsIconSizePx + allAppsCellWidthGap);
         int numPredictiveAppCols = Math.max(inv.minAllAppsPredictionColumns, numAppsCols);
-        if ((numAppsCols != allAppsNumCols) ||
-                (numPredictiveAppCols != allAppsNumPredictiveCols)) {
-            allAppsNumCols = numAppsCols;
-            allAppsNumPredictiveCols = numPredictiveAppCols;
-            return true;
-        }
-        return false;
+        allAppsNumCols = numAppsCols;
+        allAppsNumPredictiveCols = numPredictiveAppCols;
     }
 
     /** Returns the search bar top offset */
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index d52191b..3596b71 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -36,7 +36,6 @@
 import android.content.BroadcastReceiver;
 import android.content.ComponentCallbacks2;
 import android.content.ComponentName;
-import android.content.ContentResolver;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
@@ -48,7 +47,6 @@
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.res.Configuration;
-import android.database.ContentObserver;
 import android.database.sqlite.SQLiteDatabase;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
@@ -99,7 +97,7 @@
 import com.android.launcher3.DropTarget.DragObject;
 import com.android.launcher3.PagedView.PageSwitchListener;
 import com.android.launcher3.allapps.AllAppsContainerView;
-import com.android.launcher3.allapps.AppSearchManager;
+import com.android.launcher3.allapps.AllAppsSearchBarController;
 import com.android.launcher3.compat.AppWidgetManagerCompat;
 import com.android.launcher3.compat.LauncherActivityInfoCompat;
 import com.android.launcher3.compat.LauncherAppsCompat;
@@ -138,9 +136,6 @@
     static final String TAG = "Launcher";
     static final boolean LOGD = false;
 
-    // Temporary flag
-    static final boolean DISABLE_ALL_APPS_SEARCH_INTEGRATION = true;
-
     static final boolean PROFILE_STARTUP = false;
     static final boolean DEBUG_WIDGETS = true;
     static final boolean DEBUG_STRICT_MODE = false;
@@ -244,7 +239,6 @@
 
     private final BroadcastReceiver mCloseSystemDialogsReceiver
             = new CloseSystemDialogsIntentReceiver();
-    private final ContentObserver mWidgetObserver = new AppWidgetResetObserver();
 
     private LayoutInflater mInflater;
 
@@ -441,7 +435,6 @@
 
         LauncherAppState.setApplicationContext(getApplicationContext());
         LauncherAppState app = LauncherAppState.getInstance();
-        LauncherAppState.getLauncherProvider().setLauncherProviderChangeListener(this);
 
         // Load configuration-specific DeviceProfile
         mDeviceProfile = getResources().getConfiguration().orientation
@@ -481,8 +474,6 @@
         setupViews();
         mDeviceProfile.layout(this);
 
-        registerContentObservers();
-
         lockAllApps();
 
         mSavedState = savedInstanceState;
@@ -515,7 +506,7 @@
         // In case we are on a device with locked rotation, we should look at preferences to check
         // if the user has specifically allowed rotation.
         if (!mRotationEnabled) {
-            mRotationEnabled = Utilities.isAllowRotationPrefEnabled(getApplicationContext());
+            mRotationEnabled = Utilities.isAllowRotationPrefEnabled(getApplicationContext(), false);
         }
 
         // On large interfaces, or on devices that a user has specifically enabled screen rotation,
@@ -562,59 +553,45 @@
 
     public boolean setLauncherCallbacks(LauncherCallbacks callbacks) {
         mLauncherCallbacks = callbacks;
-        mLauncherCallbacks.setLauncherAppsCallback(new Launcher.LauncherAppsCallbacks() {
-            @Override
-            public void onAllAppsBoundsChanged(Rect bounds) {
-                if (LOGD) {
-                    Log.d(TAG, "onAllAppsBoundsChanged(Rect): " + bounds);
-                }
-                mAppsView.setFixedBounds(bounds);
-                mWidgetsView.setFixedBounds(bounds);
-            }
-
-            @Override
-            public void dismissAllApps() {
-                if (!DISABLE_ALL_APPS_SEARCH_INTEGRATION) {
-                    // Dismiss All Apps if we aren't already paused/invisible
-                    if (!mPaused) {
-                        showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, true,
-                                null /* onCompleteRunnable */, false /* notifyLauncherCallbacks */);
-                    }
-                }
-            }
-
-            @Override
-            public void setSearchManager(AppSearchManager manager) {
-                mAppsView.setSearchManager(manager);
-            }
-        });
         mLauncherCallbacks.setLauncherSearchCallback(new Launcher.LauncherSearchCallbacks() {
-            private boolean mImportanceStored = false;
+            private boolean mWorkspaceImportanceStored = false;
+            private boolean mHotseatImportanceStored = false;
             private int mWorkspaceImportanceForAccessibility =
                 View.IMPORTANT_FOR_ACCESSIBILITY_AUTO;
             private int mHotseatImportanceForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_AUTO;
 
             @Override
             public void onSearchOverlayOpened() {
-                if (mImportanceStored) {
+                if (mWorkspaceImportanceStored || mHotseatImportanceStored) {
                     return;
                 }
                 // The underlying workspace and hotseat are temporarily suppressed by the search
                 // overlay. So they sholudn't be accessible.
-                mWorkspaceImportanceForAccessibility = mWorkspace.getImportantForAccessibility();
-                mHotseatImportanceForAccessibility = mHotseat.getImportantForAccessibility();
-                mWorkspace.setImportantForAccessibility(
-                    View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
-                mHotseat.setImportantForAccessibility(
-                    View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
-                mImportanceStored = true;
+                if (mWorkspace != null) {
+                    mWorkspaceImportanceForAccessibility =
+                            mWorkspace.getImportantForAccessibility();
+                    mWorkspace.setImportantForAccessibility(
+                            View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
+                    mWorkspaceImportanceStored = true;
+                }
+                if (mHotseat != null) {
+                    mHotseatImportanceForAccessibility = mHotseat.getImportantForAccessibility();
+                    mHotseat.setImportantForAccessibility(
+                            View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
+                    mHotseatImportanceStored = true;
+                }
             }
 
             @Override
             public void onSearchOverlayClosed() {
-                mWorkspace.setImportantForAccessibility(mWorkspaceImportanceForAccessibility);
-                mHotseat.setImportantForAccessibility(mHotseatImportanceForAccessibility);
-                mImportanceStored = false;
+                if (mWorkspaceImportanceStored && mWorkspace != null) {
+                    mWorkspace.setImportantForAccessibility(mWorkspaceImportanceForAccessibility);
+                }
+                if (mHotseatImportanceStored && mHotseat != null) {
+                    mHotseat.setImportantForAccessibility(mHotseatImportanceForAccessibility);
+                }
+                mWorkspaceImportanceStored = false;
+                mHotseatImportanceStored = false;
             }
         });
         return true;
@@ -627,6 +604,14 @@
         }
     }
 
+    /**
+     * Updates the bounds of all the overlays to match the new fixed bounds.
+     */
+    public void updateOverlayBounds(Rect newBounds) {
+        mAppsView.setSearchBarBounds(newBounds);
+        mWidgetsView.setSearchBarBounds(newBounds);
+    }
+
     /** To be overridden by subclasses to hint to Launcher that we have custom content */
     protected boolean hasCustomContentToLeft() {
         if (mLauncherCallbacks != null) {
@@ -1001,16 +986,6 @@
         }
         mOnResumeState = State.NONE;
 
-        // Restore the apps state if we are in all apps
-        if (!Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION) {
-            // Otherwise, notify the callbacks if we are in all apps mode
-            if (mState == State.APPS) {
-                if (mLauncherCallbacks != null) {
-                    mLauncherCallbacks.onAllAppsShown();
-                }
-            }
-        }
-
         // Background was set to gradient in onPause(), restore to transparent if in all apps.
         setWorkspaceBackground(mState == State.WORKSPACE ? WORKSPACE_BACKGROUND_GRADIENT
                 : WORKSPACE_BACKGROUND_TRANSPARENT);
@@ -1156,17 +1131,20 @@
          * Updates launcher to the available space that AllApps can take so as not to overlap with
          * any other views.
          */
+        @Deprecated
         public void onAllAppsBoundsChanged(Rect bounds);
 
         /**
          * Called to dismiss all apps if it is showing.
          */
+        @Deprecated
         public void dismissAllApps();
 
         /**
          * Sets the search manager to be used for app search.
          */
-        public void setSearchManager(AppSearchManager manager);
+        @Deprecated
+        public void setSearchManager(Object manager);
     }
 
     public interface LauncherSearchCallbacks {
@@ -1452,14 +1430,14 @@
         mSearchDropTargetBar = (SearchDropTargetBar)
                 mDragLayer.findViewById(R.id.search_drop_target_bar);
 
-        // Setup Apps
+        // Setup Apps and Widgets
         mAppsView = (AllAppsContainerView) findViewById(R.id.apps_view);
-        if (isAllAppsSearchOverridden()) {
-            mAppsView.hideHeaderBar();
-        }
-
-        // Setup AppsCustomize
         mWidgetsView = (WidgetsContainerView) findViewById(R.id.widgets_view);
+        if (mLauncherCallbacks != null && mLauncherCallbacks.getAllAppsSearchBarController() != null) {
+            mAppsView.setSearchBarController(mLauncherCallbacks.getAllAppsSearchBarController());
+        } else {
+            mAppsView.setSearchBarController(mAppsView.newDefaultAppSearchController());
+        }
 
         // Setup the drag controller (drop targets have to be added in reverse order in priority)
         dragController.setDragScoller(mWorkspace);
@@ -2045,7 +2023,6 @@
 
         TextKeyListener.getInstance().release();
 
-        getContentResolver().unregisterContentObserver(mWidgetObserver);
         unregisterReceiver(mCloseSystemDialogsReceiver);
 
         mDragLayer.clearAllResizeFrames();
@@ -2414,16 +2391,6 @@
         sFolders.remove(folder.id);
     }
 
-    /**
-     * Registers various content observers. The current implementation registers
-     * only a favorites observer to keep track of the favorites applications.
-     */
-    private void registerContentObservers() {
-        ContentResolver resolver = getContentResolver();
-        resolver.registerContentObserver(LauncherProvider.CONTENT_APPWIDGET_RESET_URI,
-                true, mWidgetObserver);
-    }
-
     @Override
     public boolean dispatchKeyEvent(KeyEvent event) {
         if (event.getAction() == KeyEvent.ACTION_DOWN) {
@@ -2480,9 +2447,10 @@
     }
 
     /**
-     * Re-listen when widgets are reset.
+     * Re-listen when widget host is reset.
      */
-    @Thunk void onAppWidgetReset() {
+    @Override
+    public void onAppWidgetHostReset() {
         if (mAppWidgetHost != null) {
             mAppWidgetHost.startListening();
         }
@@ -2850,17 +2818,8 @@
     public void updateInteraction(Workspace.State fromState, Workspace.State toState) {
         // Only update the interacting state if we are transitioning to/from a view with an
         // overlay
-        boolean fromStateWithOverlay;
-        boolean toStateWithOverlay;
-        if (Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION) {
-            fromStateWithOverlay = fromState != Workspace.State.NORMAL;
-            toStateWithOverlay = toState != Workspace.State.NORMAL;
-        } else {
-            fromStateWithOverlay = fromState != Workspace.State.NORMAL &&
-                    fromState != Workspace.State.NORMAL_HIDDEN;
-            toStateWithOverlay = toState != Workspace.State.NORMAL &&
-                    toState != Workspace.State.NORMAL_HIDDEN;
-        }
+        boolean fromStateWithOverlay = fromState != Workspace.State.NORMAL;
+        boolean toStateWithOverlay = toState != Workspace.State.NORMAL;
         if (toStateWithOverlay) {
             onInteractionBegin();
         } else if (fromStateWithOverlay) {
@@ -2976,7 +2935,7 @@
         return false;
     }
 
-    private boolean startActivitySafely(View v, Intent intent, Object tag) {
+    @Thunk boolean startActivitySafely(View v, Intent intent, Object tag) {
         boolean success = false;
         if (mIsSafeModeEnabled && !Utilities.isSystemApp(this, intent)) {
             Toast.makeText(this, R.string.safemode_shortcut_error, Toast.LENGTH_SHORT).show();
@@ -3304,21 +3263,19 @@
     }
 
     public void showWorkspace(boolean animated) {
-        showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, animated, null,
-                true);
+        showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, animated, null);
     }
 
     public void showWorkspace(boolean animated, Runnable onCompleteRunnable) {
         showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, animated,
-                onCompleteRunnable, true);
+                onCompleteRunnable);
     }
 
     protected void showWorkspace(int snapToPage, boolean animated) {
-        showWorkspace(snapToPage, animated, null, true);
+        showWorkspace(snapToPage, animated, null);
     }
 
-    void showWorkspace(int snapToPage, boolean animated, Runnable onCompleteRunnable,
-            boolean notifyLauncherCallbacks) {
+    void showWorkspace(int snapToPage, boolean animated, Runnable onCompleteRunnable) {
         boolean changed = mState != State.WORKSPACE ||
                 mWorkspace.getState() != Workspace.State.NORMAL;
         if (changed) {
@@ -3350,12 +3307,6 @@
             // Send an accessibility event to announce the context change
             getWindow().getDecorView()
                     .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
-            if (notifyLauncherCallbacks) {
-                // Dismiss all apps when the workspace is shown
-                if (!Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION && mLauncherCallbacks != null) {
-                    mLauncherCallbacks.onAllAppsHidden();
-                }
-            }
         }
     }
 
@@ -3415,10 +3366,7 @@
         }
 
         if (toState == State.APPS) {
-            mStateTransitionAnimation.startAnimationToAllApps(animated);
-            if (!Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION && mLauncherCallbacks != null) {
-                mLauncherCallbacks.onAllAppsShown();
-            }
+            mStateTransitionAnimation.startAnimationToAllApps(mState, animated);
         } else {
             mStateTransitionAnimation.startAnimationToWidgets(animated);
         }
@@ -3442,9 +3390,10 @@
      * new state.
      */
     public Animator startWorkspaceStateChangeAnimation(Workspace.State toState, int toPage,
-            boolean animated, HashMap<View, Integer> layerViews) {
+            boolean animated, boolean hasOverlaySearchBar, HashMap<View, Integer> layerViews) {
         Workspace.State fromState = mWorkspace.getState();
-        Animator anim = mWorkspace.setStateWithAnimation(toState, toPage, animated, layerViews);
+        Animator anim = mWorkspace.setStateWithAnimation(toState, toPage, animated,
+                hasOverlaySearchBar, layerViews);
         updateInteraction(fromState, toState);
         return anim;
     }
@@ -3466,14 +3415,6 @@
             final Runnable onCompleteRunnable) {
         if (mState != State.APPS_SPRING_LOADED && mState != State.WIDGETS_SPRING_LOADED) return;
 
-        if (successfulDrop) {
-            // We need to trigger all apps hidden to notify search to update itself before the
-            // delayed call to showWorkspace below
-            if (!Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION && mLauncherCallbacks != null) {
-                mLauncherCallbacks.onAllAppsHidden();
-            }
-        }
-
         mHandler.postDelayed(new Runnable() {
             @Override
             public void run() {
@@ -3617,20 +3558,6 @@
     }
 
     /**
-     * Receives notifications whenever the appwidgets are reset.
-     */
-    private class AppWidgetResetObserver extends ContentObserver {
-        public AppWidgetResetObserver() {
-            super(new Handler());
-        }
-
-        @Override
-        public void onChange(boolean selfChange) {
-            onAppWidgetReset();
-        }
-    }
-
-    /**
      * If the activity is currently paused, signal that we need to run the passed Runnable
      * in onResume.
      *
@@ -4457,20 +4384,6 @@
         return null;
     }
 
-    /**
-     * Returns whether the launcher callbacks overrides search in all apps.
-     */
-    @Thunk boolean isAllAppsSearchOverridden() {
-        if (DISABLE_ALL_APPS_SEARCH_INTEGRATION) {
-            return false;
-        }
-
-        if (mLauncherCallbacks != null) {
-            return mLauncherCallbacks.overrideAllAppsSearch();
-        }
-        return false;
-    }
-
     private boolean shouldRunFirstRunActivity() {
         return !ActivityManager.isRunningInTestHarness() &&
                 !mSharedPrefs.getBoolean(FIRST_RUN_ACTIVITY_DISPLAYED, false);
diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java
index 540bdf8..0565d3f 100644
--- a/src/com/android/launcher3/LauncherAppState.java
+++ b/src/com/android/launcher3/LauncherAppState.java
@@ -84,7 +84,7 @@
 
         mInvariantDeviceProfile = new InvariantDeviceProfile(sContext);
         mIconCache = new IconCache(sContext, mInvariantDeviceProfile);
-        mWidgetCache = new WidgetPreviewLoader(sContext, mInvariantDeviceProfile, mIconCache);
+        mWidgetCache = new WidgetPreviewLoader(sContext, mIconCache);
 
         mAppFilter = AppFilter.loadByName(sContext.getString(R.string.app_filter_class));
         mBuildInfo = BuildInfo.loadByName(sContext.getString(R.string.build_info_class));
@@ -125,6 +125,7 @@
     }
 
     LauncherModel setLauncher(Launcher launcher) {
+        getLauncherProvider().setLauncherProviderChangeListener(launcher);
         mModel.initialize(launcher);
         mAccessibilityDelegate = ((launcher != null) && Utilities.isLmpOrAbove()) ?
             new LauncherAccessibilityDelegate(launcher) : null;
diff --git a/src/com/android/launcher3/LauncherCallbacks.java b/src/com/android/launcher3/LauncherCallbacks.java
index 70e400b..e732754 100644
--- a/src/com/android/launcher3/LauncherCallbacks.java
+++ b/src/com/android/launcher3/LauncherCallbacks.java
@@ -7,6 +7,7 @@
 import android.view.Menu;
 import android.view.View;
 import android.view.ViewGroup;
+import com.android.launcher3.allapps.AllAppsSearchBarController;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -51,12 +52,9 @@
     public void onLauncherProviderChange();
     public void finishBindingItems(final boolean upgradePath);
     public void onClickAllAppsButton(View v);
-    public void onAllAppsShown();
-    public void onAllAppsHidden();
     public void bindAllApplications(ArrayList<AppInfo> apps);
     public void onClickFolderIcon(View v);
     public void onClickAppShortcut(View v);
-
     @Deprecated
     public void onClickPagedViewIcon(View v);
     public void onClickWallpaperPicker(View v);
@@ -89,10 +87,11 @@
     public View getIntroScreen();
     public boolean shouldMoveToDefaultScreenOnHomeIntent();
     public boolean hasSettings();
+    @Deprecated
     public ComponentName getWallpaperPickerComponent();
     public boolean overrideWallpaperDimensions();
     public boolean isLauncherPreinstalled();
-    public boolean overrideAllAppsSearch();
+    public AllAppsSearchBarController getAllAppsSearchBarController();
     public List<ComponentName> getPredictedApps();
 
     /**
@@ -114,14 +113,6 @@
             Launcher.LauncherOverlayCallbacks callbacks);
 
     /**
-     * Sets the callbacks to allow any extensions to callback to the launcher.
-     *
-     * @param callbacks A set of callbacks to the Launcher, is actually a LauncherAppsCallback, but
-     *                  for implementation purposes is passed around as an object.
-     */
-    public void setLauncherAppsCallback(Object callbacks);
-
-    /**
      * Sets the callbacks to allow reacting the actions of search overlays of the launcher.
      *
      * @param callbacks A set of callbacks to the Launcher, is actually a LauncherSearchCallback,
diff --git a/src/com/android/launcher3/LauncherExtension.java b/src/com/android/launcher3/LauncherExtension.java
index 09a105b..fafb070 100644
--- a/src/com/android/launcher3/LauncherExtension.java
+++ b/src/com/android/launcher3/LauncherExtension.java
@@ -11,6 +11,7 @@
 import android.view.Menu;
 import android.view.View;
 import android.view.ViewGroup;
+import com.android.launcher3.allapps.AllAppsSearchBarController;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -125,14 +126,6 @@
         }
 
         @Override
-        public void onAllAppsShown() {
-        }
-
-        @Override
-        public void onAllAppsHidden() {
-        }
-
-        @Override
         public void bindAllApplications(ArrayList<AppInfo> apps) {
         }
 
@@ -255,8 +248,8 @@
         }
 
         @Override
-        public boolean overrideAllAppsSearch() {
-            return false;
+        public AllAppsSearchBarController getAllAppsSearchBarController() {
+            return null;
         }
 
         @Override
@@ -285,11 +278,6 @@
         }
 
         @Override
-        public void setLauncherAppsCallback(Object callbacks) {
-            // Do nothing
-        }
-
-        @Override
         public void setLauncherSearchCallback(Object callbacks) {
             // Do nothing
         }
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index 9b52a80..3ebc307 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -81,16 +81,7 @@
 
     private static final String RESTRICTION_PACKAGE_NAME = "workspace.configuration.package.name";
 
-    private LauncherProviderChangeListener mListener;
-
-    /**
-     * {@link Uri} triggered at any registered {@link android.database.ContentObserver} when
-     * {@link AppWidgetHost#deleteHost()} is called during database creation.
-     * Use this to recall {@link AppWidgetHost#startListening()} if needed.
-     */
-    static final Uri CONTENT_APPWIDGET_RESET_URI =
-            Uri.parse("content://" + AUTHORITY + "/appWidgetReset");
-
+    @Thunk LauncherProviderChangeListener mListener;
     @Thunk DatabaseHelper mOpenHelper;
 
     @Override
@@ -109,6 +100,7 @@
 
     public void setLauncherProviderChangeListener(LauncherProviderChangeListener listener) {
         mListener = listener;
+        mOpenHelper.mListener = mListener;
     }
 
     @Override
@@ -463,6 +455,7 @@
             SQLiteDatabase.deleteDatabase(dbFile);
         }
         mOpenHelper = new DatabaseHelper(getContext());
+        mOpenHelper.mListener = mListener;
     }
 
     private static class DatabaseHelper extends SQLiteOpenHelper implements LayoutParserCallback {
@@ -473,6 +466,8 @@
 
         private boolean mNewDbCreated = false;
 
+        @Thunk LauncherProviderChangeListener mListener;
+
         DatabaseHelper(Context context) {
             super(context, LauncherFiles.LAUNCHER_DB, null, DATABASE_VERSION);
             mContext = context;
@@ -492,17 +487,6 @@
             return mNewDbCreated;
         }
 
-        /**
-         * Send notification that we've deleted the {@link AppWidgetHost},
-         * probably as part of the initial database creation. The receiver may
-         * want to re-call {@link AppWidgetHost#startListening()} to ensure
-         * callbacks are correctly set.
-         */
-        private void sendAppWidgetResetNotify() {
-            final ContentResolver resolver = mContext.getContentResolver();
-            resolver.notifyChange(CONTENT_APPWIDGET_RESET_URI, null);
-        }
-
         @Override
         public void onCreate(SQLiteDatabase db) {
             if (LOGD) Log.d(TAG, "creating new launcher database");
@@ -546,7 +530,22 @@
             // Database was just created, so wipe any previous widgets
             if (mAppWidgetHost != null) {
                 mAppWidgetHost.deleteHost();
-                sendAppWidgetResetNotify();
+
+                /**
+                 * Send notification that we've deleted the {@link AppWidgetHost},
+                 * probably as part of the initial database creation. The receiver may
+                 * want to re-call {@link AppWidgetHost#startListening()} to ensure
+                 * callbacks are correctly set.
+                 */
+                new MainThreadExecutor().execute(new Runnable() {
+
+                    @Override
+                    public void run() {
+                        if (mListener != null) {
+                            mListener.onAppWidgetHostReset();
+                        }
+                    }
+                });
             }
 
             // Fresh and clean launcher DB.
@@ -554,7 +553,7 @@
             setFlagEmptyDbCreated();
 
             // When a new DB is created, remove all previously stored managed profile information.
-            ManagedProfileHeuristic.processAllUsers(Collections.EMPTY_LIST, mContext);
+            ManagedProfileHeuristic.processAllUsers(Collections.<UserHandleCompat>emptyList(), mContext);
         }
 
         private void addWorkspacesTable(SQLiteDatabase db) {
diff --git a/src/com/android/launcher3/LauncherProviderChangeListener.java b/src/com/android/launcher3/LauncherProviderChangeListener.java
index 5b5c6c5..1b78e9c 100644
--- a/src/com/android/launcher3/LauncherProviderChangeListener.java
+++ b/src/com/android/launcher3/LauncherProviderChangeListener.java
@@ -10,4 +10,6 @@
     public void onLauncherProviderChange();
 
     public void onSettingsChanged(String settings, boolean value);
+
+    public void onAppWidgetHostReset();
 }
diff --git a/src/com/android/launcher3/LauncherStateTransitionAnimation.java b/src/com/android/launcher3/LauncherStateTransitionAnimation.java
index a006d14..e94a2ac 100644
--- a/src/com/android/launcher3/LauncherStateTransitionAnimation.java
+++ b/src/com/android/launcher3/LauncherStateTransitionAnimation.java
@@ -129,7 +129,7 @@
     /**
      * Starts an animation to the apps view.
      */
-    public void startAnimationToAllApps(final boolean animated) {
+    public void startAnimationToAllApps(final Launcher.State fromState, final boolean animated) {
         final AllAppsContainerView toView = mLauncher.getAppsView();
         PrivateTransitionCallbacks cb = new PrivateTransitionCallbacks() {
             private int[] mAllAppsToPanelDelta;
@@ -137,7 +137,6 @@
             @Override
             public void onRevealViewVisible(View revealView, View contentView,
                     View allAppsButtonView) {
-                toView.setBackground(null);
                 // Get the y delta between the center of the page and the center of the all apps
                 // button
                 mAllAppsToPanelDelta = Utilities.getCenterDeltaInScreenSpace(revealView,
@@ -173,9 +172,9 @@
                 };
             }
         };
+        // Only animate the search bar if animating from spring loaded mode back to all apps
         startAnimationToOverlay(Workspace.State.NORMAL_HIDDEN, toView, toView.getContentView(),
-                toView.getRevealView(), animated,
-                !mLauncher.isAllAppsSearchOverridden() /* hideSearchBar */, cb);
+                toView.getRevealView(), toView.getSearchBarView(), animated, true, cb);
     }
 
     /**
@@ -188,7 +187,6 @@
             @Override
             public void onRevealViewVisible(View revealView, View contentView,
                     View allAppsButtonView) {
-                revealView.setBackground(res.getDrawable(R.drawable.quantum_panel_dark));
             }
             @Override
             public float getMaterialRevealViewFinalAlpha(View revealView) {
@@ -200,8 +198,8 @@
             }
         };
         startAnimationToOverlay(Workspace.State.OVERVIEW_HIDDEN, toView,
-                toView.getContentView(), toView.getRevealView(), animated, true /* hideSearchBar */,
-                cb);
+                toView.getContentView(), toView.getRevealView(), null, animated,
+                true /* hideSearchBar */, cb);
     }
 
     /**
@@ -217,10 +215,10 @@
         }
 
         if (fromState == Launcher.State.APPS || fromState == Launcher.State.APPS_SPRING_LOADED) {
-            startAnimationToWorkspaceFromAllApps(fromState, toWorkspaceState, toWorkspacePage,
+            startAnimationToWorkspaceFromAllApps(toWorkspaceState, toWorkspacePage,
                     animated, onCompleteRunnable);
         } else {
-            startAnimationToWorkspaceFromWidgets(fromState, toWorkspaceState, toWorkspacePage,
+            startAnimationToWorkspaceFromWidgets(toWorkspaceState, toWorkspacePage,
                     animated, onCompleteRunnable);
         }
     }
@@ -230,8 +228,9 @@
      */
     @SuppressLint("NewApi")
     private void startAnimationToOverlay(final Workspace.State toWorkspaceState, final View toView,
-             final View contentView, final View revealView, final boolean animated,
-             final boolean hideSearchBar, final PrivateTransitionCallbacks pCb) {
+             final View contentView, final View revealView, final View overlaySearchBarView,
+             final boolean animated, final boolean hideSearchBar,
+             final PrivateTransitionCallbacks pCb) {
         final Resources res = mLauncher.getResources();
         final boolean material = Utilities.isLmpOrAbove();
         final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime);
@@ -252,7 +251,7 @@
         // Create the workspace animation.
         // NOTE: this call apparently also sets the state for the workspace if !animated
         Animator workspaceAnim = mLauncher.startWorkspaceStateChangeAnimation(toWorkspaceState, -1,
-                animated, layerViews);
+                animated, overlaySearchBarView != null /* hasOverlaySearchBar */, layerViews);
 
         if (animated && initialized) {
             mStateAnimation = LauncherAnimUtils.createAnimatorSet();
@@ -297,6 +296,15 @@
             layerViews.put(revealView, BUILD_AND_SET_LAYER);
             mStateAnimation.play(panelAlphaAndDrift);
 
+            if (overlaySearchBarView != null) {
+                overlaySearchBarView.setAlpha(0f);
+                ObjectAnimator searchBarAlpha = ObjectAnimator.ofFloat(overlaySearchBarView, "alpha", 0f, 1f);
+                searchBarAlpha.setDuration(100);
+                searchBarAlpha.setInterpolator(new AccelerateInterpolator(1.5f));
+                layerViews.put(overlaySearchBarView, BUILD_AND_SET_LAYER);
+                mStateAnimation.play(searchBarAlpha);
+            }
+
             // Setup the animation for the content view
             contentView.setVisibility(View.VISIBLE);
             contentView.setAlpha(0f);
@@ -426,9 +434,8 @@
     /**
      * Starts and animation to the workspace from the apps view.
      */
-    private void startAnimationToWorkspaceFromAllApps(final Launcher.State fromState,
-              final Workspace.State toWorkspaceState, final int toWorkspacePage,
-              final boolean animated, final Runnable onCompleteRunnable) {
+    private void startAnimationToWorkspaceFromAllApps(final Workspace.State toWorkspaceState,
+            final int toWorkspacePage, final boolean animated, final Runnable onCompleteRunnable) {
         AllAppsContainerView appsView = mLauncher.getAppsView();
         PrivateTransitionCallbacks cb = new PrivateTransitionCallbacks() {
             int[] mAllAppsToPanelDelta;
@@ -479,24 +486,23 @@
                 };
             }
         };
+        // Only animate the search bar if animating to spring loaded mode from all apps
         startAnimationToWorkspaceFromOverlay(toWorkspaceState, toWorkspacePage, appsView,
-                appsView.getContentView(), appsView.getRevealView(), animated, onCompleteRunnable,
-                cb);
+                appsView.getContentView(), appsView.getRevealView(), appsView.getSearchBarView(),
+                animated, onCompleteRunnable, cb);
     }
 
     /**
      * Starts and animation to the workspace from the widgets view.
      */
-    private void startAnimationToWorkspaceFromWidgets(final Launcher.State fromState,
-              final Workspace.State toWorkspaceState, final int toWorkspacePage,
-              final boolean animated, final Runnable onCompleteRunnable) {
+    private void startAnimationToWorkspaceFromWidgets(final Workspace.State toWorkspaceState,
+              final int toWorkspacePage, final boolean animated, final Runnable onCompleteRunnable) {
         final WidgetsContainerView widgetsView = mLauncher.getWidgetsView();
         final Resources res = mLauncher.getResources();
         PrivateTransitionCallbacks cb = new PrivateTransitionCallbacks() {
             @Override
             public void onRevealViewVisible(View revealView, View contentView,
                                             View allAppsButtonView) {
-                revealView.setBackground(res.getDrawable(R.drawable.quantum_panel_dark));
             }
             @Override
             public float getMaterialRevealViewFinalYDrift(View revealView) {
@@ -518,7 +524,7 @@
             }
         };
         startAnimationToWorkspaceFromOverlay(toWorkspaceState, toWorkspacePage, widgetsView,
-                widgetsView.getContentView(), widgetsView.getRevealView(), animated,
+                widgetsView.getContentView(), widgetsView.getRevealView(), null, animated,
                 onCompleteRunnable, cb);
     }
 
@@ -527,8 +533,8 @@
      */
     private void startAnimationToWorkspaceFromOverlay(final Workspace.State toWorkspaceState,
               final int toWorkspacePage, final View fromView, final View contentView,
-              final View revealView, final boolean animated, final Runnable onCompleteRunnable,
-              final PrivateTransitionCallbacks pCb) {
+              final View revealView, final View overlaySearchBarView, final boolean animated,
+              final Runnable onCompleteRunnable, final PrivateTransitionCallbacks pCb) {
         final Resources res = mLauncher.getResources();
         final boolean material = Utilities.isLmpOrAbove();
         final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime);
@@ -549,7 +555,8 @@
         // Create the workspace animation.
         // NOTE: this call apparently also sets the state for the workspace if !animated
         Animator workspaceAnim = mLauncher.startWorkspaceStateChangeAnimation(toWorkspaceState,
-                toWorkspacePage, animated, layerViews);
+                toWorkspacePage, animated, overlaySearchBarView != null /* hasOverlaySearchBar */,
+                layerViews);
 
         if (animated && initialized) {
             mStateAnimation = LauncherAnimUtils.createAnimatorSet();
@@ -633,6 +640,16 @@
                 itemsAlpha.setInterpolator(decelerateInterpolator);
                 mStateAnimation.play(itemsAlpha);
 
+                if (overlaySearchBarView != null) {
+                    overlaySearchBarView.setAlpha(1f);
+                    ObjectAnimator searchAlpha = ObjectAnimator.ofFloat(overlaySearchBarView, "alpha", 1f, 0f);
+                    searchAlpha.setDuration(material ? 100 : 150);
+                    searchAlpha.setInterpolator(decelerateInterpolator);
+                    searchAlpha.setStartDelay(material ? 0 : itemsAlphaStagger + SINGLE_FRAME_DELAY);
+                    layerViews.put(overlaySearchBarView, BUILD_AND_SET_LAYER);
+                    mStateAnimation.play(searchAlpha);
+                }
+
                 if (material) {
                     // Animate the all apps button
                     float finalRadius = pCb.getMaterialRevealViewStartFinalRadius();
@@ -681,6 +698,9 @@
                         contentView.setTranslationY(0);
                         contentView.setAlpha(1);
                     }
+                    if (overlaySearchBarView != null) {
+                        overlaySearchBarView.setAlpha(1f);
+                    }
 
                     // This can hold unnecessary references to views.
                     mStateAnimation = null;
diff --git a/src/com/android/launcher3/LauncherTransitionable.java b/src/com/android/launcher3/LauncherTransitionable.java
index 9442abc..49af692 100644
--- a/src/com/android/launcher3/LauncherTransitionable.java
+++ b/src/com/android/launcher3/LauncherTransitionable.java
@@ -16,13 +16,10 @@
 
 package com.android.launcher3;
 
-import android.view.View;
-
 /**
  * An interface to get callbacks during a launcher transition.
  */
 public interface LauncherTransitionable {
-    View getContent();
     void onLauncherTransitionPrepare(Launcher l, boolean animated, boolean toWorkspace);
     void onLauncherTransitionStart(Launcher l, boolean animated, boolean toWorkspace);
     void onLauncherTransitionStep(Launcher l, float t);
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 4a85b44..3d00034 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -1045,7 +1045,7 @@
     public void removeViewAt(int index) {
         // XXX: We should find a better way to hook into this before the view
         // gets removed form its parent...
-        removeViewAt(index);
+        removeMarkerForView(index);
         super.removeViewAt(index);
     }
     @Override
diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java
index 6c300c5..3b06c20 100644
--- a/src/com/android/launcher3/Utilities.java
+++ b/src/com/android/launcher3/Utilities.java
@@ -99,9 +99,10 @@
         return Log.isLoggable(propertyName, Log.VERBOSE);
     }
 
-    public static boolean isAllowRotationPrefEnabled(Context context) {
+    public static boolean isAllowRotationPrefEnabled(Context context, boolean multiProcess) {
         SharedPreferences sharedPrefs = context.getSharedPreferences(
-                LauncherAppState.getSharedPreferencesKey(), Context.MODE_PRIVATE);
+                LauncherAppState.getSharedPreferencesKey(), Context.MODE_PRIVATE | (multiProcess ?
+                        Context.MODE_MULTI_PROCESS : 0));
         boolean allowRotationPref = sharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY, false);
         return sForceEnableRotation || allowRotationPref;
     }
diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java
index cfeced2..629387e 100644
--- a/src/com/android/launcher3/WidgetPreviewLoader.java
+++ b/src/com/android/launcher3/WidgetPreviewLoader.java
@@ -27,6 +27,7 @@
 import android.os.Handler;
 import android.util.Log;
 import android.util.LongSparseArray;
+
 import com.android.launcher3.compat.AppWidgetManagerCompat;
 import com.android.launcher3.compat.UserHandleCompat;
 import com.android.launcher3.compat.UserManagerCompat;
@@ -55,8 +56,10 @@
     /**
      * Weak reference objects, do not prevent their referents from being made finalizable,
      * finalized, and then reclaimed.
+     * Note: synchronized block used for this variable is expensive and the block should always
+     * be posted to a background thread.
      */
-    @Thunk Set<Bitmap> mUnusedBitmaps =
+    @Thunk final Set<Bitmap> mUnusedBitmaps =
             Collections.newSetFromMap(new WeakHashMap<Bitmap, Boolean>());
 
     private final Context mContext;
@@ -64,19 +67,20 @@
     private final UserManagerCompat mUserManager;
     private final AppWidgetManagerCompat mManager;
     private final CacheDb mDb;
-    private final InvariantDeviceProfile mDeviceProfile;
+    private final int mProfileBadgeMargin;
 
     private final MainThreadExecutor mMainThreadExecutor = new MainThreadExecutor();
     @Thunk final Handler mWorkerHandler;
 
-    public WidgetPreviewLoader(Context context, InvariantDeviceProfile inv, IconCache iconCache) {
+    public WidgetPreviewLoader(Context context, IconCache iconCache) {
         mContext = context;
         mIconCache = iconCache;
         mManager = AppWidgetManagerCompat.getInstance(context);
         mUserManager = UserManagerCompat.getInstance(context);
         mDb = new CacheDb(context);
         mWorkerHandler = new Handler(LauncherModel.getWorkerLooper());
-        mDeviceProfile = inv;
+        mProfileBadgeMargin = context.getResources()
+                .getDimensionPixelSize(R.dimen.profile_badge_margin);
     }
 
     /**
@@ -401,7 +405,7 @@
         }
 
         // Draw the scaled preview into the final bitmap
-        int x = (preview.getWidth() - previewWidth) / 2;
+        int x = (preview.getWidth() - previewWidth - mProfileBadgeMargin) / 2;
         if (widgetPreviewExists) {
             drawable.setBounds(x, 0, x + previewWidth, previewHeight);
             drawable.draw(c);
@@ -445,7 +449,8 @@
             } catch (Resources.NotFoundException e) { }
             c.setBitmap(null);
         }
-        return mManager.getBadgeBitmap(info, preview, Math.min(preview.getHeight(), previewHeight));
+        int imageHeight = Math.min(preview.getHeight(), previewHeight + mProfileBadgeMargin);
+        return mManager.getBadgeBitmap(info, preview, imageHeight);
     }
 
     private Bitmap generateShortcutPreview(
@@ -535,7 +540,7 @@
      */
     public class PreviewLoadRequest {
 
-        private final PreviewLoadTask mTask;
+        @Thunk final PreviewLoadTask mTask;
 
         public PreviewLoadRequest(PreviewLoadTask task) {
             mTask = task;
@@ -552,10 +557,15 @@
             // in the tasks's onCancelled() call, and if cancelled while the task is writing to
             // disk, it will be cancelled in the task's onPostExecute() call.
             if (mTask.mBitmapToRecycle != null) {
-                synchronized (mUnusedBitmaps) {
-                    mUnusedBitmaps.add(mTask.mBitmapToRecycle);
-                }
-                mTask.mBitmapToRecycle = null;
+                mWorkerHandler.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        synchronized (mUnusedBitmaps) {
+                            mUnusedBitmaps.add(mTask.mBitmapToRecycle);
+                        }
+                        mTask.mBitmapToRecycle = null;
+                    }
+                });
             }
         }
     }
@@ -658,14 +668,19 @@
         }
 
         @Override
-        protected void onCancelled(Bitmap preview) {
+        protected void onCancelled(final Bitmap preview) {
             // If we've cancelled while the task is running, then can return the bitmap to the
             // recycled set immediately. Otherwise, it will be recycled after the preview is written
             // to disk.
             if (preview != null) {
-                synchronized (mUnusedBitmaps) {
-                    mUnusedBitmaps.add(preview);
-                }
+                mWorkerHandler.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        synchronized (mUnusedBitmaps) {
+                            mUnusedBitmaps.add(preview);
+                        }
+                    }
+                });
             }
         }
     }
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 19195b4..76f872b 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1998,10 +1998,10 @@
      * to that new state.
      */
     public Animator setStateWithAnimation(State toState, int toPage, boolean animated,
-                                          HashMap<View, Integer> layerViews) {
+            boolean hasOverlaySearchBar, HashMap<View, Integer> layerViews) {
         // Create the animation to the new state
         Animator workspaceAnim =  mStateTransitionAnimation.getAnimationToState(getState(),
-                toState, toPage, animated, layerViews);
+                toState, toPage, animated, hasOverlaySearchBar, layerViews);
 
         // Update the current state
         mState = toState;
@@ -2100,11 +2100,6 @@
         }
     }
 
-    @Override
-    public View getContent() {
-        return this;
-    }
-
     /**
      * Returns the drawable for the given text view.
      */
diff --git a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
index e360e88..13e4a59 100644
--- a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
+++ b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
@@ -122,6 +122,52 @@
 }
 
 /**
+ * Stores the transition states for convenience.
+ */
+class TransitionStates {
+
+    // Raw states
+    final boolean oldStateIsNormal;
+    final boolean oldStateIsSpringLoaded;
+    final boolean oldStateIsNormalHidden;
+    final boolean oldStateIsOverviewHidden;
+    final boolean oldStateIsOverview;
+
+    final boolean stateIsNormal;
+    final boolean stateIsSpringLoaded;
+    final boolean stateIsNormalHidden;
+    final boolean stateIsOverviewHidden;
+    final boolean stateIsOverview;
+
+    // Convenience members
+    final boolean workspaceToAllApps;
+    final boolean overviewToAllApps;
+    final boolean allAppsToWorkspace;
+    final boolean workspaceToOverview;
+    final boolean overviewToWorkspace;
+
+    public TransitionStates(final Workspace.State fromState, final Workspace.State toState) {
+        oldStateIsNormal = (fromState == Workspace.State.NORMAL);
+        oldStateIsSpringLoaded = (fromState == Workspace.State.SPRING_LOADED);
+        oldStateIsNormalHidden = (fromState == Workspace.State.NORMAL_HIDDEN);
+        oldStateIsOverviewHidden = (fromState == Workspace.State.OVERVIEW_HIDDEN);
+        oldStateIsOverview = (fromState == Workspace.State.OVERVIEW);
+
+        stateIsNormal = (toState == Workspace.State.NORMAL);
+        stateIsSpringLoaded = (toState == Workspace.State.SPRING_LOADED);
+        stateIsNormalHidden = (toState == Workspace.State.NORMAL_HIDDEN);
+        stateIsOverviewHidden = (toState == Workspace.State.OVERVIEW_HIDDEN);
+        stateIsOverview = (toState == Workspace.State.OVERVIEW);
+
+        workspaceToOverview = (oldStateIsNormal && stateIsOverview);
+        workspaceToAllApps = (oldStateIsNormal && stateIsNormalHidden);
+        overviewToWorkspace = (oldStateIsOverview && stateIsNormal);
+        overviewToAllApps = (oldStateIsOverview && stateIsOverviewHidden);
+        allAppsToWorkspace = (stateIsNormalHidden && stateIsNormal);
+    }
+}
+
+/**
  * Manages the animations between each of the workspace states.
  */
 public class WorkspaceStateTransitionAnimation {
@@ -175,9 +221,17 @@
     }
 
     public AnimatorSet getAnimationToState(Workspace.State fromState, Workspace.State toState,
-                                           int toPage, boolean animated,
-                                           HashMap<View, Integer> layerViews) {
-        getAnimation(fromState, toState, toPage, animated, layerViews);
+            int toPage, boolean animated, boolean hasOverlaySearchBar,
+            HashMap<View, Integer> layerViews) {
+        AccessibilityManager am = (AccessibilityManager)
+                mLauncher.getSystemService(Context.ACCESSIBILITY_SERVICE);
+        final boolean accessibilityEnabled = am.isEnabled();
+        TransitionStates states = new TransitionStates(fromState, toState);
+        int duration = getAnimationDuration(states);
+        animateWorkspace(states, toPage, animated, duration, layerViews,
+                accessibilityEnabled);
+        animateSearchBar(states, animated, duration, hasOverlaySearchBar, layerViews,
+                accessibilityEnabled);
         return mStateAnimator;
     }
 
@@ -186,15 +240,37 @@
     }
 
     /**
+     * Reinitializes the arrays that we need for the animations on each page.
+     */
+    private void reinitializeAnimationArrays() {
+        final int childCount = mWorkspace.getChildCount();
+        if (mLastChildCount == childCount) return;
+
+        mOldBackgroundAlphas = new float[childCount];
+        mOldAlphas = new float[childCount];
+        mNewBackgroundAlphas = new float[childCount];
+        mNewAlphas = new float[childCount];
+    }
+
+    /**
+     * Returns the proper animation duration for a transition.
+     */
+    private int getAnimationDuration(TransitionStates states) {
+        if (states.workspaceToAllApps || states.overviewToAllApps) {
+            return mAllAppsTransitionTime;
+        } else if (states.workspaceToOverview || states.overviewToWorkspace) {
+            return mOverviewTransitionTime;
+        } else {
+            return mOverlayTransitionTime;
+        }
+    }
+
+    /**
      * Starts a transition animation for the workspace.
      */
-    private void getAnimation(final Workspace.State fromState, final Workspace.State toState,
-                              int toPage, final boolean animated,
-                              final HashMap<View, Integer> layerViews) {
-        AccessibilityManager am = (AccessibilityManager)
-                mLauncher.getSystemService(Context.ACCESSIBILITY_SERVICE);
-        final boolean accessibilityEnabled = am.isEnabled();
-
+    private void animateWorkspace(final TransitionStates states, int toPage, final boolean animated,
+                                  final int duration, final HashMap<View, Integer> layerViews,
+                                  final boolean accessibilityEnabled) {
         // Reinitialize animation arrays for the current workspace state
         reinitializeAnimationArrays();
 
@@ -205,32 +281,12 @@
         }
 
         // Update the workspace state
-        final boolean oldStateIsNormal = (fromState == Workspace.State.NORMAL);
-        final boolean oldStateIsSpringLoaded = (fromState == Workspace.State.SPRING_LOADED);
-        final boolean oldStateIsNormalHidden = (fromState == Workspace.State.NORMAL_HIDDEN);
-        final boolean oldStateIsOverviewHidden = (fromState == Workspace.State.OVERVIEW_HIDDEN);
-        final boolean oldStateIsOverview = (fromState == Workspace.State.OVERVIEW);
-
-        final boolean stateIsNormal = (toState == Workspace.State.NORMAL);
-        final boolean stateIsSpringLoaded = (toState == Workspace.State.SPRING_LOADED);
-        final boolean stateIsNormalHidden = (toState == Workspace.State.NORMAL_HIDDEN);
-        final boolean stateIsOverviewHidden = (toState == Workspace.State.OVERVIEW_HIDDEN);
-        final boolean stateIsOverview = (toState == Workspace.State.OVERVIEW);
-
-        final boolean workspaceToAllApps = (oldStateIsNormal && stateIsNormalHidden);
-        final boolean overviewToAllApps = (oldStateIsOverview && stateIsOverviewHidden);
-        final boolean allAppsToWorkspace = (stateIsNormalHidden && stateIsNormal);
-        final boolean workspaceToOverview = (oldStateIsNormal && stateIsOverview);
-        final boolean overviewToWorkspace = (oldStateIsOverview && stateIsNormal);
-
-        float finalBackgroundAlpha = (stateIsSpringLoaded || stateIsOverview) ? 1.0f : 0f;
-        float finalHotseatAndPageIndicatorAlpha = (stateIsNormal || stateIsSpringLoaded) ? 1f : 0f;
-        float finalOverviewPanelAlpha = stateIsOverview ? 1f : 0f;
-        // We keep the search bar visible on the workspace and in AllApps now
-        boolean showSearchBar = stateIsNormal ||
-                (mLauncher.isAllAppsSearchOverridden() && stateIsNormalHidden);
-        float finalSearchBarAlpha = showSearchBar ? 1f : 0f;
-        float finalWorkspaceTranslationY = stateIsOverview || stateIsOverviewHidden ?
+        float finalBackgroundAlpha = (states.stateIsSpringLoaded || states.stateIsOverview) ?
+                1.0f : 0f;
+        float finalHotseatAndPageIndicatorAlpha = (states.stateIsNormal || states.stateIsSpringLoaded) ?
+                1f : 0f;
+        float finalOverviewPanelAlpha = states.stateIsOverview ? 1f : 0f;
+        float finalWorkspaceTranslationY = states.stateIsOverview || states.stateIsOverviewHidden ?
                 mWorkspace.getOverviewModeTranslationY() : 0;
 
         final int childCount = mWorkspace.getChildCount();
@@ -238,29 +294,20 @@
 
         mNewScale = 1.0f;
 
-        if (oldStateIsOverview) {
+        if (states.oldStateIsOverview) {
             mWorkspace.disableFreeScroll();
-        } else if (stateIsOverview) {
+        } else if (states.stateIsOverview) {
             mWorkspace.enableFreeScroll();
         }
 
-        if (!stateIsNormal) {
-            if (stateIsSpringLoaded) {
+        if (!states.stateIsNormal) {
+            if (states.stateIsSpringLoaded) {
                 mNewScale = mSpringLoadedShrinkFactor;
-            } else if (stateIsOverview || stateIsOverviewHidden) {
+            } else if (states.stateIsOverview || states.stateIsOverviewHidden) {
                 mNewScale = mOverviewModeShrinkFactor;
             }
         }
 
-        final int duration;
-        if (workspaceToAllApps || overviewToAllApps) {
-            duration = mAllAppsTransitionTime;
-        } else if (workspaceToOverview || overviewToWorkspace) {
-            duration = mOverviewTransitionTime;
-        } else {
-            duration = mOverlayTransitionTime;
-        }
-
         if (toPage == SCROLL_TO_CURRENT_PAGE) {
             toPage = mWorkspace.getPageNearestToCenterOfScreen();
         }
@@ -271,9 +318,9 @@
             boolean isCurrentPage = (i == toPage);
             float initialAlpha = cl.getShortcutsAndWidgets().getAlpha();
             float finalAlpha;
-            if (stateIsNormalHidden || stateIsOverviewHidden) {
+            if (states.stateIsNormalHidden || states.stateIsOverviewHidden) {
                 finalAlpha = 0f;
-            } else if (stateIsNormal && mWorkspaceFadeInAdjacentScreens) {
+            } else if (states.stateIsNormal && mWorkspaceFadeInAdjacentScreens) {
                 finalAlpha = (i == toPage || i < customPageCount) ? 1f : 0f;
             } else {
                 finalAlpha = 1f;
@@ -282,8 +329,8 @@
             // If we are animating to/from the small state, then hide the side pages and fade the
             // current page in
             if (!mWorkspace.isSwitchingState()) {
-                if (workspaceToAllApps || allAppsToWorkspace) {
-                    if (allAppsToWorkspace && isCurrentPage) {
+                if (states.workspaceToAllApps || states.allAppsToWorkspace) {
+                    if (states.allAppsToWorkspace && isCurrentPage) {
                         initialAlpha = 0f;
                     } else if (!isCurrentPage) {
                         initialAlpha = finalAlpha = 0f;
@@ -303,7 +350,6 @@
             }
         }
 
-        final View searchBar = mLauncher.getOrCreateQsbBar();
         final ViewGroup overviewPanel = mLauncher.getOverviewPanel();
         final View hotseat = mLauncher.getHotseat();
         final View pageIndicator = mWorkspace.getPageIndicator();
@@ -345,7 +391,7 @@
                     }
                 }
             }
-            Animator pageIndicatorAlpha = null;
+            Animator pageIndicatorAlpha;
             if (pageIndicator != null) {
                 pageIndicatorAlpha = new LauncherViewPropertyAnimator(pageIndicator)
                         .alpha(finalHotseatAndPageIndicatorAlpha).withLayer();
@@ -380,11 +426,11 @@
                 overviewPanelAlpha.withLayer();
             }
 
-            if (workspaceToOverview) {
+            if (states.workspaceToOverview) {
                 pageIndicatorAlpha.setInterpolator(new DecelerateInterpolator(2));
                 hotseatAlpha.setInterpolator(new DecelerateInterpolator(2));
                 overviewPanelAlpha.setInterpolator(null);
-            } else if (overviewToWorkspace) {
+            } else if (states.overviewToWorkspace) {
                 pageIndicatorAlpha.setInterpolator(null);
                 hotseatAlpha.setInterpolator(null);
                 overviewPanelAlpha.setInterpolator(new DecelerateInterpolator(2));
@@ -394,26 +440,6 @@
             pageIndicatorAlpha.setDuration(duration);
             hotseatAlpha.setDuration(duration);
 
-            // TODO: This should really be coordinated with the SearchDropTargetBar, otherwise the
-            //       bar has no idea that it is hidden, and this has no idea what state the bar is
-            //       actually in.
-            if (searchBar != null) {
-                LauncherViewPropertyAnimator searchBarAlpha = new LauncherViewPropertyAnimator(searchBar)
-                    .alpha(finalSearchBarAlpha);
-                searchBarAlpha.addListener(new AlphaUpdateListener(searchBar, accessibilityEnabled));
-                searchBar.setLayerType(View.LAYER_TYPE_HARDWARE, null);
-                if (layerViews != null) {
-                    // If layerViews is not null, we add these views, and indicate that
-                    // the caller can manage layer state.
-                    layerViews.put(searchBar, LauncherStateTransitionAnimation.BUILD_AND_SET_LAYER);
-                } else {
-                    // Otherwise let the animator handle layer management.
-                    searchBarAlpha.withLayer();
-                }
-                searchBarAlpha.setDuration(duration);
-                mStateAnimator.play(searchBarAlpha);
-            }
-
             mStateAnimator.play(overviewPanelAlpha);
             mStateAnimator.play(hotseatAlpha);
             mStateAnimator.play(pageIndicatorAlpha);
@@ -437,10 +463,6 @@
                 pageIndicator.setAlpha(finalHotseatAndPageIndicatorAlpha);
                 AlphaUpdateListener.updateVisibility(pageIndicator, accessibilityEnabled);
             }
-            if (searchBar != null) {
-                searchBar.setAlpha(finalSearchBarAlpha);
-                AlphaUpdateListener.updateVisibility(searchBar, accessibilityEnabled);
-            }
             mWorkspace.updateCustomContentVisibility();
             mWorkspace.setScaleX(mNewScale);
             mWorkspace.setScaleY(mNewScale);
@@ -452,7 +474,7 @@
             }
         }
 
-        if (stateIsNormal) {
+        if (states.stateIsNormal) {
             animateBackgroundGradient(0f, animated);
         } else {
             animateBackgroundGradient(mWorkspaceScrimAlpha, animated);
@@ -460,16 +482,69 @@
     }
 
     /**
-     * Reinitializes the arrays that we need for the animations on each page.
+     * Coordinates with the workspace animation to animate the search bar.
+     *
+     * TODO: This should really be coordinated with the SearchDropTargetBar, otherwise the
+     *       bar has no idea that it is hidden, and this has no idea what state the bar is
+     *       actually in.
      */
-    private void reinitializeAnimationArrays() {
-        final int childCount = mWorkspace.getChildCount();
-        if (mLastChildCount == childCount) return;
+    private void animateSearchBar(TransitionStates states, boolean animated, int duration,
+            boolean hasOverlaySearchBar, final HashMap<View, Integer> layerViews,
+            final boolean accessibilityEnabled) {
 
-        mOldBackgroundAlphas = new float[childCount];
-        mOldAlphas = new float[childCount];
-        mNewBackgroundAlphas = new float[childCount];
-        mNewAlphas = new float[childCount];
+        // The search bar is only visible in the workspace
+        final View searchBar = mLauncher.getOrCreateQsbBar();
+        if (searchBar != null) {
+            final boolean searchBarWillBeShown = states.stateIsNormal;
+            final float finalSearchBarAlpha = searchBarWillBeShown ? 1f : 0f;
+            if (animated) {
+                if (hasOverlaySearchBar) {
+                    // If there is an overlay search bar, then we will coordinate with it.
+                    mStateAnimator.addListener(new AnimatorListenerAdapter() {
+                        @Override
+                        public void onAnimationStart(Animator animation) {
+                            // If we are transitioning to a visible search bar, show it immediately
+                            // and let the overlay search bar has faded out
+                            if (searchBarWillBeShown) {
+                                searchBar.setAlpha(finalSearchBarAlpha);
+                                AlphaUpdateListener.updateVisibility(searchBar, accessibilityEnabled);
+                            }
+                        }
+
+                        @Override
+                        public void onAnimationEnd(Animator animation) {
+                            // If we are transitioning to a hidden search bar, hide it only after
+                            // the overlay search bar has faded in
+                            if (!searchBarWillBeShown) {
+                                searchBar.setAlpha(finalSearchBarAlpha);
+                                AlphaUpdateListener.updateVisibility(searchBar, accessibilityEnabled);
+                            }
+                        }
+                    });
+                } else {
+                    // Otherwise, we can just do the normal animation
+                    LauncherViewPropertyAnimator searchBarAlpha =
+                            new LauncherViewPropertyAnimator(searchBar).alpha(finalSearchBarAlpha);
+                    searchBarAlpha.addListener(new AlphaUpdateListener(searchBar,
+                            accessibilityEnabled));
+                    searchBar.setLayerType(View.LAYER_TYPE_HARDWARE, null);
+                    if (layerViews != null) {
+                        // If layerViews is not null, we add these views, and indicate that
+                        // the caller can manage layer state.
+                        layerViews.put(searchBar, LauncherStateTransitionAnimation.BUILD_AND_SET_LAYER);
+                    } else {
+                        // Otherwise let the animator handle layer management.
+                        searchBarAlpha.withLayer();
+                    }
+                    searchBarAlpha.setDuration(duration);
+                    mStateAnimator.play(searchBarAlpha);
+                }
+            } else {
+                // Set the search bar state immediately
+                searchBar.setAlpha(finalSearchBarAlpha);
+                AlphaUpdateListener.updateVisibility(searchBar, accessibilityEnabled);
+            }
+        }
     }
 
     /**
diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java
index 855a443..0fbe8e9 100644
--- a/src/com/android/launcher3/allapps/AllAppsContainerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java
@@ -20,17 +20,15 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.res.Resources;
-import android.graphics.Paint;
 import android.graphics.Point;
 import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.GradientDrawable;
 import android.graphics.drawable.InsetDrawable;
 import android.os.Build;
 import android.os.Bundle;
 import android.support.v7.widget.RecyclerView;
-import android.text.Editable;
-import android.text.TextWatcher;
+import android.text.Selection;
+import android.text.SpannableStringBuilder;
+import android.text.method.TextKeyListener;
 import android.util.AttributeSet;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
@@ -39,10 +37,8 @@
 import android.view.ViewConfiguration;
 import android.view.ViewGroup;
 import android.view.ViewTreeObserver;
-import android.view.inputmethod.EditorInfo;
-import android.view.inputmethod.InputMethodManager;
 import android.widget.FrameLayout;
-import android.widget.TextView;
+import android.widget.LinearLayout;
 
 import com.android.launcher3.AppInfo;
 import com.android.launcher3.BaseContainerView;
@@ -54,7 +50,6 @@
 import com.android.launcher3.DragSource;
 import com.android.launcher3.DropTarget;
 import com.android.launcher3.Folder;
-import com.android.launcher3.Insettable;
 import com.android.launcher3.ItemInfo;
 import com.android.launcher3.Launcher;
 import com.android.launcher3.LauncherTransitionable;
@@ -62,130 +57,84 @@
 import com.android.launcher3.Stats;
 import com.android.launcher3.Utilities;
 import com.android.launcher3.Workspace;
-import com.android.launcher3.allapps.AppSearchManager.AppSearchResultCallback;
+import com.android.launcher3.util.ComponentKey;
 import com.android.launcher3.util.Thunk;
 
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetEncoder;
 import java.util.ArrayList;
 import java.util.List;
 
 
-/**
- * Interface for controlling the header elevation in response to RecyclerView scroll.
- */
-interface HeaderElevationController {
-    void onScroll(int scrollY);
-    void updateBackgroundPadding(Drawable bg);
-    void disable();
-}
 
 /**
- * Implementation of the header elevation mechanism for pre-L devices.  It simulates elevation
- * by drawing a gradient under the header bar.
+ * A merge algorithm that merges every section indiscriminately.
  */
-final class HeaderElevationControllerV16 implements HeaderElevationController {
-
-    private final View mShadow;
-    private final float mScrollToElevation;
-    private final Rect mTmpRect = new Rect();
-
-    public HeaderElevationControllerV16(View header) {
-        Resources res = header.getContext().getResources();
-        mScrollToElevation = res.getDimension(R.dimen.all_apps_header_scroll_to_elevation);
-
-        mShadow = new View(header.getContext());
-        mShadow.setBackground(new GradientDrawable(
-                GradientDrawable.Orientation.TOP_BOTTOM, new int[] {0x44000000, 0x00000000}));
-        mShadow.setAlpha(0);
-
-        FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
-                FrameLayout.LayoutParams.MATCH_PARENT,
-                res.getDimensionPixelSize(R.dimen.all_apps_header_shadow_height));
-        lp.topMargin = ((FrameLayout.LayoutParams) header.getLayoutParams()).height;
-
-        ((ViewGroup) header.getParent()).addView(mShadow, lp);
-    }
+final class FullMergeAlgorithm implements AlphabeticalAppsList.MergeAlgorithm {
 
     @Override
-    public void onScroll(int scrollY) {
-        float elevationPct = (float) Math.min(scrollY, mScrollToElevation) /
-                mScrollToElevation;
-        mShadow.setAlpha(elevationPct);
-    }
-
-    @Override
-    public void updateBackgroundPadding(Drawable bg) {
-        bg.getPadding(mTmpRect);
-        FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mShadow.getLayoutParams();
-        lp.leftMargin = mTmpRect.left;
-        lp.rightMargin = mTmpRect.right;
-        mShadow.requestLayout();
-    }
-
-    @Override
-    public void disable() {
-        ViewGroup parent = (ViewGroup) mShadow.getParent();
-        if (parent != null) {
-            parent.removeView(mShadow);
-        }
+    public boolean continueMerging(AlphabeticalAppsList.SectionInfo section,
+           AlphabeticalAppsList.SectionInfo withSection,
+           int sectionAppCount, int numAppsPerRow, int mergeCount) {
+        // Merge EVERYTHING
+        return true;
     }
 }
 
 /**
- * Implementation of the header elevation mechanism for L+ devices, which makes use of the native
- * view elevation.
+ * The logic we use to merge multiple sections.  We only merge sections when their final row
+ * contains less than a certain number of icons, and stop at a specified max number of merges.
+ * In addition, we will try and not merge sections that identify apps from different scripts.
  */
-@TargetApi(Build.VERSION_CODES.LOLLIPOP)
-final class HeaderElevationControllerVL implements HeaderElevationController {
+final class SimpleSectionMergeAlgorithm implements AlphabeticalAppsList.MergeAlgorithm {
 
-    private final View mHeader;
-    private final float mMaxElevation;
-    private final float mScrollToElevation;
+    private int mMinAppsPerRow;
+    private int mMinRowsInMergedSection;
+    private int mMaxAllowableMerges;
+    private CharsetEncoder mAsciiEncoder;
 
-    public HeaderElevationControllerVL(View header) {
-        mHeader = header;
-
-        Resources res = header.getContext().getResources();
-        mMaxElevation = res.getDimension(R.dimen.all_apps_header_max_elevation);
-        mScrollToElevation = res.getDimension(R.dimen.all_apps_header_scroll_to_elevation);
+    public SimpleSectionMergeAlgorithm(int minAppsPerRow, int minRowsInMergedSection, int maxNumMerges) {
+        mMinAppsPerRow = minAppsPerRow;
+        mMinRowsInMergedSection = minRowsInMergedSection;
+        mMaxAllowableMerges = maxNumMerges;
+        mAsciiEncoder = Charset.forName("US-ASCII").newEncoder();
     }
 
     @Override
-    public void onScroll(int scrollY) {
-        float elevationPct = (float) Math.min(scrollY, mScrollToElevation) /
-                mScrollToElevation;
-        float newElevation = mMaxElevation * elevationPct;
-        if (Float.compare(mHeader.getElevation(), newElevation) != 0) {
-            mHeader.setElevation(newElevation);
+    public boolean continueMerging(AlphabeticalAppsList.SectionInfo section,
+           AlphabeticalAppsList.SectionInfo withSection,
+           int sectionAppCount, int numAppsPerRow, int mergeCount) {
+        // Continue merging if the number of hanging apps on the final row is less than some
+        // fixed number (ragged), the merged rows has yet to exceed some minimum row count,
+        // and while the number of merged sections is less than some fixed number of merges
+        int rows = sectionAppCount / numAppsPerRow;
+        int cols = sectionAppCount % numAppsPerRow;
+
+        // Ensure that we do not merge across scripts, currently we only allow for english and
+        // native scripts so we can test if both can just be ascii encoded
+        boolean isCrossScript = false;
+        if (section.firstAppItem != null && withSection.firstAppItem != null) {
+            isCrossScript = mAsciiEncoder.canEncode(section.firstAppItem.sectionName) !=
+                    mAsciiEncoder.canEncode(withSection.firstAppItem.sectionName);
         }
+        return (0 < cols && cols < mMinAppsPerRow) &&
+                rows < mMinRowsInMergedSection &&
+                mergeCount < mMaxAllowableMerges &&
+                !isCrossScript;
     }
-
-    @Override
-    public void updateBackgroundPadding(Drawable bg) {
-        // Do nothing, the background padding on the header view is already applied
-    }
-
-    @Override
-    public void disable() { }
 }
 
 /**
  * The all apps view container.
  */
-public class AllAppsContainerView extends BaseContainerView implements DragSource, Insettable,
-        TextWatcher, TextView.OnEditorActionListener, LauncherTransitionable,
-        AlphabeticalAppsList.AdapterChangedCallback, AllAppsGridAdapter.PredictionBarSpacerCallbacks,
-        View.OnTouchListener, View.OnClickListener, View.OnLongClickListener,
-        ViewTreeObserver.OnPreDrawListener, AppSearchResultCallback, Stats.LaunchSourceProvider {
+public class AllAppsContainerView extends BaseContainerView implements DragSource,
+        LauncherTransitionable, AlphabeticalAppsList.AdapterChangedCallback,
+        AllAppsGridAdapter.PredictionBarSpacerCallbacks, View.OnTouchListener,
+        View.OnLongClickListener, ViewTreeObserver.OnPreDrawListener,
+        AllAppsSearchBarController.Callbacks, Stats.LaunchSourceProvider {
 
-    public static final boolean GRID_MERGE_SECTIONS = true;
-
-    private static final boolean ALLOW_SINGLE_APP_LAUNCH = true;
-    private static final boolean DYNAMIC_HEADER_ELEVATION = true;
-    private static final boolean DISMISS_SEARCH_ON_BACK = true;
-
-    private static final int FADE_IN_DURATION = 175;
-    private static final int FADE_OUT_DURATION = 100;
-    private static final int SEARCH_TRANSLATION_X_DP = 18;
+    private static final int MIN_ROWS_IN_MERGED_SECTION_PHONE = 3;
+    private static final int MAX_NUM_MERGES_PHONE = 2;
 
     @Thunk Launcher mLauncher;
     @Thunk AlphabeticalAppsList mApps;
@@ -194,17 +143,16 @@
     private RecyclerView.LayoutManager mLayoutManager;
     private RecyclerView.ItemDecoration mItemDecoration;
 
-    @Thunk FrameLayout mContentView;
+    @Thunk View mContent;
+    @Thunk View mContainerView;
+    @Thunk View mRevealView;
     @Thunk AllAppsRecyclerView mAppsRecyclerView;
     @Thunk ViewGroup mPredictionBarView;
-    private View mHeaderView;
-    @Thunk View mSearchBarContainerView;
-    private View mSearchButtonView;
-    private View mDismissSearchButtonView;
-    @Thunk AllAppsSearchEditView mSearchBarEditView;
+    @Thunk AllAppsSearchBarController mSearchBarController;
+    private ViewGroup mSearchBarContainerView;
+    private View mSearchBarView;
 
-    private HeaderElevationController mElevationController;
-
+    private int mSectionNamesMargin;
     private int mNumAppsPerRow;
     private int mNumPredictedAppsPerRow;
     // This coordinate is relative to this container view
@@ -213,18 +161,16 @@
     private final Point mIconLastTouchPos = new Point();
     // This coordinate is used to proxy click and long-click events to the prediction bar icons
     private final Point mPredictionIconTouchDownPos = new Point();
-    private int mContentMarginStart;
     // Normal container insets
-    private int mContainerInset;
     private int mPredictionBarHeight;
     private int mLastRecyclerViewScrollPos = -1;
     @Thunk boolean mFocusPredictionBarOnFirstBind;
 
+    private SpannableStringBuilder mSearchQueryBuilder = null;
+
     private CheckLongPressHelper mPredictionIconCheckForLongPress;
     private View mPredictionIconUnderTouch;
 
-    private AppSearchManager mSearchManager;
-
     public AllAppsContainerView(Context context) {
         this(context, null);
     }
@@ -238,30 +184,24 @@
         Resources res = context.getResources();
 
         mLauncher = (Launcher) context;
+        mLayoutInflater = LayoutInflater.from(context);
         DeviceProfile grid = mLauncher.getDeviceProfile();
-
-        mContainerInset = res.getDimensionPixelSize(R.dimen.all_apps_container_inset);
         mPredictionBarHeight = (int) (grid.allAppsIconSizePx + grid.iconDrawablePaddingOriginalPx +
                 Utilities.calculateTextHeight(grid.allAppsIconTextSizePx) +
                 2 * res.getDimensionPixelSize(R.dimen.all_apps_icon_top_bottom_padding) +
-                res.getDimensionPixelSize(R.dimen.all_apps_prediction_bar_bottom_padding));
-
-        mLayoutInflater = LayoutInflater.from(context);
-
-        mNumAppsPerRow = grid.allAppsNumCols;
-        mNumPredictedAppsPerRow = grid.allAppsNumPredictiveCols;
-        mApps = new AlphabeticalAppsList(context, mNumAppsPerRow, mNumPredictedAppsPerRow);
+                2 * res.getDimensionPixelSize(R.dimen.all_apps_prediction_bar_top_bottom_padding));
+        mSectionNamesMargin = res.getDimensionPixelSize(R.dimen.all_apps_grid_view_start_margin);
+        mApps = new AlphabeticalAppsList(context);
         mApps.setAdapterChangedCallback(this);
-        mAdapter = new AllAppsGridAdapter(context, mApps, mNumAppsPerRow, this, this, mLauncher, this);
+        mAdapter = new AllAppsGridAdapter(context, mApps, this, this, mLauncher, this);
         mAdapter.setEmptySearchText(res.getString(R.string.all_apps_loading_message));
-        mAdapter.setNumAppsPerRow(mNumAppsPerRow);
         mAdapter.setPredictionRowHeight(mPredictionBarHeight);
+        mApps.setAdapter(mAdapter);
         mLayoutManager = mAdapter.getLayoutManager();
         mItemDecoration = mAdapter.getItemDecoration();
-        mContentMarginStart = mAdapter.getContentMarginStart();
 
-        mApps.setAdapter(mAdapter);
-        mSearchManager = mApps.newSimpleAppSearchManager();
+        mSearchQueryBuilder = new SpannableStringBuilder();
+        Selection.setSelection(mSearchQueryBuilder, 0);
     }
 
     /**
@@ -285,11 +225,6 @@
         mApps.addApps(apps);
     }
 
-    public void setSearchManager(AppSearchManager searchManager) {
-        mSearchManager.cancel(true);
-        mSearchManager = searchManager;
-    }
-
     /**
      * Updates existing apps in the list
      */
@@ -305,13 +240,23 @@
     }
 
     /**
-     * Hides the header bar
+     * Sets the search bar that shows above the a-z list.
      */
-    public void hideHeaderBar() {
-        mHeaderView.setVisibility(View.GONE);
-        mElevationController.disable();
-        onUpdateBackgrounds();
-        onUpdatePaddings();
+    public void setSearchBarController(AllAppsSearchBarController searchController) {
+        if (mSearchBarController != null) {
+            throw new RuntimeException("Expected search bar controller to only be set once");
+        }
+        mSearchBarController = searchController;
+        mSearchBarController.initialize(mApps, this);
+
+        // Add the new search view to the layout
+        View searchBarView = searchController.getView(mSearchBarContainerView);
+        mSearchBarContainerView.addView(searchBarView);
+        mSearchBarContainerView.setVisibility(View.VISIBLE);
+        mSearchBarView = searchBarView;
+        setHasSearchBar();
+
+        updateBackgroundAndPaddings();
     }
 
     /**
@@ -325,28 +270,43 @@
      * Returns the content view used for the launcher transitions.
      */
     public View getContentView() {
-        return mContentView;
+        return mContainerView;
+    }
+
+    /**
+     * Returns the all apps search view.
+     */
+    public View getSearchBarView() {
+        return mSearchBarView;
     }
 
     /**
      * Returns the reveal view used for the launcher transitions.
      */
     public View getRevealView() {
-        return findViewById(R.id.apps_view_transition_overlay);
+        return mRevealView;
+    }
+
+    /**
+     * Returns an new instance of the default app search controller.
+     */
+    public AllAppsSearchBarController newDefaultAppSearchController() {
+        return new DefaultAppSearchController(getContext(), this, mAppsRecyclerView);
     }
 
     @Override
     protected void onFinishInflate() {
+        super.onFinishInflate();
         boolean isRtl = Utilities.isRtl(getResources());
         mAdapter.setRtl(isRtl);
+        mContent = findViewById(R.id.content);
 
-        // Work around the search box getting first focus and showing the cursor by
-        // proxying the focus from the content view to the recycler view directly
-        mContentView = (FrameLayout) findViewById(R.id.apps_list);
-        mContentView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+        // This is a focus listener that proxies focus from a view into the list view.  This is to
+        // work around the search box from getting first focus and showing the cursor.
+        View.OnFocusChangeListener focusProxyListener = new View.OnFocusChangeListener() {
             @Override
             public void onFocusChange(View v, boolean hasFocus) {
-                if (v == mContentView && hasFocus) {
+                if (hasFocus) {
                     if (!mApps.getPredictedApps().isEmpty()) {
                         // If the prediction bar is going to be bound, then defer focusing until
                         // it is first bound
@@ -360,52 +320,16 @@
                     }
                 }
             }
-        });
+        };
+        mSearchBarContainerView = (ViewGroup) findViewById(R.id.search_box_container);
+        mSearchBarContainerView.setOnFocusChangeListener(focusProxyListener);
+        mContainerView = findViewById(R.id.all_apps_container);
+        mContainerView.setOnFocusChangeListener(focusProxyListener);
+        mRevealView = findViewById(R.id.all_apps_reveal);
 
-        // Fix the header view elevation if not dynamically calculating it
-        mHeaderView = findViewById(R.id.header);
-        mHeaderView.setOnClickListener(this);
-
-        mElevationController = Utilities.isLmpOrAbove() ?
-                new HeaderElevationControllerVL(mHeaderView) :
-                    new HeaderElevationControllerV16(mHeaderView);
-        if (!DYNAMIC_HEADER_ELEVATION) {
-            mElevationController.onScroll(getResources()
-                    .getDimensionPixelSize(R.dimen.all_apps_header_scroll_to_elevation));
-        }
-
-        // Fix the prediction bar size
-        mPredictionBarView = (ViewGroup) findViewById(R.id.prediction_bar);
-        FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mPredictionBarView.getLayoutParams();
-        lp.height = mPredictionBarHeight;
-
-        mSearchButtonView = mHeaderView.findViewById(R.id.search_button);
-        mSearchBarContainerView = findViewById(R.id.app_search_container);
-        mDismissSearchButtonView = mSearchBarContainerView.findViewById(R.id.dismiss_search_button);
-        mDismissSearchButtonView.setOnClickListener(this);
-        mSearchBarEditView = (AllAppsSearchEditView) findViewById(R.id.apps_search_box);
-        if (mSearchBarEditView != null) {
-            mSearchBarEditView.addTextChangedListener(this);
-            mSearchBarEditView.setOnEditorActionListener(this);
-            if (DISMISS_SEARCH_ON_BACK) {
-                mSearchBarEditView.setOnBackKeyListener(
-                        new AllAppsSearchEditView.OnBackKeyListener() {
-                            @Override
-                            public void onBackKey() {
-                                // Only hide the search field if there is no query, or if there
-                                // are no filtered results
-                                String query = Utilities.trim(
-                                        mSearchBarEditView.getEditableText().toString());
-                                if (query.isEmpty() || mApps.hasNoFilteredResults()) {
-                                    hideSearchField(true, true);
-                                }
-                            }
-                        });
-            }
-        }
-        mAppsRecyclerView = (AllAppsRecyclerView) findViewById(R.id.apps_list_view);
+        // Load the all apps recycler view
+        mAppsRecyclerView = (AllAppsRecyclerView) findViewById(R.id.collection);
         mAppsRecyclerView.setApps(mApps);
-        mAppsRecyclerView.setNumAppsPerRow(mNumAppsPerRow, mNumPredictedAppsPerRow);
         mAppsRecyclerView.setPredictionBarHeight(mPredictionBarHeight);
         mAppsRecyclerView.setLayoutManager(mLayoutManager);
         mAppsRecyclerView.setAdapter(mAdapter);
@@ -413,8 +337,18 @@
         if (mItemDecoration != null) {
             mAppsRecyclerView.addItemDecoration(mItemDecoration);
         }
-        onUpdateBackgrounds();
-        onUpdatePaddings();
+
+        // Fix the prediction bar height
+        mPredictionBarView = (ViewGroup) findViewById(R.id.prediction_bar);
+        FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mPredictionBarView.getLayoutParams();
+        lp.height = mPredictionBarHeight;
+
+        updateBackgroundAndPaddings();
+    }
+
+    @Override
+    public void onBoundsChanged(Rect newBounds) {
+        mLauncher.updateOverlayBounds(newBounds);
     }
 
     @Override
@@ -422,6 +356,12 @@
         updatePredictionBarVisibility();
 
         List<AppInfo> predictedApps = mApps.getPredictedApps();
+
+        // Remove extra prediction icons
+        while (mPredictionBarView.getChildCount() > mNumPredictedAppsPerRow) {
+            mPredictionBarView.removeViewAt(mPredictionBarView.getChildCount() - 1);
+        }
+
         int childCount = mPredictionBarView.getChildCount();
         for (int i = 0; i < mNumPredictedAppsPerRow; i++) {
             BubbleTextView icon;
@@ -455,98 +395,121 @@
     }
 
     @Override
-    protected void onFixedBoundsUpdated() {
-        // Update the number of items in the grid
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        // Update the number of items in the grid before we measure the view
+        int availableWidth = !mContentBounds.isEmpty() ? mContentBounds.width() :
+                MeasureSpec.getSize(widthMeasureSpec);
         DeviceProfile grid = mLauncher.getDeviceProfile();
-        if (grid.updateAppsViewNumCols(getContext().getResources(), mFixedBounds.width())) {
+        grid.updateAppsViewNumCols(getResources(), availableWidth);
+        if (mNumAppsPerRow != grid.allAppsNumCols ||
+                mNumPredictedAppsPerRow != grid.allAppsNumPredictiveCols) {
             mNumAppsPerRow = grid.allAppsNumCols;
             mNumPredictedAppsPerRow = grid.allAppsNumPredictiveCols;
+
+            // If there is a start margin to draw section names, determine how we are going to merge
+            // app sections
+            boolean mergeSectionsFully = mSectionNamesMargin == 0 || !grid.isPhone;
+            AlphabeticalAppsList.MergeAlgorithm mergeAlgorithm = mergeSectionsFully ?
+                    new FullMergeAlgorithm() :
+                    new SimpleSectionMergeAlgorithm((int) Math.ceil(mNumAppsPerRow / 2f),
+                            MIN_ROWS_IN_MERGED_SECTION_PHONE, MAX_NUM_MERGES_PHONE);
+
             mAppsRecyclerView.setNumAppsPerRow(mNumAppsPerRow, mNumPredictedAppsPerRow);
             mAdapter.setNumAppsPerRow(mNumAppsPerRow);
-            mApps.setNumAppsPerRow(mNumAppsPerRow, mNumPredictedAppsPerRow);
+            mApps.setNumAppsPerRow(mNumAppsPerRow, mNumPredictedAppsPerRow, mergeAlgorithm);
         }
+
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
     }
 
     /**
-     * Update the padding of the Apps view and children.  To ensure that the RecyclerView has the
-     * full width to handle touches right to the edge of the screen, we only apply the top and
-     * bottom padding to the AppsContainerView and then the left/right padding on the RecyclerView
-     * itself.  In particular, the left/right padding is applied to the background of the view,
-     * and then additionally inset by the start margin.
+     * Update the background and padding of the Apps view and children.  Instead of insetting the
+     * container view, we inset the background and padding of the recycler view to allow for the
+     * recycler view to handle touch events (for fast scrolling) all the way to the edge.
      */
     @Override
-    protected void onUpdatePaddings() {
+    protected void onUpdateBackgroundAndPaddings(Rect searchBarBounds, Rect padding) {
         boolean isRtl = Utilities.isRtl(getResources());
-        boolean hasSearchBar = (mSearchBarEditView != null) &&
-                (mSearchBarEditView.getVisibility() == View.VISIBLE);
 
-        // Set the background on the container, but let the recyclerView extend the full screen,
-        // so that the fast-scroller works on the edge as well.
-        mContentView.setPadding(0, 0, 0, 0);
-
-        if (mFixedBounds.isEmpty()) {
-            // If there are no fixed bounds, then use the default padding and insets
-            setPadding(mInsets.left, mContainerInset + mInsets.top, mInsets.right,
-                    mContainerInset + mInsets.bottom);
-        } else {
-            // If there are fixed bounds, then we update the padding to reflect the fixed bounds.
-            setPadding(mFixedBounds.left, mFixedBounds.top, getMeasuredWidth() - mFixedBounds.right,
-                    mFixedBounds.bottom);
-        }
-
-        // Update the apps recycler view, inset it by the container inset as well
-        DeviceProfile grid = mLauncher.getDeviceProfile();
-        int startMargin = grid.isPhone ? mContentMarginStart : 0;
-        int inset = mFixedBounds.isEmpty() ? mContainerInset : mFixedBoundsContainerInset;
-        if (isRtl) {
-            mAppsRecyclerView.setPadding(inset + mAppsRecyclerView.getScrollbarWidth(), 0,
-                    inset + startMargin, 0);
-        } else {
-            mAppsRecyclerView.setPadding(inset + startMargin, 0,
-                    inset + mAppsRecyclerView.getScrollbarWidth(), 0);
-        }
-
-        // Update the header bar
-        if (hasSearchBar) {
-            FrameLayout.LayoutParams lp =
-                    (FrameLayout.LayoutParams) mHeaderView.getLayoutParams();
-            lp.leftMargin = lp.rightMargin = inset;
-            mHeaderView.requestLayout();
-        }
-
-        FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mPredictionBarView.getLayoutParams();
-        lp.leftMargin = inset + mAppsRecyclerView.getScrollbarWidth();
-        lp.rightMargin = inset + mAppsRecyclerView.getScrollbarWidth();
-        mPredictionBarView.requestLayout();
-    }
-
-    /**
-     * Update the background of the Apps view and children.
-     */
-    @Override
-    protected void onUpdateBackgrounds() {
-        int inset = mFixedBounds.isEmpty() ? mContainerInset : mFixedBoundsContainerInset;
-
-        // Update the background of the reveal view and list to be inset with the fixed bound
-        // insets instead of the default insets
         // TODO: Use quantum_panel instead of quantum_panel_shape.
         InsetDrawable background = new InsetDrawable(
-                getContext().getResources().getDrawable(R.drawable.quantum_panel_shape),
-                inset, 0, inset, 0);
-        mContentView.setBackground(background);
-        mAppsRecyclerView.updateBackgroundPadding(background);
-        mAdapter.updateBackgroundPadding(background);
-        mElevationController.updateBackgroundPadding(background);
-        getRevealView().setBackground(background.getConstantState().newDrawable());
+                getResources().getDrawable(R.drawable.quantum_panel_shape), padding.left, 0,
+                padding.right, 0);
+        mContainerView.setBackground(background);
+        mRevealView.setBackground(background.getConstantState().newDrawable());
+        mAppsRecyclerView.updateBackgroundPadding(padding);
+        mAdapter.updateBackgroundPadding(padding);
+
+        // Hack: We are going to let the recycler view take the full width, so reset the padding on
+        // the container to zero after setting the background and apply the top-bottom padding to
+        // the content view instead so that the launcher transition clips correctly.
+        mContent.setPadding(0, padding.top, 0, padding.bottom);
+        mContainerView.setPadding(0, 0, 0, 0);
+
+        // Pad the recycler view by the background padding plus the start margin (for the section
+        // names)
+        int startInset = Math.max(mSectionNamesMargin, mAppsRecyclerView.getScrollbarWidth());
+        if (isRtl) {
+            mAppsRecyclerView.setPadding(padding.left + mAppsRecyclerView.getScrollbarWidth(), 0,
+                    padding.right + startInset, 0);
+        } else {
+            mAppsRecyclerView.setPadding(padding.left + startInset, 0,
+                    padding.right + mAppsRecyclerView.getScrollbarWidth(), 0);
+        }
+
+        // Inset the search bar to fit its bounds above the container
+        if (mSearchBarView != null) {
+            Rect backgroundPadding = new Rect();
+            if (mSearchBarView.getBackground() != null) {
+                mSearchBarView.getBackground().getPadding(backgroundPadding);
+            }
+            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)
+                    mSearchBarContainerView.getLayoutParams();
+            lp.leftMargin = searchBarBounds.left - backgroundPadding.left;
+            lp.topMargin = searchBarBounds.top - backgroundPadding.top;
+            lp.rightMargin = (getMeasuredWidth() - searchBarBounds.right) - backgroundPadding.right;
+            mSearchBarContainerView.requestLayout();
+        }
+
+        // Update the prediction bar insets as well
+        mPredictionBarView = (ViewGroup) findViewById(R.id.prediction_bar);
+        FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mPredictionBarView.getLayoutParams();
+        lp.leftMargin = padding.left + mAppsRecyclerView.getScrollbarWidth();
+        lp.rightMargin = padding.right + mAppsRecyclerView.getScrollbarWidth();
+        mPredictionBarView.requestLayout();
     }
 
     @Override
     public boolean onPreDraw() {
-        synchronizeToRecyclerViewScrollPosition(mAppsRecyclerView.getScrollPosition());
+        if (mNumAppsPerRow > 0) {
+            // Update the position of the prediction bar to match the scroll of the all apps list
+            synchronizeToRecyclerViewScrollPosition(mAppsRecyclerView.getScrollPosition());
+        }
         return true;
     }
 
     @Override
+    public boolean dispatchKeyEvent(KeyEvent event) {
+        // Determine if the key event was actual text, if so, focus the search bar and then dispatch
+        // the key normally so that it can process this key event
+        if (!mSearchBarController.isSearchFieldFocused() &&
+                event.getAction() == KeyEvent.ACTION_DOWN) {
+            final int unicodeChar = event.getUnicodeChar();
+            final boolean isKeyNotWhitespace = unicodeChar > 0 &&
+                    !Character.isWhitespace(unicodeChar) && !Character.isSpaceChar(unicodeChar);
+            if (isKeyNotWhitespace) {
+                boolean gotKey = TextKeyListener.getInstance().onKeyDown(this, mSearchQueryBuilder,
+                        event.getKeyCode(), event);
+                if (gotKey && mSearchQueryBuilder.length() > 0) {
+                    mSearchBarController.focusSearchField();
+                }
+            }
+        }
+
+        return super.dispatchKeyEvent(event);
+    }
+
+    @Override
     public boolean onInterceptTouchEvent(MotionEvent ev) {
         return handleTouchEvent(ev);
     }
@@ -570,15 +533,6 @@
     }
 
     @Override
-    public void onClick(View v) {
-        if (v == mHeaderView) {
-            showSearchField();
-        } else if (v == mDismissSearchButtonView) {
-            hideSearchField(true, true);
-        }
-    }
-
-    @Override
     public boolean onLongClick(View v) {
         // Return early if this is not initiated from a touch
         if (!v.isInTouchMode()) return false;
@@ -661,70 +615,11 @@
     }
 
     @Override
-    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-        // Do nothing
-    }
-
-    @Override
-    public void onTextChanged(CharSequence s, int start, int before, int count) {
-        // Do nothing
-    }
-
-    @Override
-    public void afterTextChanged(final Editable s) {
-        String queryText = s.toString();
-        if (queryText.isEmpty()) {
-            mSearchManager.cancel(true);
-            mApps.setOrderedFilter(null);
-        } else {
-            String formatStr = getResources().getString(R.string.all_apps_no_search_results);
-            mAdapter.setEmptySearchText(String.format(formatStr, queryText));
-
-            mSearchManager.cancel(false);
-            mSearchManager.doSearch(queryText, this);
-        }
-        scrollToTop();
-    }
-
-    @Override
-    public void onSearchResult(ArrayList<ComponentName> apps) {
-        if (apps != null) {
-            mApps.setOrderedFilter(apps);
-        }
-    }
-
-    @Override
-    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
-        if (ALLOW_SINGLE_APP_LAUNCH && actionId == EditorInfo.IME_ACTION_DONE) {
-            // Skip the quick-launch if there isn't exactly one item
-            if (mApps.getSize() != 1) {
-                return false;
-            }
-
-            List<AlphabeticalAppsList.AdapterItem> items = mApps.getAdapterItems();
-            for (int i = 0; i < items.size(); i++) {
-                AlphabeticalAppsList.AdapterItem item = items.get(i);
-                if (item.viewType == AllAppsGridAdapter.ICON_VIEW_TYPE) {
-                    mAppsRecyclerView.getChildAt(i).performClick();
-                    getInputMethodManager().hideSoftInputFromWindow(getWindowToken(), 0);
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
-    @Override
     public void onAdapterItemsChanged() {
         updatePredictionBarVisibility();
     }
 
     @Override
-    public View getContent() {
-        return null;
-    }
-
-    @Override
     public void onLauncherTransitionPrepare(Launcher l, boolean animated, boolean toWorkspace) {
         // Register for a pre-draw listener to synchronize the recycler view scroll to other views
         // in this container
@@ -745,14 +640,12 @@
 
     @Override
     public void onLauncherTransitionEnd(Launcher l, boolean animated, boolean toWorkspace) {
-        if (mSearchBarEditView != null) {
-            if (toWorkspace) {
-                hideSearchField(false, false);
-            }
-        }
         if (toWorkspace) {
             getViewTreeObserver().removeOnPreDrawListener(this);
             mLastRecyclerViewScrollPos = -1;
+
+            // Reset the search bar after transitioning home
+            mSearchBarController.reset();
         }
     }
 
@@ -763,9 +656,6 @@
     private void synchronizeToRecyclerViewScrollPosition(int scrollY) {
         if (mLastRecyclerViewScrollPos != scrollY) {
             mLastRecyclerViewScrollPos = scrollY;
-            if (DYNAMIC_HEADER_ELEVATION) {
-                mElevationController.onScroll(scrollY);
-            }
 
             // Scroll the prediction bar with the contents of the recycler view
             mPredictionBarView.setTranslationY(-scrollY + mAppsRecyclerView.getPaddingTop());
@@ -806,9 +696,9 @@
                     }
                 }
 
-                if (!mFixedBounds.isEmpty()) {
+                if (!mContentBounds.isEmpty()) {
                     // Outset the fixed bounds and check if the touch is outside all apps
-                    Rect tmpRect = new Rect(mFixedBounds);
+                    Rect tmpRect = new Rect(mContentBounds);
                     tmpRect.inset(-grid.allAppsIconSizePx / 2, 0);
                     if (ev.getX() < tmpRect.left || ev.getX() > tmpRect.right) {
                         mBoundsCheckLastTouchDownPos.set(x, y);
@@ -875,6 +765,29 @@
     }
 
     @Override
+    public void onSearchResult(String query, ArrayList<ComponentKey> apps) {
+        if (apps != null) {
+            if (apps.isEmpty()) {
+                String formatStr = getResources().getString(R.string.all_apps_no_search_results);
+                mAdapter.setEmptySearchText(String.format(formatStr, query));
+            } else {
+                mAppsRecyclerView.scrollToTop();
+            }
+            mApps.setOrderedFilter(apps);
+        }
+    }
+
+    @Override
+    public void clearSearchResult() {
+        mApps.setOrderedFilter(null);
+
+        // Clear the search query
+        mSearchQueryBuilder.clear();
+        mSearchQueryBuilder.clearSpans();
+        Selection.setSelection(mSearchQueryBuilder, 0);
+    }
+
+    @Override
     public void fillInLaunchSourceData(Bundle sourceData) {
         // Since the other cases are caught by the AllAppsRecyclerView LaunchSourceProvider, we just
         // handle the prediction bar icons here
@@ -889,11 +802,11 @@
     private View findPredictedAppAtCoordinate(int x, int y) {
         Rect hitRect = new Rect();
 
-        // Ensure we aren't hitting the search bar
+        // Ensure that are touching in the recycler view
         int[] coord = {x, y};
-        Utilities.mapCoordInSelfToDescendent(mHeaderView, this, coord);
-        mHeaderView.getHitRect(hitRect);
-        if (hitRect.contains(coord[0], coord[1])) {
+        Utilities.mapCoordInSelfToDescendent(mAppsRecyclerView, this, coord);
+        mAppsRecyclerView.getHitRect(hitRect);
+        if (!hitRect.contains(coord[0], coord[1])) {
             return null;
         }
 
@@ -915,94 +828,12 @@
     }
 
     /**
-     * Shows the search field.
-     */
-    private void showSearchField() {
-        mSearchManager.connect();
-
-        // Show the search bar and focus the search
-        final int translationX = Utilities.pxFromDp(SEARCH_TRANSLATION_X_DP,
-                getContext().getResources().getDisplayMetrics());
-        mSearchBarContainerView.setVisibility(View.VISIBLE);
-        mSearchBarContainerView.setAlpha(0f);
-        mSearchBarContainerView.setTranslationX(translationX);
-        mSearchBarContainerView.animate()
-                .alpha(1f)
-                .translationX(0)
-                .setDuration(FADE_IN_DURATION)
-                .withLayer()
-                .withEndAction(new Runnable() {
-                    @Override
-                    public void run() {
-                        mSearchBarEditView.requestFocus();
-                        getInputMethodManager().showSoftInput(mSearchBarEditView,
-                                InputMethodManager.SHOW_IMPLICIT);
-                    }
-                });
-        mSearchButtonView.animate()
-                .alpha(0f)
-                .translationX(-translationX)
-                .setDuration(FADE_OUT_DURATION)
-                .withLayer();
-    }
-
-    /**
-     * Hides the search field.
-     */
-    @Thunk void hideSearchField(boolean animated, final boolean returnFocusToRecyclerView) {
-        mSearchManager.cancel(true);
-
-        final boolean resetTextField = mSearchBarEditView.getText().toString().length() > 0;
-        final int translationX = Utilities.pxFromDp(SEARCH_TRANSLATION_X_DP,
-                getContext().getResources().getDisplayMetrics());
-        if (animated) {
-            // Hide the search bar and focus the recycler view
-            mSearchBarContainerView.animate()
-                    .alpha(0f)
-                    .translationX(0)
-                    .setDuration(FADE_IN_DURATION)
-                    .withLayer()
-                    .withEndAction(new Runnable() {
-                        @Override
-                        public void run() {
-                            mSearchBarContainerView.setVisibility(View.INVISIBLE);
-                            if (resetTextField) {
-                                mSearchBarEditView.setText("");
-                            }
-                            mApps.setOrderedFilter(null);
-                            if (returnFocusToRecyclerView) {
-                                mAppsRecyclerView.requestFocus();
-                            }
-                        }
-                    });
-            mSearchButtonView.setTranslationX(-translationX);
-            mSearchButtonView.animate()
-                    .alpha(1f)
-                    .translationX(0)
-                    .setDuration(FADE_OUT_DURATION)
-                    .withLayer();
-        } else {
-            mSearchBarContainerView.setVisibility(View.INVISIBLE);
-            if (resetTextField) {
-                mSearchBarEditView.setText("");
-            }
-            mApps.setOrderedFilter(null);
-            mSearchButtonView.setAlpha(1f);
-            mSearchButtonView.setTranslationX(0f);
-            if (returnFocusToRecyclerView) {
-                mAppsRecyclerView.requestFocus();
-            }
-        }
-        getInputMethodManager().hideSoftInputFromWindow(getWindowToken(), 0);
-    }
-
-    /**
      * Updates the visibility of the prediction bar.
      * @return whether the prediction bar is visible
      */
     private boolean updatePredictionBarVisibility() {
-        boolean showPredictionBar = !mApps.getPredictedApps().isEmpty() && (!mApps.hasFilter() ||
-                mSearchBarEditView.getEditableText().toString().isEmpty());
+        boolean showPredictionBar = !mApps.getPredictedApps().isEmpty() &&
+                (!mApps.hasFilter() || mSearchBarController.shouldShowPredictionBar());
         if (showPredictionBar) {
             mPredictionBarView.setVisibility(View.VISIBLE);
         } else if (!showPredictionBar) {
@@ -1010,11 +841,4 @@
         }
         return showPredictionBar;
     }
-
-    /**
-     * Returns an input method manager.
-     */
-    @Thunk InputMethodManager getInputMethodManager() {
-        return (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
-    }
 }
diff --git a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
index 4b8b2df..68407bd 100644
--- a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
+++ b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
@@ -21,7 +21,6 @@
 import android.graphics.Paint;
 import android.graphics.PointF;
 import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
 import android.os.Handler;
 import android.support.v7.widget.GridLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -32,7 +31,6 @@
 import android.widget.TextView;
 import com.android.launcher3.AppInfo;
 import com.android.launcher3.BubbleTextView;
-import com.android.launcher3.DeviceProfile;
 import com.android.launcher3.Launcher;
 import com.android.launcher3.R;
 import com.android.launcher3.Utilities;
@@ -109,25 +107,28 @@
      */
     public class GridItemDecoration extends RecyclerView.ItemDecoration {
 
+        private static final boolean DEBUG_SECTION_MARGIN = false;
         private static final boolean FADE_OUT_SECTIONS = false;
 
         private HashMap<String, PointF> mCachedSectionBounds = new HashMap<>();
         private Rect mTmpBounds = new Rect();
-        private Launcher mLauncher;
-
-        public GridItemDecoration(Context context) {
-            mLauncher = (Launcher) context;
-        }
 
         @Override
         public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
-            if (mApps.hasFilter()) {
+            if (mApps.hasFilter() || mAppsPerRow == 0) {
                 return;
             }
 
-            DeviceProfile grid = mLauncher.getDeviceProfile();
+            if (DEBUG_SECTION_MARGIN) {
+                Paint p = new Paint();
+                p.setColor(0x33ff0000);
+                c.drawRect(mBackgroundPadding.left, 0, mBackgroundPadding.left + mSectionNamesMargin,
+                        parent.getMeasuredHeight(), p);
+            }
+
             List<AlphabeticalAppsList.AdapterItem> items = mApps.getAdapterItems();
             boolean hasDrawnPredictedAppsDivider = false;
+            boolean showSectionNames = mSectionNamesMargin > 0;
             int childCount = parent.getChildCount();
             int lastSectionTop = 0;
             int lastSectionHeight = 0;
@@ -146,7 +147,7 @@
                             mPredictedAppsDividerPaint);
                     hasDrawnPredictedAppsDivider = true;
 
-                } else if (grid.isPhone && shouldDrawItemSection(holder, i, items)) {
+                } else if (showSectionNames && shouldDrawItemSection(holder, i, items)) {
                     // At this point, we only draw sections for each section break;
                     int viewTopOffset = (2 * child.getPaddingTop());
                     int pos = holder.getPosition();
@@ -171,9 +172,10 @@
 
                         // Calculate where to draw the section
                         int sectionBaseline = (int) (viewTopOffset + sectionBounds.y);
-                        int x = mIsRtl ? parent.getWidth() - mPaddingStart - mStartMargin :
-                                mPaddingStart;
-                        x += (int) ((mStartMargin - sectionBounds.x) / 2f);
+                        int x = mIsRtl ?
+                                parent.getWidth() - mBackgroundPadding.left - mSectionNamesMargin :
+                                        mBackgroundPadding.left;
+                        x += (int) ((mSectionNamesMargin - sectionBounds.x) / 2f);
                         int y = child.getTop() + sectionBaseline;
 
                         // Determine whether this is the last row with apps in that section, if
@@ -301,32 +303,28 @@
     private String mEmptySearchText;
 
     // Section drawing
-    @Thunk int mPaddingStart;
-    @Thunk int mStartMargin;
+    @Thunk int mSectionNamesMargin;
     @Thunk int mSectionHeaderOffset;
     @Thunk Paint mSectionTextPaint;
     @Thunk Paint mPredictedAppsDividerPaint;
 
-    public AllAppsGridAdapter(Context context, AlphabeticalAppsList apps, int appsPerRow,
+    public AllAppsGridAdapter(Context context, AlphabeticalAppsList apps,
             PredictionBarSpacerCallbacks pbCb, View.OnTouchListener touchListener,
             View.OnClickListener iconClickListener, View.OnLongClickListener iconLongClickListener) {
         Resources res = context.getResources();
         mHandler = new Handler();
         mApps = apps;
-        mAppsPerRow = appsPerRow;
         mPredictionBarCb = pbCb;
         mGridSizer = new GridSpanSizer();
-        mGridLayoutMgr = new GridLayoutManager(context, appsPerRow, GridLayoutManager.VERTICAL,
-                false);
+        mGridLayoutMgr = new GridLayoutManager(context, 1, GridLayoutManager.VERTICAL, false);
         mGridLayoutMgr.setSpanSizeLookup(mGridSizer);
-        mItemDecoration = new GridItemDecoration(context);
+        mItemDecoration = new GridItemDecoration();
         mLayoutInflater = LayoutInflater.from(context);
         mTouchListener = touchListener;
         mIconClickListener = iconClickListener;
         mIconLongClickListener = iconLongClickListener;
-        mStartMargin = res.getDimensionPixelSize(R.dimen.all_apps_grid_view_start_margin);
+        mSectionNamesMargin = res.getDimensionPixelSize(R.dimen.all_apps_grid_view_start_margin);
         mSectionHeaderOffset = res.getDimensionPixelSize(R.dimen.all_apps_grid_section_y_offset);
-        mPaddingStart = res.getDimensionPixelSize(R.dimen.all_apps_container_inset);
 
         mSectionTextPaint = new Paint();
         mSectionTextPaint.setTextSize(res.getDimensionPixelSize(
@@ -339,7 +337,7 @@
         mPredictedAppsDividerPaint.setColor(0x1E000000);
         mPredictedAppsDividerPaint.setAntiAlias(true);
         mPredictionBarBottomPadding =
-                res.getDimensionPixelSize(R.dimen.all_apps_prediction_bar_bottom_padding);
+                res.getDimensionPixelSize(R.dimen.all_apps_prediction_bar_top_bottom_padding);
     }
 
     /**
@@ -375,8 +373,8 @@
      * Notifies the adapter of the background padding so that it can draw things correctly in the
      * item decorator.
      */
-    public void updateBackgroundPadding(Drawable background) {
-        background.getPadding(mBackgroundPadding);
+    public void updateBackgroundPadding(Rect padding) {
+        mBackgroundPadding.set(padding);
     }
 
     /**
@@ -394,13 +392,6 @@
         return mItemDecoration;
     }
 
-    /**
-     * Returns the left padding for the recycler view.
-     */
-    public int getContentMarginStart() {
-        return mStartMargin;
-    }
-
     @Override
     public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
         switch (viewType) {
diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
index e1b5d91..ff327da 100644
--- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
@@ -16,8 +16,6 @@
 package com.android.launcher3.allapps;
 
 import android.content.Context;
-import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -40,11 +38,8 @@
     private AlphabeticalAppsList mApps;
     private int mNumAppsPerRow;
     private int mNumPredictedAppsPerRow;
-
     private int mPredictionBarHeight;
-    private int mScrollbarMinHeight;
-
-    private Rect mBackgroundPadding = new Rect();
+    private int mLastFastscrollPosition = -1;
 
     private Launcher mLauncher;
 
@@ -89,10 +84,6 @@
         pool.setMaxRecycledViews(AllAppsGridAdapter.SECTION_BREAK_VIEW_TYPE, approxRows);
     }
 
-    public void updateBackgroundPadding(Drawable background) {
-        background.getPadding(mBackgroundPadding);
-    }
-
     /**
      * Sets the prediction bar height.
      */
@@ -124,6 +115,8 @@
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
+
+        // Bind event handlers
         addOnItemTouchListener(this);
     }
 
@@ -139,6 +132,11 @@
         }
     }
 
+    @Override
+    protected void onFastScrollingEnd() {
+        mLastFastscrollPosition = -1;
+    }
+
     /**
      * Maps the touch (from 0..1) to the adapter position that should be visible.
      */
@@ -182,12 +180,14 @@
 
         // Scroll to the view at the position, anchored at the top of the screen. We call the scroll
         // method on the LayoutManager directly since it is not exposed by RecyclerView.
-        layoutManager.scrollToPositionWithOffset(lastScrollSection.appItem.position, 0);
+        if (mLastFastscrollPosition != lastScrollSection.appItem.position) {
+            mLastFastscrollPosition = lastScrollSection.appItem.position;
+            layoutManager.scrollToPositionWithOffset(lastScrollSection.appItem.position, 0);
+        }
 
         return lastScrollSection.sectionName;
     }
 
-
     /**
      * Returns the row index for a app index in the list.
      */
@@ -227,8 +227,8 @@
     public void updateVerticalScrollbarBounds() {
         List<AlphabeticalAppsList.AdapterItem> items = mApps.getAdapterItems();
 
-        // Skip early if there are no items.
-        if (items.isEmpty()) {
+        // Skip early if there are no items or we haven't been measured
+        if (items.isEmpty() || mNumAppsPerRow == 0) {
             verticalScrollbarBounds.setEmpty();
             return;
         }
@@ -242,8 +242,7 @@
             int height = getHeight() - getPaddingTop() - getPaddingBottom();
             int totalScrollHeight = rowCount * scrollPosState.rowHeight + predictionBarHeight;
             if (totalScrollHeight > height) {
-                int scrollbarHeight = Math.max(mScrollbarMinHeight,
-                        (int) (height / ((float) totalScrollHeight / height)));
+                int scrollbarHeight = (int) (height / ((float) totalScrollHeight / height));
 
                 // Calculate the position and size of the scroll bar
                 if (Utilities.isRtl(getResources())) {
@@ -277,8 +276,8 @@
         stateOut.rowTopOffset = -1;
         stateOut.rowHeight = -1;
 
-        // Return early if there are no items
-        if (items.isEmpty()) {
+        // Return early if there are no items or we haven't been measured
+        if (items.isEmpty() || mNumAppsPerRow == 0) {
             return;
         }
 
diff --git a/src/com/android/launcher3/allapps/AllAppsSearchBarController.java b/src/com/android/launcher3/allapps/AllAppsSearchBarController.java
new file mode 100644
index 0000000..341539c
--- /dev/null
+++ b/src/com/android/launcher3/allapps/AllAppsSearchBarController.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.allapps;
+
+import android.content.ComponentName;
+import android.graphics.Rect;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.launcher3.util.ComponentKey;
+
+import java.util.ArrayList;
+
+/**
+ * An interface to a search box that AllApps can command.
+ */
+public abstract class AllAppsSearchBarController {
+
+    protected AlphabeticalAppsList mApps;
+    protected Callbacks mCb;
+
+    /**
+     * Sets the references to the apps model and the search result callback.
+     */
+    public final void initialize(AlphabeticalAppsList apps, Callbacks cb) {
+        mApps = apps;
+        mCb = cb;
+        onInitialize();
+    }
+
+    /**
+     * To be overridden by subclasses.  This method will get called when the controller is set,
+     * before getView().
+     */
+    protected abstract void onInitialize();
+
+    /**
+     * Returns the search bar view.
+     * @param parent the parent to attach the search bar view to.
+     */
+    public abstract View getView(ViewGroup parent);
+
+    /**
+     * Focuses the search field to handle key events.
+     */
+    public abstract void focusSearchField();
+
+    /**
+     * Returns whether the search field is focused.
+     */
+    public abstract boolean isSearchFieldFocused();
+
+    /**
+     * Resets the search bar state.
+     */
+    public abstract void reset();
+
+    /**
+     * Returns whether the prediction bar should currently be visible depending on the state of
+     * the search bar.
+     */
+    public abstract boolean shouldShowPredictionBar();
+
+    /**
+     * Callback for getting search results.
+     */
+    public interface Callbacks {
+
+        /**
+         * Called when the bounds of the search bar has changed.
+         */
+        void onBoundsChanged(Rect newBounds);
+
+        /**
+         * Called when the search is complete.
+         *
+         * @param apps sorted list of matching components or null if in case of failure.
+         */
+        void onSearchResult(String query, ArrayList<ComponentKey> apps);
+
+        /**
+         * Called when the search results should be cleared.
+         */
+        void clearSearchResult();
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
index e284f77..b7b6ed7 100644
--- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
+++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
@@ -21,16 +21,11 @@
 import android.util.Log;
 
 import com.android.launcher3.AppInfo;
-import com.android.launcher3.DeviceProfile;
 import com.android.launcher3.Launcher;
-import com.android.launcher3.LauncherAppState;
 import com.android.launcher3.compat.AlphabeticIndexCompat;
-import com.android.launcher3.model.AbstractUserComparator;
 import com.android.launcher3.model.AppNameComparator;
-import com.android.launcher3.util.Thunk;
+import com.android.launcher3.util.ComponentKey;
 
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetEncoder;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -144,74 +139,17 @@
     /**
      * Common interface for different merging strategies.
      */
-    private interface MergeAlgorithm {
+    public interface MergeAlgorithm {
         boolean continueMerging(SectionInfo section, SectionInfo withSection,
                 int sectionAppCount, int numAppsPerRow, int mergeCount);
     }
 
-    /**
-     * The logic we use to merge sections on tablets.  Currently, we don't show section names on
-     * tablet layouts, so just merge all the sections indiscriminately.
-     */
-    @Thunk static class TabletMergeAlgorithm implements MergeAlgorithm {
-
-        @Override
-        public boolean continueMerging(SectionInfo section, SectionInfo withSection,
-                int sectionAppCount, int numAppsPerRow, int mergeCount) {
-            // Merge EVERYTHING
-            return true;
-        }
-    }
-
-    /**
-     * The logic we use to merge sections on phones.  We only merge sections when their final row
-     * contains less than a certain number of icons, and stop at a specified max number of merges.
-     * In addition, we will try and not merge sections that identify apps from different scripts.
-     */
-    private static class PhoneMergeAlgorithm implements MergeAlgorithm {
-
-        private int mMinAppsPerRow;
-        private int mMinRowsInMergedSection;
-        private int mMaxAllowableMerges;
-        private CharsetEncoder mAsciiEncoder;
-
-        public PhoneMergeAlgorithm(int minAppsPerRow, int minRowsInMergedSection, int maxNumMerges) {
-            mMinAppsPerRow = minAppsPerRow;
-            mMinRowsInMergedSection = minRowsInMergedSection;
-            mMaxAllowableMerges = maxNumMerges;
-            mAsciiEncoder = Charset.forName("US-ASCII").newEncoder();
-        }
-
-        @Override
-        public boolean continueMerging(SectionInfo section, SectionInfo withSection,
-                int sectionAppCount, int numAppsPerRow, int mergeCount) {
-            // Continue merging if the number of hanging apps on the final row is less than some
-            // fixed number (ragged), the merged rows has yet to exceed some minimum row count,
-            // and while the number of merged sections is less than some fixed number of merges
-            int rows = sectionAppCount / numAppsPerRow;
-            int cols = sectionAppCount % numAppsPerRow;
-
-            // Ensure that we do not merge across scripts, currently we only allow for english and
-            // native scripts so we can test if both can just be ascii encoded
-            boolean isCrossScript = false;
-            if (section.firstAppItem != null && withSection.firstAppItem != null) {
-                isCrossScript = mAsciiEncoder.canEncode(section.firstAppItem.sectionName) !=
-                        mAsciiEncoder.canEncode(withSection.firstAppItem.sectionName);
-            }
-            return (0 < cols && cols < mMinAppsPerRow) &&
-                    rows < mMinRowsInMergedSection &&
-                    mergeCount < mMaxAllowableMerges &&
-                    !isCrossScript;
-        }
-    }
-
-    private static final int MIN_ROWS_IN_MERGED_SECTION_PHONE = 3;
-    private static final int MAX_NUM_MERGES_PHONE = 2;
-
     private Launcher mLauncher;
 
     // The set of apps from the system not including predictions
     private final List<AppInfo> mApps = new ArrayList<>();
+    private final HashMap<ComponentKey, AppInfo> mComponentToAppMap = new HashMap<>();
+
     // The set of filtered apps with the current filter
     private List<AppInfo> mFilteredApps = new ArrayList<>();
     // The current set of adapter items
@@ -225,7 +163,7 @@
     // The set of predicted apps resolved from the component names and the current set of apps
     private List<AppInfo> mPredictedApps = new ArrayList<>();
     // The of ordered component names as a result of a search query
-    private ArrayList<ComponentName> mSearchResults;
+    private ArrayList<ComponentKey> mSearchResults;
     private HashMap<CharSequence, String> mCachedSectionNames = new HashMap<>();
     private RecyclerView.Adapter mAdapter;
     private AlphabeticIndexCompat mIndexer;
@@ -235,11 +173,10 @@
     private int mNumAppsPerRow;
     private int mNumPredictedAppsPerRow;
 
-    public AlphabeticalAppsList(Context context, int numAppsPerRow, int numPredictedAppsPerRow) {
+    public AlphabeticalAppsList(Context context) {
         mLauncher = (Launcher) context;
         mIndexer = new AlphabeticIndexCompat(context);
         mAppNameComparator = new AppNameComparator(context);
-        setNumAppsPerRow(numAppsPerRow, numPredictedAppsPerRow);
     }
 
     /**
@@ -249,27 +186,16 @@
         mAdapterChangedCallback = cb;
     }
 
-    public SimpleAppSearchManagerImpl newSimpleAppSearchManager() {
-        return new SimpleAppSearchManagerImpl(mApps);
-    }
-
     /**
-     * Sets the number of apps per row.  Used only for AppsContainerView.SECTIONED_GRID_COALESCED.
+     * Sets the number of apps per row.
      */
-    public void setNumAppsPerRow(int numAppsPerRow, int numPredictedAppsPerRow) {
-        // Update the merge algorithm
-        DeviceProfile grid = mLauncher.getDeviceProfile();
-        if (grid.isPhone) {
-            mMergeAlgorithm = new PhoneMergeAlgorithm((int) Math.ceil(numAppsPerRow / 2f),
-                    MIN_ROWS_IN_MERGED_SECTION_PHONE, MAX_NUM_MERGES_PHONE);
-        } else {
-            mMergeAlgorithm = new TabletMergeAlgorithm();
-        }
-
+    public void setNumAppsPerRow(int numAppsPerRow, int numPredictedAppsPerRow,
+            MergeAlgorithm mergeAlgorithm) {
         mNumAppsPerRow = numAppsPerRow;
         mNumPredictedAppsPerRow = numPredictedAppsPerRow;
+        mMergeAlgorithm = mergeAlgorithm;
 
-        onAppsUpdated();
+        updateAdapterItems();
     }
 
     /**
@@ -280,6 +206,13 @@
     }
 
     /**
+     * Returns all the apps.
+     */
+    public List<AppInfo> getApps() {
+        return mApps;
+    }
+
+    /**
      * Returns sections of all the current filtered applications.
      */
     public List<SectionInfo> getSections() {
@@ -324,7 +257,7 @@
     /**
      * Sets the sorted list of filtered components.
      */
-    public void setOrderedFilter(ArrayList<ComponentName> f) {
+    public void setOrderedFilter(ArrayList<ComponentKey> f) {
         if (mSearchResults != f) {
             mSearchResults = f;
             updateAdapterItems();
@@ -352,33 +285,23 @@
      * Sets the current set of apps.
      */
     public void setApps(List<AppInfo> apps) {
-        mApps.clear();
-        mApps.addAll(apps);
-        onAppsUpdated();
+        mComponentToAppMap.clear();
+        addApps(apps);
     }
 
     /**
      * Adds new apps to the list.
      */
     public void addApps(List<AppInfo> apps) {
-        // We add it in place, in alphabetical order
-        for (AppInfo info : apps) {
-            mApps.add(info);
-        }
-        onAppsUpdated();
+        updateApps(apps);
     }
 
     /**
      * Updates existing apps in the list
      */
     public void updateApps(List<AppInfo> apps) {
-        for (AppInfo info : apps) {
-            int index = mApps.indexOf(info);
-            if (index != -1) {
-                mApps.set(index, info);
-            } else {
-                mApps.add(info);
-            }
+        for (AppInfo app : apps) {
+            mComponentToAppMap.put(app.toComponentKey(), app);
         }
         onAppsUpdated();
     }
@@ -387,36 +310,19 @@
      * Removes some apps from the list.
      */
     public void removeApps(List<AppInfo> apps) {
-        for (AppInfo info : apps) {
-            int removeIndex = findAppByComponent(mApps, info);
-            if (removeIndex != -1) {
-                mApps.remove(removeIndex);
-            }
+        for (AppInfo app : apps) {
+            mComponentToAppMap.remove(app.toComponentKey());
         }
         onAppsUpdated();
     }
 
     /**
-     * Finds the index of an app given a target AppInfo.
-     */
-    private int findAppByComponent(List<AppInfo> apps, AppInfo targetInfo) {
-        ComponentName targetComponent = targetInfo.intent.getComponent();
-        int length = apps.size();
-        for (int i = 0; i < length; ++i) {
-            AppInfo info = apps.get(i);
-            if (info.user.equals(targetInfo.user)
-                    && info.intent.getComponent().equals(targetComponent)) {
-                return i;
-            }
-        }
-        return -1;
-    }
-
-    /**
      * Updates internals when the set of apps are updated.
      */
     private void onAppsUpdated() {
         // Sort the list of apps
+        mApps.clear();
+        mApps.addAll(mComponentToAppMap.values());
         Collections.sort(mApps, mAppNameComparator.getAppInfoComparator());
 
         // As a special case for some languages (currently only Simplified Chinese), we may need to
@@ -563,33 +469,13 @@
             return mApps;
         }
 
-        int total = mSearchResults.size();
-        final HashMap<ComponentName, Integer> sortOrder = new HashMap<>(total);
-        for (int i = 0; i < total; i++) {
-            sortOrder.put(mSearchResults.get(i), i);
-        }
-
         ArrayList<AppInfo> result = new ArrayList<>();
-        for (AppInfo info : mApps) {
-            if (sortOrder.containsKey(info.componentName)) {
-                result.add(info);
+        for (ComponentKey key : mSearchResults) {
+            AppInfo match = mComponentToAppMap.get(key);
+            if (match != null) {
+                result.add(match);
             }
         }
-
-        Collections.sort(result, new AbstractUserComparator<AppInfo>(
-                LauncherAppState.getInstance().getContext()) {
-
-            @Override
-            public int compare(AppInfo lhs, AppInfo rhs) {
-                Integer indexA = sortOrder.get(lhs.componentName);
-                int result = indexA.compareTo(sortOrder.get(rhs.componentName));
-                if (result == 0) {
-                    return super.compare(lhs, rhs);
-                } else {
-                    return result;
-                }
-            }
-        });
         return result;
     }
 
@@ -597,8 +483,13 @@
      * Merges multiple sections to reduce visual raggedness.
      */
     private void mergeSections() {
+        // Ignore merging until we have an algorithm and a valid row size
+        if (mMergeAlgorithm == null || mNumAppsPerRow == 0) {
+            return;
+        }
+
         // Go through each section and try and merge some of the sections
-        if (AllAppsContainerView.GRID_MERGE_SECTIONS && !hasFilter()) {
+        if (!hasFilter()) {
             int sectionAppCount = 0;
             for (int i = 0; i < mSections.size() - 1; i++) {
                 SectionInfo section = mSections.get(i);
diff --git a/src/com/android/launcher3/allapps/AppSearchManager.java b/src/com/android/launcher3/allapps/AppSearchManager.java
deleted file mode 100644
index b6aa223..0000000
--- a/src/com/android/launcher3/allapps/AppSearchManager.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.launcher3.allapps;
-
-import android.content.ComponentName;
-
-import java.util.ArrayList;
-
-/**
- * Interface for handling app search.
- */
-public interface AppSearchManager {
-
-    /**
-     * Called when the search is about to be used. This method is optional for making a query but
-     * calling this appropriately can improve the initial response time.
-     */
-    void connect();
-
-    /**
-     * Cancels all pending search requests.
-     *
-     * @param interruptActiveRequests if true, any active requests which are already executing will
-     * be invalidated, and the corresponding results will not be sent. The client should usually
-     * set this to true, before beginning a new search session.
-     */
-    void cancel(boolean interruptActiveRequests);
-
-    /**
-     * Performs a search
-     */
-    void doSearch(String query, AppSearchResultCallback callback);
-
-    /**
-     * Callback for getting search results.
-     */
-    public interface AppSearchResultCallback {
-
-        /**
-         * Called when the search is complete.
-         *
-         * @param apps sorted list of matching components or null if in case of failure.
-         */
-        void onSearchResult(ArrayList<ComponentName> apps);
-    }
-}
diff --git a/src/com/android/launcher3/allapps/SimpleAppSearchManagerImpl.java b/src/com/android/launcher3/allapps/DefaultAppSearchAlgorithm.java
similarity index 71%
rename from src/com/android/launcher3/allapps/SimpleAppSearchManagerImpl.java
rename to src/com/android/launcher3/allapps/DefaultAppSearchAlgorithm.java
index e8a31b5..10740ec 100644
--- a/src/com/android/launcher3/allapps/SimpleAppSearchManagerImpl.java
+++ b/src/com/android/launcher3/allapps/DefaultAppSearchAlgorithm.java
@@ -15,67 +15,64 @@
  */
 package com.android.launcher3.allapps;
 
-import android.content.ComponentName;
 import android.os.Handler;
 
 import com.android.launcher3.AppInfo;
+import com.android.launcher3.util.ComponentKey;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.regex.Pattern;
 
 /**
- * An {@link AppSearchManager} which does label matching on the UI thread.
+ * The default search implementation.
  */
-public class SimpleAppSearchManagerImpl implements AppSearchManager {
+public class DefaultAppSearchAlgorithm {
 
     private static final Pattern SPLIT_PATTERN = Pattern.compile("[\\s|\\p{javaSpaceChar}]+");
 
     private final List<AppInfo> mApps;
-    private final Handler mResultHandler;
+    protected final Handler mResultHandler;
 
-    public SimpleAppSearchManagerImpl(List<AppInfo> apps) {
+    public DefaultAppSearchAlgorithm(List<AppInfo> apps) {
         mApps = apps;
         mResultHandler = new Handler();
     }
 
-    @Override
-    public void connect() {
-        // No op
-    }
-
-    @Override
     public void cancel(boolean interruptActiveRequests) {
         if (interruptActiveRequests) {
             mResultHandler.removeCallbacksAndMessages(null);
         }
     }
 
-    @Override
-    public void doSearch(String query, final AppSearchResultCallback callback) {
-        // Do an intersection of the words in the query and each title, and filter out all the
-        // apps that don't match all of the words in the query.
-        final String queryTextLower = query.toLowerCase();
-        final String[] queryWords = SPLIT_PATTERN.split(queryTextLower);
-        final ArrayList<ComponentName> result = new ArrayList<ComponentName>();
-        int total = mApps.size();
-
-        for (int i = 0; i < total; i++) {
-            AppInfo info = mApps.get(i);
-            if (!result.contains(info.componentName) && matches(info, queryWords)) {
-                result.add(info.componentName);
-            }
-        }
+    public void doSearch(final String query,
+            final AllAppsSearchBarController.Callbacks callback) {
+        final ArrayList<ComponentKey> result = getTitleMatchResult(query);
         mResultHandler.post(new Runnable() {
 
             @Override
             public void run() {
-                callback.onSearchResult(result);
+                callback.onSearchResult(query, result);
             }
         });
     }
 
-    private boolean matches(AppInfo info, String[] queryWords) {
+    protected ArrayList<ComponentKey> getTitleMatchResult(String query) {
+        // Do an intersection of the words in the query and each title, and filter out all the
+        // apps that don't match all of the words in the query.
+        final String queryTextLower = query.toLowerCase();
+        final String[] queryWords = SPLIT_PATTERN.split(queryTextLower);
+
+        final ArrayList<ComponentKey> result = new ArrayList<>();
+        for (AppInfo info : mApps) {
+            if (matches(info, queryWords)) {
+                result.add(info.toComponentKey());
+            }
+        }
+        return result;
+    }
+
+    protected boolean matches(AppInfo info, String[] queryWords) {
         String title = info.title.toString();
         String[] words = SPLIT_PATTERN.split(title.toLowerCase());
         for (int qi = 0; qi < queryWords.length; qi++) {
@@ -94,5 +91,4 @@
         }
         return true;
     }
-
 }
diff --git a/src/com/android/launcher3/allapps/DefaultAppSearchController.java b/src/com/android/launcher3/allapps/DefaultAppSearchController.java
new file mode 100644
index 0000000..20924af
--- /dev/null
+++ b/src/com/android/launcher3/allapps/DefaultAppSearchController.java
@@ -0,0 +1,270 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.allapps;
+
+import android.content.Context;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.TextView;
+import com.android.launcher3.R;
+import com.android.launcher3.Utilities;
+import com.android.launcher3.util.Thunk;
+
+import java.util.List;
+
+
+/**
+ * The default search controller.
+ */
+final class DefaultAppSearchController extends AllAppsSearchBarController
+        implements TextWatcher, TextView.OnEditorActionListener, View.OnClickListener {
+
+    private static final boolean ALLOW_SINGLE_APP_LAUNCH = true;
+
+    private static final int FADE_IN_DURATION = 175;
+    private static final int FADE_OUT_DURATION = 100;
+    private static final int SEARCH_TRANSLATION_X_DP = 18;
+
+    private final Context mContext;
+    @Thunk final InputMethodManager mInputMethodManager;
+
+    private DefaultAppSearchAlgorithm mSearchManager;
+
+    private ViewGroup mContainerView;
+    private View mSearchView;
+    @Thunk View mSearchBarContainerView;
+    private View mSearchButtonView;
+    private View mDismissSearchButtonView;
+    @Thunk AllAppsSearchEditView mSearchBarEditView;
+    @Thunk AllAppsRecyclerView mAppsRecyclerView;
+    @Thunk Runnable mFocusRecyclerViewRunnable = new Runnable() {
+        @Override
+        public void run() {
+            mAppsRecyclerView.requestFocus();
+        }
+    };
+
+    public DefaultAppSearchController(Context context, ViewGroup containerView,
+            AllAppsRecyclerView appsRecyclerView) {
+        mContext = context;
+        mInputMethodManager = (InputMethodManager)
+                mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
+        mContainerView = containerView;
+        mAppsRecyclerView = appsRecyclerView;
+    }
+
+    @Override
+    public View getView(ViewGroup parent) {
+        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
+        mSearchView = inflater.inflate(R.layout.all_apps_search_bar, parent, false);
+        mSearchView.setOnClickListener(this);
+
+        mSearchButtonView = mSearchView.findViewById(R.id.search_button);
+        mSearchBarContainerView = mSearchView.findViewById(R.id.search_container);
+        mDismissSearchButtonView = mSearchBarContainerView.findViewById(R.id.dismiss_search_button);
+        mDismissSearchButtonView.setOnClickListener(this);
+        mSearchBarEditView = (AllAppsSearchEditView)
+                mSearchBarContainerView.findViewById(R.id.search_box_input);
+        mSearchBarEditView.addTextChangedListener(this);
+        mSearchBarEditView.setOnEditorActionListener(this);
+        mSearchBarEditView.setOnBackKeyListener(
+                new AllAppsSearchEditView.OnBackKeyListener() {
+                    @Override
+                    public void onBackKey() {
+                        // Only hide the search field if there is no query, or if there
+                        // are no filtered results
+                        String query = Utilities.trim(
+                                mSearchBarEditView.getEditableText().toString());
+                        if (query.isEmpty() || mApps.hasNoFilteredResults()) {
+                            hideSearchField(true, mFocusRecyclerViewRunnable);
+                        }
+                    }
+                });
+        return mSearchView;
+    }
+
+    @Override
+    public void focusSearchField() {
+        mSearchBarEditView.requestFocus();
+        showSearchField();
+    }
+
+    @Override
+    public boolean isSearchFieldFocused() {
+        return mSearchBarEditView.isFocused();
+    }
+
+    @Override
+    protected void onInitialize() {
+        mSearchManager = new DefaultAppSearchAlgorithm(mApps.getApps());
+    }
+
+    @Override
+    public void reset() {
+        hideSearchField(false, null);
+    }
+
+    @Override
+    public boolean shouldShowPredictionBar() {
+        // Keep showing the prediction bar if the input query is empty
+        return mSearchBarEditView.getEditableText().toString().isEmpty();
+    }
+
+    @Override
+    public void onClick(View v) {
+        if (v == mSearchView) {
+            showSearchField();
+        } else if (v == mDismissSearchButtonView) {
+            hideSearchField(true, mFocusRecyclerViewRunnable);
+        }
+    }
+
+    @Override
+    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+        // Do nothing
+    }
+
+    @Override
+    public void onTextChanged(CharSequence s, int start, int before, int count) {
+        // Do nothing
+    }
+
+    @Override
+    public void afterTextChanged(final Editable s) {
+        String query = s.toString();
+        if (query.isEmpty()) {
+            mSearchManager.cancel(true);
+            mCb.clearSearchResult();
+        } else {
+            mSearchManager.cancel(false);
+            mSearchManager.doSearch(query, mCb);
+        }
+    }
+
+    @Override
+    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+        // Skip if we disallow app-launch-on-enter
+        if (!ALLOW_SINGLE_APP_LAUNCH) {
+            return false;
+        }
+        // Skip if it's not the right action
+        if (actionId != EditorInfo.IME_ACTION_DONE) {
+            return false;
+        }
+        // Skip if there isn't exactly one item
+        if (mApps.getSize() != 1) {
+            return false;
+        }
+        // If there is exactly one icon, then quick-launch it
+        List<AlphabeticalAppsList.AdapterItem> items = mApps.getAdapterItems();
+        for (int i = 0; i < items.size(); i++) {
+            AlphabeticalAppsList.AdapterItem item = items.get(i);
+            if (item.viewType == AllAppsGridAdapter.ICON_VIEW_TYPE) {
+                mAppsRecyclerView.getChildAt(i).performClick();
+                mInputMethodManager.hideSoftInputFromWindow(
+                        mContainerView.getWindowToken(), 0);
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Focuses the search field.
+     */
+    private void showSearchField() {
+        // Show the search bar and focus the search
+        final int translationX = Utilities.pxFromDp(SEARCH_TRANSLATION_X_DP,
+                mContext.getResources().getDisplayMetrics());
+        mSearchBarContainerView.setVisibility(View.VISIBLE);
+        mSearchBarContainerView.setAlpha(0f);
+        mSearchBarContainerView.setTranslationX(translationX);
+        mSearchBarContainerView.animate()
+                .alpha(1f)
+                .translationX(0)
+                .setDuration(FADE_IN_DURATION)
+                .withLayer()
+                .withEndAction(new Runnable() {
+                    @Override
+                    public void run() {
+                        mSearchBarEditView.requestFocus();
+                        mInputMethodManager.showSoftInput(mSearchBarEditView,
+                                InputMethodManager.SHOW_IMPLICIT);
+                    }
+                });
+        mSearchButtonView.animate()
+                .alpha(0f)
+                .translationX(-translationX)
+                .setDuration(FADE_OUT_DURATION)
+                .withLayer();
+    }
+
+    /**
+     * Unfocuses the search field.
+     */
+    @Thunk void hideSearchField(boolean animated, final Runnable postAnimationRunnable) {
+        mSearchManager.cancel(true);
+
+        final boolean resetTextField = mSearchBarEditView.getText().toString().length() > 0;
+        final int translationX = Utilities.pxFromDp(SEARCH_TRANSLATION_X_DP,
+                mContext.getResources().getDisplayMetrics());
+        if (animated) {
+            // Hide the search bar and focus the recycler view
+            mSearchBarContainerView.animate()
+                    .alpha(0f)
+                    .translationX(0)
+                    .setDuration(FADE_IN_DURATION)
+                    .withLayer()
+                    .withEndAction(new Runnable() {
+                        @Override
+                        public void run() {
+                            mSearchBarContainerView.setVisibility(View.INVISIBLE);
+                            if (resetTextField) {
+                                mSearchBarEditView.setText("");
+                            }
+                            mCb.clearSearchResult();
+                            if (postAnimationRunnable != null) {
+                                postAnimationRunnable.run();
+                            }
+                        }
+                    });
+            mSearchButtonView.setTranslationX(-translationX);
+            mSearchButtonView.animate()
+                    .alpha(1f)
+                    .translationX(0)
+                    .setDuration(FADE_OUT_DURATION)
+                    .withLayer();
+        } else {
+            mSearchBarContainerView.setVisibility(View.INVISIBLE);
+            if (resetTextField) {
+                mSearchBarEditView.setText("");
+            }
+            mCb.clearSearchResult();
+            mSearchButtonView.setAlpha(1f);
+            mSearchButtonView.setTranslationX(0f);
+            if (postAnimationRunnable != null) {
+                postAnimationRunnable.run();
+            }
+        }
+        mInputMethodManager.hideSoftInputFromWindow(mContainerView.getWindowToken(), 0);
+    }
+}
diff --git a/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java b/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java
index a64c705..f7f4b7e 100644
--- a/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java
+++ b/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java
@@ -87,7 +87,8 @@
     }
 
     @Override
-    public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap, int imageHeight) {
+    public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap,
+            int imageHeight) {
         return bitmap;
     }
 }
diff --git a/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java b/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
index 96ace84..13712d8 100644
--- a/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
+++ b/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
@@ -108,7 +108,8 @@
     }
 
     @Override
-    public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap, int imageHeight) {
+    public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap,
+            int imageHeight) {
         if (info.isCustomWidget || info.getProfile().equals(android.os.Process.myUserHandle())) {
             return bitmap;
         }
@@ -116,15 +117,14 @@
         // Add a user badge in the bottom right of the image.
         final Resources res = mContext.getResources();
         final int badgeSize = res.getDimensionPixelSize(R.dimen.profile_badge_size);
-        final int badgeMargin = res.getDimensionPixelSize(R.dimen.profile_badge_margin);
         final int badgeMinTop = res.getDimensionPixelSize(R.dimen.profile_badge_minimum_top);
         final Rect badgeLocation = new Rect(0, 0, badgeSize, badgeSize);
 
-        final int top = Math.max(imageHeight - badgeSize - badgeMargin, badgeMinTop);
+        final int top = Math.max(imageHeight - badgeSize, badgeMinTop);
         if (res.getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
-            badgeLocation.offset(badgeMargin, top);
+            badgeLocation.offset(0, top);
         } else {
-            badgeLocation.offset(bitmap.getWidth() - badgeSize - badgeMargin, top);
+            badgeLocation.offset(bitmap.getWidth() - badgeSize, top);
         }
 
         Drawable drawable = mPm.getUserBadgedDrawableForDensity(
diff --git a/src/com/android/launcher3/compat/UserHandleCompat.java b/src/com/android/launcher3/compat/UserHandleCompat.java
index d8e60b8..ab4b721 100644
--- a/src/com/android/launcher3/compat/UserHandleCompat.java
+++ b/src/com/android/launcher3/compat/UserHandleCompat.java
@@ -41,7 +41,7 @@
         }
     }
 
-    static UserHandleCompat fromUser(UserHandle user) {
+    public static UserHandleCompat fromUser(UserHandle user) {
         if (user == null) {
             return null;
         } else {
diff --git a/src/com/android/launcher3/widget/WidgetsContainerView.java b/src/com/android/launcher3/widget/WidgetsContainerView.java
index 51f2a5f..500311a 100644
--- a/src/com/android/launcher3/widget/WidgetsContainerView.java
+++ b/src/com/android/launcher3/widget/WidgetsContainerView.java
@@ -66,6 +66,7 @@
     private IconCache mIconCache;
 
     /* Recycler view related member variables */
+    private View mContent;
     private WidgetsRecyclerView mView;
     private WidgetsListAdapter mAdapter;
 
@@ -98,6 +99,7 @@
 
     @Override
     protected void onFinishInflate() {
+        mContent = findViewById(R.id.content);
         mView = (WidgetsRecyclerView) findViewById(R.id.widgets_list_view);
         mView.setAdapter(mAdapter);
 
@@ -112,7 +114,6 @@
         });
         mPadding.set(getPaddingLeft(), getPaddingTop(), getPaddingRight(),
                 getPaddingBottom());
-        onUpdatePaddings();
     }
 
     //
@@ -335,33 +336,18 @@
     //
 
     @Override
-    protected void onUpdatePaddings() {
-        if (mFixedBounds.isEmpty()) {
-            // If there are no fixed bounds, then use the default padding and insets
-            setPadding(mPadding.left + mInsets.left, mPadding.top + mInsets.top,
-                    mPadding.right + mInsets.right, mPadding.bottom + mInsets.bottom);
-        } else {
-            // If there are fixed bounds, then we update the padding to reflect the fixed bounds.
-            setPadding(mFixedBounds.left, mFixedBounds.top, getMeasuredWidth() - mFixedBounds.right,
-                    mFixedBounds.bottom);
-        }
+    protected void onUpdateBackgroundAndPaddings(Rect searchBarBounds, Rect padding) {
+        // Apply the top-bottom padding to the content itself so that the launcher transition is
+        // clipped correctly
+        mContent.setPadding(0, padding.top, 0, padding.bottom);
 
-        int inset = mFixedBounds.isEmpty() ? mView.getScrollbarWidth() : mFixedBoundsContainerInset;
-        mView.setPadding(inset + mView.getScrollbarWidth(), inset,
-                inset, inset);
-    }
-
-    @Override
-    protected void onUpdateBackgrounds() {
-        InsetDrawable background;
-        // Update the background of the reveal view and list to be inset with the fixed bound
-        // insets instead of the default insets
-        // TODO: Use quantum_panel instead of quantum_panel_shape.
-        int inset = mFixedBounds.isEmpty() ? mView.getScrollbarWidth() : mFixedBoundsContainerInset;
-        background = new InsetDrawable(
-                getContext().getResources().getDrawable(R.drawable.quantum_panel_shape),
-                inset, 0, inset, 0);
-        mView.updateBackgroundPadding(background);
+        // TODO: Use quantum_panel_dark instead of quantum_panel_shape_dark.
+        InsetDrawable background = new InsetDrawable(
+                getResources().getDrawable(R.drawable.quantum_panel_shape_dark), padding.left, 0,
+                padding.right, 0);
+        mView.setBackground(background);
+        getRevealView().setBackground(background.getConstantState().newDrawable());
+        mView.updateBackgroundPadding(padding);
     }
 
     /**
diff --git a/src/com/android/launcher3/widget/WidgetsRecyclerView.java b/src/com/android/launcher3/widget/WidgetsRecyclerView.java
index 9d265f8..fa7e2f0 100644
--- a/src/com/android/launcher3/widget/WidgetsRecyclerView.java
+++ b/src/com/android/launcher3/widget/WidgetsRecyclerView.java
@@ -18,11 +18,9 @@
 
 import android.content.Context;
 import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
 import android.support.v7.widget.LinearLayoutManager;
 import android.util.AttributeSet;
 import android.view.View;
-
 import com.android.launcher3.BaseRecyclerView;
 import com.android.launcher3.Utilities;
 import com.android.launcher3.model.WidgetsModel;
@@ -35,7 +33,6 @@
 
     private static final String TAG = "WidgetsRecyclerView";
     private WidgetsModel mWidgets;
-    private Rect mBackgroundPadding = new Rect();
 
     public WidgetsRecyclerView(Context context) {
         this(context, null);
@@ -61,10 +58,6 @@
         addOnItemTouchListener(this);
     }
 
-    public void updateBackgroundPadding(Drawable background) {
-        background.getPadding(mBackgroundPadding);
-    }
-
     /**
      * Sets the widget model in this view, used to determine the fast scroll position.
      */