diff --git a/res/values-ar-xlarge/strings.xml b/res/values-ar-xlarge/strings.xml
index a395b6c..166bbbe 100644
--- a/res/values-ar-xlarge/strings.xml
+++ b/res/values-ar-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"تحديد خلفية"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"إلغاء"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 500c78b..7e8d1a7 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"تحديد مجلد"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"التطبيقات"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"الرئيسية"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"إزالة"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"إضافة"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"إدارة التطبيقات"</string>
diff --git a/res/values-bg-xlarge/strings.xml b/res/values-bg-xlarge/strings.xml
index 163b110..61f4d53 100644
--- a/res/values-bg-xlarge/strings.xml
+++ b/res/values-bg-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Избор на тапет"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Отказ"</string>
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 41ff383..8028517 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Избор на папка"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Приложения"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Начало"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Премахване"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Добавяне"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Управление на приложенията"</string>
diff --git a/res/values-ca-xlarge/strings.xml b/res/values-ca-xlarge/strings.xml
index 67ad78d..8895627 100644
--- a/res/values-ca-xlarge/strings.xml
+++ b/res/values-ca-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Seleccionar un fons de pantalla"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Cancel·la"</string>
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index ff474c3..bad77d7 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Selecció d\'una carpeta"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Aplicacions"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Pàgina d\'inici"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Elimina"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Afegeix"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Gestiona les aplicacions"</string>
diff --git a/res/values-cs-xlarge/strings.xml b/res/values-cs-xlarge/strings.xml
index 1991f9b..db4d82f 100644
--- a/res/values-cs-xlarge/strings.xml
+++ b/res/values-cs-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Výběr tapety"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Zrušit"</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index a5fb332..5044e17 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Vybrat složku"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Aplikace"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Plocha"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Odebrat"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Přidat"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Spravovat aplikace"</string>
diff --git a/res/values-da-xlarge/strings.xml b/res/values-da-xlarge/strings.xml
index 3c9d0f5..db6bc20 100644
--- a/res/values-da-xlarge/strings.xml
+++ b/res/values-da-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Vælg tapet"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Annuller"</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 898d422..d437ea3 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Vælg mappe"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Programmer"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Start"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Fjern"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Tilføj"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Administrer programmer"</string>
diff --git a/res/values-de-xlarge/strings.xml b/res/values-de-xlarge/strings.xml
index 330db8b..148a9af 100644
--- a/res/values-de-xlarge/strings.xml
+++ b/res/values-de-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Hintergrund auswählen"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Abbrechen"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 0e2199c..109cf31 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Ordner auswählen"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Anwendungen"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Startseite"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Entfernen"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Hinzufügen"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Apps verwalten"</string>
diff --git a/res/values-el-xlarge/strings.xml b/res/values-el-xlarge/strings.xml
index 0cdf680..6a531b0 100644
--- a/res/values-el-xlarge/strings.xml
+++ b/res/values-el-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Επιλογή ταπετσαρίας"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Ακύρωση"</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index a07a6fe..562bf72 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Επιλογή φακέλου"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Εφαρμογές"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Αρχική σελίδα"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Κατάργηση"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Προσθήκη"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Διαχείριση εφαρμογών"</string>
diff --git a/res/values-en-rGB-xlarge/strings.xml b/res/values-en-rGB-xlarge/strings.xml
index 86a7e03..6e67565 100644
--- a/res/values-en-rGB-xlarge/strings.xml
+++ b/res/values-en-rGB-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Select wallpaper"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Cancel"</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index c7686ef..fb1e6e0 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Select folder"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Apps"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Home"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Remove"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Add"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Manage apps"</string>
diff --git a/res/values-es-rUS-xlarge/strings.xml b/res/values-es-rUS-xlarge/strings.xml
index 68b2f56..7c8b273 100644
--- a/res/values-es-rUS-xlarge/strings.xml
+++ b/res/values-es-rUS-xlarge/strings.xml
@@ -26,13 +26,17 @@
     <!-- XL -->
     <string name="all_apps_home_button_label" msgid="4573985169183891042">"Pantalla principal"</string>
     <!-- XL -->
+    <string name="delete_zone_label_workspace" msgid="7170653385628744300">"Eliminar"</string>
+    <!-- XL -->
     <string name="menu_wallpaper" msgid="7079815810001779627">"Fondo de pantalla"</string>
     <!-- XL -->
     <string name="permlab_uninstall_shortcut" msgid="9081019297773923949">"desinstalar accesos directos"</string>
     <!-- XL -->
-    <string name="delete_zone_label_workspace" msgid="7170653385628744300">"Eliminar"</string>
+    <string name="delete_zone_label_all_apps" msgid="192778192843793957">"Desinstalar"</string>
     <!-- XL xlarge -->
     <string name="wallpaper_dialog_title" msgid="8158909859337893047">"Seleccionar fondo de pantalla"</string>
     <!-- XL xlarge -->
     <string name="wallpaper_cancel" msgid="6726455585784483952">"Cancelar"</string>
+    <!-- XL xlarge -->
+    <string name="wallpaper_chooser_empty" msgid="8656678103211440583">"No hay fondos de pantalla disponibles"</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index c4ab925..8c338e7 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Seleccionar carpeta"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Aplicaciones"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Página principal"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Quitar"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Agregar"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Administrar aplicaciones"</string>
diff --git a/res/values-es-xlarge/strings.xml b/res/values-es-xlarge/strings.xml
index f73a394..371d017 100644
--- a/res/values-es-xlarge/strings.xml
+++ b/res/values-es-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Seleccionar fondo de pantalla"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Cancelar"</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 2f682be..38afc6e 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Seleccionar carpeta"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Aplicaciones"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Inicio"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Eliminar del  escritorio"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Añadir"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Administrar aplicaciones"</string>
diff --git a/res/values-fa-xlarge/strings.xml b/res/values-fa-xlarge/strings.xml
index 89da558..6a21a76 100644
--- a/res/values-fa-xlarge/strings.xml
+++ b/res/values-fa-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"انتخاب تصویر زمینه"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"لغو"</string>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index afff52a..56b08a7 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"انتخاب پوشه"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"برنامه های کاربردی"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"صفحه اصلی"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"حذف"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"افزودن"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"مدیریت برنامه ها"</string>
diff --git a/res/values-fi-xlarge/strings.xml b/res/values-fi-xlarge/strings.xml
index 500d725..fc09703 100644
--- a/res/values-fi-xlarge/strings.xml
+++ b/res/values-fi-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Valitse taustakuva"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Peruuta"</string>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 5478114..d883f0c 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Valitse kansio"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Sovellukset"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Etusivu"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Poista"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Lisää"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Hallinnoi sovelluksia"</string>
diff --git a/res/values-fr-xlarge/strings.xml b/res/values-fr-xlarge/strings.xml
index 6ca65ea..0c5d315 100644
--- a/res/values-fr-xlarge/strings.xml
+++ b/res/values-fr-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Sélectionner un fond d\'écran"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Annuler"</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 4b17674..b7e6805 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Sélectionner le dossier"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Applications"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Page d\'accueil"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Supprimer"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Ajouter"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Gérer les applications"</string>
diff --git a/res/values-hr-xlarge/strings.xml b/res/values-hr-xlarge/strings.xml
index 076f71b..7e4a299 100644
--- a/res/values-hr-xlarge/strings.xml
+++ b/res/values-hr-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Odaberite pozadinsku sliku"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Odustani"</string>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 590c73a..17583f7 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Odaberite mapu"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Aplikacije"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Početna"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Ukloni"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Dodaj"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Upravljaj aplikacijama"</string>
diff --git a/res/values-hu-xlarge/strings.xml b/res/values-hu-xlarge/strings.xml
index 9d799c8..6040a51 100644
--- a/res/values-hu-xlarge/strings.xml
+++ b/res/values-hu-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Háttérkép kiválasztása"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Mégse"</string>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 20ae0b0..8523e3c 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Mappa kiválasztása"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Alkalmazások"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Főoldal"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Eltávolítás"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Hozzáadás"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Alkalmazások kezelése"</string>
diff --git a/res/values-in-xlarge/strings.xml b/res/values-in-xlarge/strings.xml
index d6ad561..5a948eb 100644
--- a/res/values-in-xlarge/strings.xml
+++ b/res/values-in-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Pilih wallpaper"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Batal"</string>
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 20e5503..367ac44 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Pilih map"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Apps"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Rumah"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Hapus"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Tambahkan"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Mengelola aplikasi"</string>
diff --git a/res/values-it-xlarge/strings.xml b/res/values-it-xlarge/strings.xml
index 2f0ee4a..155020a 100644
--- a/res/values-it-xlarge/strings.xml
+++ b/res/values-it-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Seleziona sfondo"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Annulla"</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 1aeb8d5..2e0ab83 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Seleziona cartella"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Applicazioni"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Home"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Rimuovi"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Aggiungi"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Gestisci applicazioni"</string>
diff --git a/res/values-iw-xlarge/strings.xml b/res/values-iw-xlarge/strings.xml
index 55c3bef..64ab87e 100644
--- a/res/values-iw-xlarge/strings.xml
+++ b/res/values-iw-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"בחר טפט"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"ביטול"</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 8112466..2fedde5 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"בחר תיקיה"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"יישומים"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"דף הבית"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"הסר"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"הוסף"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"נהל יישומים"</string>
diff --git a/res/values-ja-xlarge/strings.xml b/res/values-ja-xlarge/strings.xml
index 6e40f03..85e3b6c 100644
--- a/res/values-ja-xlarge/strings.xml
+++ b/res/values-ja-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"壁紙の選択"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"キャンセル"</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index de1db40..42feec2 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"フォルダの選択"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"アプリ"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"ホーム"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"削除"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"追加"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"アプリの管理"</string>
diff --git a/res/values-ko-xlarge/strings.xml b/res/values-ko-xlarge/strings.xml
index f8d7cba..a9d9faa 100644
--- a/res/values-ko-xlarge/strings.xml
+++ b/res/values-ko-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"배경화면 선택"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"취소"</string>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 664e538..6f601e9 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"폴더 선택"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"애플리케이션"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"홈"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"삭제"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"추가"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"애플리케이션 관리"</string>
diff --git a/res/values-lt-xlarge/strings.xml b/res/values-lt-xlarge/strings.xml
index 93b4da1..fc528cf 100644
--- a/res/values-lt-xlarge/strings.xml
+++ b/res/values-lt-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Pasirinkti darbalaukio foną"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Atšaukti"</string>
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 20b5802..df059e3 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Pasirinkti aplanką"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Apps"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Pagrindinis"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Pašalinti"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Pridėti"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Valdyti programas"</string>
diff --git a/res/values-lv-xlarge/strings.xml b/res/values-lv-xlarge/strings.xml
index 12353c6..b0740c2 100644
--- a/res/values-lv-xlarge/strings.xml
+++ b/res/values-lv-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Fona tapetes atlase"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Atcelt"</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 3a81dd9..1a18274 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Mapes atlase"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Lietotnes"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Sākums"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Noņemt"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Pievienot"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Lietotņu pārvaldība"</string>
diff --git a/res/values-nb-xlarge/strings.xml b/res/values-nb-xlarge/strings.xml
index dfa5b1b..2ff2c52 100644
--- a/res/values-nb-xlarge/strings.xml
+++ b/res/values-nb-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Velg bakgrunnsbilde"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Avbryt"</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 42bfd71..046befb 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Velg mappe"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Programmer"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Startsiden"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Fjern"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Legg til"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Administrer programmer"</string>
diff --git a/res/values-nl-xlarge/strings.xml b/res/values-nl-xlarge/strings.xml
index d466c40..bf332da 100644
--- a/res/values-nl-xlarge/strings.xml
+++ b/res/values-nl-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Achtergrond selecteren"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Annuleren"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 48fd415..05fd413 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Map selecteren"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Toepassingen"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Startpagina"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Verwijderen"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Toevoegen"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Toepassingen beheren"</string>
diff --git a/res/values-pl-xlarge/strings.xml b/res/values-pl-xlarge/strings.xml
index 2b6066d..e36c6d1 100644
--- a/res/values-pl-xlarge/strings.xml
+++ b/res/values-pl-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Wybierz tapetę"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Anuluj"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index eb873c9..8a21c89 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Wybierz folder"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Aplikacje"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Ekran główny"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Usuń"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Dodaj"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Zarządzaj aplikacjami"</string>
diff --git a/res/values-pt-rPT-xlarge/strings.xml b/res/values-pt-rPT-xlarge/strings.xml
index e6fcfde..05e769d 100644
--- a/res/values-pt-rPT-xlarge/strings.xml
+++ b/res/values-pt-rPT-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Seleccionar imagem de fundo"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Cancelar"</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 054422d..05d424f 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Seleccione a pasta"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Aplicações"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Página inicial"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Remover"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Adicionar"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Gerir aplicações"</string>
diff --git a/res/values-pt-xlarge/strings.xml b/res/values-pt-xlarge/strings.xml
index fdc8735..2f98ec2 100644
--- a/res/values-pt-xlarge/strings.xml
+++ b/res/values-pt-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Selecionar plano de fundo"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Cancelar"</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 093e4c8..a6de464 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Selecionar pasta"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Aplicativos"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Página inicial"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Remover"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Adicionar"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Gerenciar aplicativos"</string>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index f2d319f..84c57ab 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -81,7 +81,7 @@
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Pagina da partenza"</string>
     <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
     <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Agiuntar"</string>
     <!-- no translation found for menu_manage_apps (2308685199463588895) -->
diff --git a/res/values-ro-xlarge/strings.xml b/res/values-ro-xlarge/strings.xml
index b94f344..da4f632 100644
--- a/res/values-ro-xlarge/strings.xml
+++ b/res/values-ro-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Selectaţi o imagine de fundal"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Anulaţi"</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 249bb0b..0ff128d 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Selectaţi dosarul"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Aplicaţii"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Domiciliu"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Eliminaţi"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Adăugaţi"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Gestionaţi aplicaţii"</string>
diff --git a/res/values-ru-xlarge/strings.xml b/res/values-ru-xlarge/strings.xml
index c6f10eb..e06c171 100644
--- a/res/values-ru-xlarge/strings.xml
+++ b/res/values-ru-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Выберите обои"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Отмена"</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index ace7471..fa96ed1 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Выбор папки"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Приложения"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Главная"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Удалить"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Добавить"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Управление приложениями"</string>
diff --git a/res/values-sk-xlarge/strings.xml b/res/values-sk-xlarge/strings.xml
index f2e695b..22eb019 100644
--- a/res/values-sk-xlarge/strings.xml
+++ b/res/values-sk-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Výber tapety"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Zrušiť"</string>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index ad3e268..4a1510e 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Vyberte priečinok"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Aplikácie"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Domovská stránka"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Odstrániť"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Pridať"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Spravovať aplikácie"</string>
diff --git a/res/values-sl-xlarge/strings.xml b/res/values-sl-xlarge/strings.xml
index 0390a3a..ba5bb1a 100644
--- a/res/values-sl-xlarge/strings.xml
+++ b/res/values-sl-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Izberite sliko za ozadje"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Prekliči"</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index cf9df5a..12faa89 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Izberite mapo"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Programi"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Začetni zaslon"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Odstrani"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Dodaj"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Upravljaj programe"</string>
diff --git a/res/values-sr-xlarge/strings.xml b/res/values-sr-xlarge/strings.xml
index 00af478..b9718ee 100644
--- a/res/values-sr-xlarge/strings.xml
+++ b/res/values-sr-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Избор позадине"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Откажи"</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 6e8201c..d10441b 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -66,7 +66,7 @@
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Почетна"</string>
     <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
     <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Додај"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Управљање апликацијама"</string>
diff --git a/res/values-sv-xlarge/strings.xml b/res/values-sv-xlarge/strings.xml
index 23cb524..be6e332 100644
--- a/res/values-sv-xlarge/strings.xml
+++ b/res/values-sv-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Välj bakgrund"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Avbryt"</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 6a0e6f3..48bcc61 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Välj mapp"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Program"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Startsida"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Ta bort"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Lägg till"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Hantera appar"</string>
diff --git a/res/values-th-xlarge/strings.xml b/res/values-th-xlarge/strings.xml
index 8de37c0..cddd691 100644
--- a/res/values-th-xlarge/strings.xml
+++ b/res/values-th-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"เลือกวอลเปเปอร์"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"ยกเลิก"</string>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index c2f9cf7..ee87923 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"เลือกโฟลเดอร์"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"แอปพลิเคชัน"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"บ้าน"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"นำออก"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"เพิ่ม"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"จัดการแอปพลิเคชัน"</string>
diff --git a/res/values-tl-xlarge/strings.xml b/res/values-tl-xlarge/strings.xml
index 9dce1ed..3a62bfa 100644
--- a/res/values-tl-xlarge/strings.xml
+++ b/res/values-tl-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Pumili ng wallpaper"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Kanselahin"</string>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 3eabccf..38487c3 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Pumili ng folder"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Apps"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Home"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Alisin"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Idagdag"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Pamahalaan ang apps"</string>
diff --git a/res/values-tr-xlarge/strings.xml b/res/values-tr-xlarge/strings.xml
index 2d12084..de15082 100644
--- a/res/values-tr-xlarge/strings.xml
+++ b/res/values-tr-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Duvar kağıdı seçin"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"İptal"</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 288f2ec..a9061b4 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Klasörü seçin"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Uygulamalar"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Ana Sayfa"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Kaldır"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Ekle"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Uyglm yönet"</string>
diff --git a/res/values-uk-xlarge/strings.xml b/res/values-uk-xlarge/strings.xml
index c8d8b56..ff39953 100644
--- a/res/values-uk-xlarge/strings.xml
+++ b/res/values-uk-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Вибрати фоновий малюнок"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Скасувати"</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index adcf7a0..e7f638e 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -66,7 +66,7 @@
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Головна"</string>
     <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
     <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Додати"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Керув. прогр."</string>
diff --git a/res/values-vi-xlarge/strings.xml b/res/values-vi-xlarge/strings.xml
index 0eebe96..a2f56ab 100644
--- a/res/values-vi-xlarge/strings.xml
+++ b/res/values-vi-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Chọn hình nền"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"Hủy"</string>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index f038bfb..78b7549 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"Chọn thư mục"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Ứng dụng"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Màn hình trang chủ"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Xóa"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"Thêm"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"Quản lý ứng dụng"</string>
diff --git a/res/values-xlarge/config.xml b/res/values-xlarge/config.xml
index 8a103a3..5a38e08 100644
--- a/res/values-xlarge/config.xml
+++ b/res/values-xlarge/config.xml
@@ -9,7 +9,7 @@
 
     <!-- Duration in milliseconds of the all apps / configuration zoom-in animation. -->
     <!-- NB: This should be less than the workspaceShrinkTime as they happen together. -->
-    <integer name="config_allAppsZoomInTime">700</integer>
+    <integer name="config_allAppsZoomInTime">850</integer>
 
     <!-- Duration in milliseconds of the transition between tabs in the all apps/customize
          tray -->
@@ -17,17 +17,29 @@
 
     <!-- Duration in milliseconds of the all apps zoom-out animation -->
     <!-- NB: This should be less than the workspaceUnshrinkTime as they happen together. -->
-    <integer name="config_allAppsZoomOutTime">350</integer>
+    <integer name="config_allAppsZoomOutTime">500</integer>
 
     <!-- Scaling factor used in the all apps zooming animations -->
-    <integer name="config_allAppsZoomScaleFactor">7</integer>
+    <integer name="config_allAppsZoomScaleFactor">10</integer>
+
+    <!-- Duration in milliseconds of the all apps / configuration zoom-in animation. -->
+    <!-- NB: This should be less than the workspaceShrinkTime as they happen together. -->
+    <integer name="config_customizeZoomInTime">700</integer>
+
+    <!-- Duration in milliseconds of the all apps zoom-out animation -->
+    <!-- NB: This should be less than the workspaceUnshrinkTime as they happen together. -->
+    <integer name="config_customizeZoomOutTime">350</integer>
+
+    <!-- Scaling factor used in the all apps zooming animations -->
+    <integer name="config_customizeZoomScaleFactor">7</integer>
 
     <!-- Duration in milliseconds of the animations between all apps, customize, & home.
          NOTE: If these are changed, the toolbar animation times below should also be. -->
     <integer name="config_allAppsCameraPanTime">700</integer>
-    <integer name="config_workspaceShrinkTime">700</integer>
-    <integer name="config_workspaceUnshrinkTime">350</integer>
     <integer name="config_allAppsFadeOutTime">150</integer>
+    <integer name="config_customizeWorkspaceShrinkTime">700</integer>
+    <integer name="config_allAppsWorkspaceShrinkTime">800</integer>
+    <integer name="config_workspaceUnshrinkTime">350</integer>
 
     <!-- Duration in milliseconds toolbar fade in and fade out animations.
          NOTE: Fade in and fade out time should together be less the transition
diff --git a/res/values-zh-rCN-xlarge/strings.xml b/res/values-zh-rCN-xlarge/strings.xml
index 35c523f..da36470 100644
--- a/res/values-zh-rCN-xlarge/strings.xml
+++ b/res/values-zh-rCN-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"选择壁纸"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"取消"</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index f009145..2e11b05 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"选择文件夹"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"应用程序"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"主屏幕"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"删除"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"添加"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"管理应用程序"</string>
diff --git a/res/values-zh-rTW-xlarge/strings.xml b/res/values-zh-rTW-xlarge/strings.xml
index d2bf8d4..ae7f749 100644
--- a/res/values-zh-rTW-xlarge/strings.xml
+++ b/res/values-zh-rTW-xlarge/strings.xml
@@ -20,5 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wallpaper_dialog_title" msgid="5764793286524787718">"選取桌布"</string>
+    <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
+    <skip />
     <string name="wallpaper_cancel" msgid="6502936522490675611">"取消"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index adc425e..da4a7c7 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -45,7 +45,7 @@
     <string name="rename_folder_title" msgid="4544573104191526550">"重新命名資料夾"</string>
     <string name="rename_action" msgid="6016003384693240896">"確定"</string>
     <string name="cancel_action" msgid="3811860427489435048">"取消"</string>
-    <string name="menu_item_add_item" msgid="6233177331075781114">"新增至主畫面"</string>
+    <string name="menu_item_add_item" msgid="6233177331075781114">"新增至主螢幕"</string>
     <string name="group_applications" msgid="4118484163419674240">"應用程式"</string>
     <string name="group_shortcuts" msgid="9133529424900391877">"捷徑"</string>
     <string name="group_folder" msgid="5143593791798929193">"新資料夾"</string>
@@ -55,7 +55,7 @@
     <string name="add_folder" msgid="3521088587367839879">"資料夾"</string>
     <string name="add_clock" msgid="2337943840175865746">"時鐘"</string>
     <string name="add_photo_frame" msgid="3154058437359487954">"相框"</string>
-    <string name="out_of_space" msgid="8365249326091984698">"首頁已無空間"</string>
+    <string name="out_of_space" msgid="8365249326091984698">"主螢幕已無空間"</string>
     <string name="shortcut_installed" msgid="7071557296331322355">"已建立「<xliff:g id="NAME">%s</xliff:g>」捷徑。"</string>
     <string name="shortcut_uninstalled" msgid="2129499669449749995">"已移除「<xliff:g id="NAME">%s</xliff:g>」捷徑。"</string>
     <string name="shortcut_duplicate" msgid="4757756326465060694">"「<xliff:g id="NAME">%s</xliff:g>」捷徑已經存在。"</string>
@@ -64,9 +64,8 @@
     <string name="title_select_live_folder" msgid="3753447798805166749">"選取資料夾"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"應用程式"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"主螢幕"</string>
-    <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (2536335964588694907) -->
+    <string name="delete_zone_label_workspace" msgid="7153615831493049150">"移除"</string>
+    <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
     <skip />
     <string name="menu_add" msgid="3065046628354640854">"新增"</string>
     <string name="menu_manage_apps" msgid="2308685199463588895">"管理應用程式"</string>
@@ -85,10 +84,10 @@
     <string name="permdesc_install_shortcut" msgid="7429365847558984148">"允許應用程式自動新增快速鍵。"</string>
     <string name="permlab_uninstall_shortcut" msgid="7696645932555926449">"解除安裝捷徑"</string>
     <string name="permdesc_uninstall_shortcut" msgid="959972195916090900">"允許應用程式自動移除捷徑。"</string>
-    <string name="permlab_read_settings" msgid="3452408290738106747">"讀取首頁設定和捷徑"</string>
-    <string name="permdesc_read_settings" msgid="8377434937176025492">"允許應用程式讀取首頁中的設定和捷徑。"</string>
-    <string name="permlab_write_settings" msgid="1360567537236705628">"寫入首頁設定和捷徑"</string>
-    <string name="permdesc_write_settings" msgid="1098648778383349818">"允許應用程式變更首頁中的設定和捷徑。"</string>
+    <string name="permlab_read_settings" msgid="3452408290738106747">"讀取主螢幕設定和捷徑"</string>
+    <string name="permdesc_read_settings" msgid="8377434937176025492">"允許應用程式讀取主螢幕中的設定和捷徑。"</string>
+    <string name="permlab_write_settings" msgid="1360567537236705628">"寫入主螢幕設定和捷徑"</string>
+    <string name="permdesc_write_settings" msgid="1098648778383349818">"允許應用程式變更主螢幕中的設定和捷徑。"</string>
     <string name="gadget_error_text" msgid="8359351016167075858">"載入小工具時發生問題"</string>
     <string name="uninstall_system_app_text" msgid="7488523163288397451">"這是系統應用程式，無法將其解除安裝。"</string>
 </resources>
diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java
index 4d1dbf8..f3aa342 100644
--- a/src/com/android/launcher2/BubbleTextView.java
+++ b/src/com/android/launcher2/BubbleTextView.java
@@ -37,7 +37,7 @@
  * because we want to make the bubble taller than the text and TextView's clip is
  * too aggressive.
  */
-public class BubbleTextView extends CacheableTextView implements VisibilityChangedBroadcaster {
+public class BubbleTextView extends CachedTextView implements VisibilityChangedBroadcaster {
     static final float CORNER_RADIUS = 4.0f;
     static final float SHADOW_LARGE_RADIUS = 4.0f;
     static final float SHADOW_SMALL_RADIUS = 1.75f;
@@ -118,7 +118,6 @@
                 new FastBitmapDrawable(b),
                 null, null);
         setText(info.title);
-        buildAndEnableCache();
         setTag(info);
     }
 
diff --git a/src/com/android/launcher2/CacheableTextView.java b/src/com/android/launcher2/CacheableTextView.java
deleted file mode 100644
index da2f302..0000000
--- a/src/com/android/launcher2/CacheableTextView.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (C) 2010 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.launcher2;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Bitmap.Config;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.text.Layout;
-import android.util.AttributeSet;
-import android.widget.TextView;
-
-/*
- * This class is a bit of a hack, designed to speed up long text labels in Launcher. It caches the
- * text in a TextView to a bitmap and then just draws that Bitmap instead afterward, speeding up
- * rendering. Marquee scrolling is not currently supported.
- *
- */
-public class CacheableTextView extends TextView {
-    private Bitmap mCache;
-    private final Paint mCachePaint = new Paint();
-    private final Canvas mCacheCanvas = new Canvas();
-
-    private int mPrevAlpha = -1;
-    private boolean mIsBuildingCache;
-    boolean mWaitingToGenerateCache;
-    float mTextCacheLeft;
-    float mTextCacheTop;
-    float mTextCacheScrollX;
-    float mRectLeft, mRectTop;
-    private float mPaddingH = 0;
-    private float mPaddingV = 0;
-    private CharSequence mText;
-
-    public CacheableTextView(Context context) {
-        super(context);
-    }
-
-    public CacheableTextView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public CacheableTextView(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-    }
-
-    protected int getCacheTopPadding() {
-        return 0;
-    }
-    protected int getCacheLeftPadding() {
-        return 0;
-    }
-    protected int getCacheRightPadding() {
-        return 0;
-    }
-    protected int getCacheBottomPadding() {
-        return 0;
-    }
-
-    public void buildAndEnableCache() {
-        // Defers building the cache until the next draw to allow measuring
-        // and laying out.
-        buildAndEnableCache(false);
-    }
-
-    public void buildAndEnableCache(boolean isImmediate) {
-        if (getLayout() == null || !isImmediate) {
-            mWaitingToGenerateCache = true;
-            return;
-        }
-
-        final Layout layout = getLayout();
-        final int left = getCompoundPaddingLeft();
-        final int top = getExtendedPaddingTop();
-        final float prevAlpha = getAlpha();
-
-        mTextCacheLeft = layout.getLineLeft(0) - getCacheLeftPadding();
-        mTextCacheTop = top + layout.getLineTop(0) - mPaddingV - getCacheTopPadding();
-
-        mRectLeft = mScrollX + getLeft();
-        mRectTop = 0;
-        mTextCacheScrollX = mScrollX;
-
-        final float textCacheRight =
-            Math.min(left + layout.getLineRight(0) + mPaddingH, mScrollX + mRight - mLeft) +
-            getCacheRightPadding();
-        final float textCacheBottom = top + layout.getLineBottom(0) + mPaddingV +
-            getCacheBottomPadding();
-        final float xCharWidth = getPaint().measureText("x");
-
-        int width = (int) (textCacheRight - mTextCacheLeft + (2 * xCharWidth));
-        int height = (int) (textCacheBottom - mTextCacheTop);
-
-        if (width != 0 && height != 0) {
-            if (mCache != null) {
-                if (mCache.getWidth() != width || mCache.getHeight() != height) {
-                    mCache.recycle();
-                    mCache = null;
-                }
-            }
-            if (mCache == null) {
-                mCache = Bitmap.createBitmap(width, height, Config.ARGB_8888);
-                mCacheCanvas.setBitmap(mCache);
-            } else {
-                mCacheCanvas.drawColor(0x00000000);
-            }
-
-            mCacheCanvas.save();
-            mCacheCanvas.translate(-mTextCacheLeft, -mTextCacheTop);
-
-            mIsBuildingCache = true;
-            setAlpha(1.0f);
-            draw(mCacheCanvas);
-            setAlpha(prevAlpha);
-            mIsBuildingCache = false;
-            mCacheCanvas.restore();
-
-            // A hack-- we set the text to be one space (we don't make it empty just to avoid any
-            // potential issues with text measurement, like line height, etc.) so that the text view
-            // doesn't draw it anymore, since it's been cached. We have to manually rebuild
-            // the cache whenever the text is changed (which is never in Launcher)
-            mText = getText();
-            setText(" ");
-        }
-    }
-
-    public CharSequence getText() {
-        return (mText == null) ? super.getText() : mText;
-    }
-
-    public void draw(Canvas canvas) {
-        if (mWaitingToGenerateCache && !mIsBuildingCache) {
-            buildAndEnableCache(true);
-            mWaitingToGenerateCache = false;
-        }
-        if (mCache != null && !mIsBuildingCache) {
-            canvas.drawBitmap(mCache, mTextCacheLeft - mTextCacheScrollX + mScrollX,
-                    mTextCacheTop, mCachePaint);
-        }
-        super.draw(canvas);
-    }
-
-    protected boolean isBuildingCache() {
-        return mIsBuildingCache;
-    }
-
-    @Override
-    protected boolean onSetAlpha(int alpha) {
-        if (mPrevAlpha != alpha) {
-            mPrevAlpha = alpha;
-            mCachePaint.setAlpha(alpha);
-            super.onSetAlpha(alpha);
-        }
-        return true;
-    }
-}
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index fd389ca..45de630 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -417,7 +417,7 @@
     }
 
     public void updateCache() {
-        mCacheCanvas.drawColor(0x00000000, Mode.CLEAR);
+        mCacheCanvas.drawColor(0, Mode.CLEAR);
 
         float alpha = getAlpha();
         setAlpha(1.0f);
@@ -625,6 +625,7 @@
             child.setId(childId);
 
             addView(child, index, lp);
+            child.setAlpha(getAlpha());
             if (child instanceof VisibilityChangedBroadcaster) {
                 VisibilityChangedBroadcaster v = (VisibilityChangedBroadcaster) child;
                 v.setVisibilityChangedListener(this);
@@ -972,6 +973,7 @@
             }
         }
         prepareCacheBitmap();
+        invalidateCache();
     }
 
     @Override
@@ -1388,7 +1390,9 @@
             lp.isDragging = false;
             lp.dropped = true;
             lp.animateDrop = animate;
-            child.setVisibility(View.INVISIBLE);
+            if (animate) {
+                child.setVisibility(View.INVISIBLE);
+            }
             child.requestLayout();
         }
     }
diff --git a/src/com/android/launcher2/HolographicOutlineHelper.java b/src/com/android/launcher2/HolographicOutlineHelper.java
index 6d0899d..1efc123 100644
--- a/src/com/android/launcher2/HolographicOutlineHelper.java
+++ b/src/com/android/launcher2/HolographicOutlineHelper.java
@@ -184,7 +184,7 @@
 
         // draw the inner and outer blur
         srcDstCanvas.setBitmap(srcDst);
-        srcDstCanvas.drawColor(0x00000000, PorterDuff.Mode.CLEAR);
+        srcDstCanvas.drawColor(0, PorterDuff.Mode.CLEAR);
         mHolographicPaint.setColor(color);
         srcDstCanvas.drawBitmap(thickInnerBlur, thickInnerBlurOffset[0], thickInnerBlurOffset[1],
                 mHolographicPaint);
diff --git a/src/com/android/launcher2/IconCache.java b/src/com/android/launcher2/IconCache.java
index ae8c98a..468645b 100644
--- a/src/com/android/launcher2/IconCache.java
+++ b/src/com/android/launcher2/IconCache.java
@@ -67,7 +67,7 @@
 
     public Drawable getFullResDefaultActivityIcon() {
         return getFullResIcon(Resources.getSystem(),
-                com.android.internal.R.drawable.sym_def_app_icon);
+                com.android.internal.R.mipmap.sym_def_app_icon);
     }
 
     public Drawable getFullResIcon(Resources resources, int iconId) {
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 7faa520..2281c84 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -27,13 +27,13 @@
 import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
 import android.animation.PropertyValuesHolder;
+import android.animation.TimeInterpolator;
 import android.animation.ValueAnimator;
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.SearchManager;
 import android.app.StatusBarManager;
-import android.app.WallpaperManager;
 import android.appwidget.AppWidgetManager;
 import android.appwidget.AppWidgetProviderInfo;
 import android.content.ActivityNotFoundException;
@@ -77,7 +77,6 @@
 import android.text.TextUtils;
 import android.text.method.TextKeyListener;
 import android.util.Log;
-import android.view.Display;
 import android.view.HapticFeedbackConstants;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
@@ -89,6 +88,7 @@
 import android.view.WindowManager;
 import android.view.View.OnLongClickListener;
 import android.view.accessibility.AccessibilityEvent;
+import android.view.animation.DecelerateInterpolator;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.Advanceable;
 import android.widget.EditText;
@@ -106,6 +106,7 @@
 import java.io.DataOutputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -308,7 +309,6 @@
 
         loadHotseats();
         checkForLocaleChange();
-        setWallpaperDimension();
         setContentView(R.layout.launcher);
         mHomeCustomizationDrawer = (TabHost) findViewById(R.id.customization_drawer);
         if (mHomeCustomizationDrawer != null) {
@@ -546,18 +546,6 @@
         }
     }
 
-    private void setWallpaperDimension() {
-        WallpaperManager wpm = (WallpaperManager)getSystemService(WALLPAPER_SERVICE);
-
-        Display display = getWindowManager().getDefaultDisplay();
-        // TODO: Put back when we decide about scrolling the wallpaper
-        // boolean isPortrait = display.getWidth() < display.getHeight();
-        // final int width = isPortrait ? display.getWidth() : display.getHeight();
-        // final int height = isPortrait ? display.getHeight() : display.getWidth();
-        wpm.suggestDesiredDimensions(Math.max(display.getWidth(), display.getHeight()),
-                Math.max(display.getWidth(), display.getHeight()));
-    }
-
     // Note: This doesn't do all the client-id magic that BrowserProvider does
     // in Browser. (http://b/2425179)
     private Uri getDefaultBrowserUri() {
@@ -1001,6 +989,7 @@
         workspace.setOnLongClickListener(this);
         workspace.setDragController(dragController);
         workspace.setLauncher(this);
+        workspace.setWallpaperDimension();
 
         deleteZone.setLauncher(this);
         deleteZone.setDragController(dragController);
@@ -1325,6 +1314,7 @@
                             (System.currentTimeMillis() - mAutoAdvanceSentTime));
                 }
                 mHandler.removeMessages(ADVANCE_MSG);
+                mHandler.removeMessages(0); // Remove messages sent using postDelayed()
             }
         }
     }
@@ -1425,8 +1415,10 @@
             }
             if (!mWorkspace.isDefaultPageShowing()) {
                 // on the phone, we don't animate the change to the workspace if all apps is visible
-                mWorkspace.moveToDefaultScreen(alreadyOnHome &&
-                        (LauncherApplication.isScreenXLarge() || mState != State.ALL_APPS));
+                boolean animate = alreadyOnHome &&
+                    (LauncherApplication.isScreenXLarge() || mState != State.ALL_APPS);
+                mWorkspace.moveToDefaultScreen(animate);
+                if (!animate) mWorkspace.updateWallpaperOffsetImmediately();
             }
             showWorkspace(alreadyOnHome);
 
@@ -1503,6 +1495,9 @@
         } catch (NullPointerException ex) {
             Log.w(TAG, "problem while stopping AppWidgetHost during Launcher destruction", ex);
         }
+        mAppWidgetHost = null;
+
+        mWidgetsToAdvance.clear();
 
         TextKeyListener.getInstance().release();
 
@@ -1521,6 +1516,11 @@
         }
 
         unregisterReceiver(mCloseSystemDialogsReceiver);
+
+        ((ViewGroup) mWorkspace.getParent()).removeAllViews();
+        mWorkspace.removeAllViews();
+        mWorkspace = null;
+        mDragController = null;
     }
 
     @Override
@@ -1987,6 +1987,7 @@
         for (ItemInfo item: mDesktopItems) {
             item.unbind();
         }
+        mDesktopItems.clear();
     }
 
     /**
@@ -2647,10 +2648,11 @@
         // Set pivotY so that at the starting zoom factor, the view is partially
         // visible. Modifying initialHeightFactor changes how much of the view is
         // initially showing, and hence the perceived angle from which the view enters.
-        final float initialHeightFactor = 0.2f;
         if (state == State.ALL_APPS) {
-            view.setPivotY((1 + initialHeightFactor) * height);
+            final float initialHeightFactor = 0.165f;
+            view.setPivotY((1 - initialHeightFactor) * height);
         } else {
+            final float initialHeightFactor = 0.2f;
             view.setPivotY(-initialHeightFactor * height);
         }
     }
@@ -2663,15 +2665,23 @@
      */
     private void cameraZoomOut(State toState, boolean animated) {
         final Resources res = getResources();
-        final int duration = res.getInteger(R.integer.config_allAppsZoomInTime);
-        final float scale = (float) res.getInteger(R.integer.config_allAppsZoomScaleFactor);
         final boolean toAllApps = (toState == State.ALL_APPS);
+
+        final int duration = toAllApps ?
+                res.getInteger(R.integer.config_allAppsZoomInTime) :
+                res.getInteger(R.integer.config_customizeZoomInTime);
+
+        final float scale = toAllApps ?
+                (float) res.getInteger(R.integer.config_allAppsZoomScaleFactor) :
+                (float) res.getInteger(R.integer.config_customizeZoomScaleFactor);
+
         final View toView = toAllApps ? (View) mAllAppsGrid : mHomeCustomizationDrawer;
 
         setPivotsForZoom(toView, toState, scale);
 
         if (toAllApps) {
             mWorkspace.shrink(ShrinkState.BOTTOM_HIDDEN, animated);
+            toView.setAlpha(0f);
         } else {
             mWorkspace.shrink(ShrinkState.TOP, animated);
         }
@@ -2680,8 +2690,17 @@
             ValueAnimator scaleAnim = ObjectAnimator.ofPropertyValuesHolder(toView,
                     PropertyValuesHolder.ofFloat("scaleX", scale, 1.0f),
                     PropertyValuesHolder.ofFloat("scaleY", scale, 1.0f));
+
             scaleAnim.setDuration(duration);
 
+            if (toAllApps) {
+                ObjectAnimator alphaAnim = ObjectAnimator.ofPropertyValuesHolder(toView,
+                        PropertyValuesHolder.ofFloat("alpha", 1.0f));
+                alphaAnim.setInterpolator(new DecelerateInterpolator(1.5f));
+                alphaAnim.setDuration(duration);
+                alphaAnim.start();
+            }
+
             scaleAnim.setInterpolator(new Workspace.ZoomOutInterpolator());
             scaleAnim.addListener(new AnimatorListenerAdapter() {
                 @Override
@@ -2690,7 +2709,9 @@
                     toView.setTranslationX(0.0f);
                     toView.setTranslationY(0.0f);
                     toView.setVisibility(View.VISIBLE);
-                    toView.setAlpha(1.0f);
+                    if (!toAllApps) {
+                        toView.setAlpha(1.0f);
+                    }
                 }
                 @Override
                 public void onAnimationEnd(Animator animation) {
@@ -2707,7 +2728,7 @@
             hideAndShowToolbarButtons(toState, toolbarShowAnim, toolbarHideAnim);
 
             // toView should appear right at the end of the workspace shrink animation
-            final int startDelay = res.getInteger(R.integer.config_workspaceShrinkTime) - duration;
+            final int startDelay = 0;
 
             if (mStateAnimation != null) mStateAnimation.cancel();
             mStateAnimation = new AnimatorSet();
@@ -2726,6 +2747,8 @@
             toView.setVisibility(View.VISIBLE);
             hideAndShowToolbarButtons(toState, null, null);
         }
+        mWorkspace.setVerticalWallpaperOffset(toAllApps ?
+                Workspace.WallpaperVerticalOffset.TOP  : Workspace.WallpaperVerticalOffset.BOTTOM);
     }
 
     /**
@@ -2740,10 +2763,17 @@
 
     private void cameraZoomIn(State fromState, boolean animated, boolean springLoaded) {
         Resources res = getResources();
-        int duration = res.getInteger(R.integer.config_allAppsZoomOutTime);
-        float scaleFactor = (float) res.getInteger(R.integer.config_allAppsZoomScaleFactor);
-        final View fromView =
-            (fromState == State.ALL_APPS) ? (View) mAllAppsGrid : mHomeCustomizationDrawer;
+        final boolean fromAllApps = (fromState == State.ALL_APPS);
+
+        int duration = fromAllApps ?
+            res.getInteger(R.integer.config_allAppsZoomOutTime) :
+            res.getInteger(R.integer.config_customizeZoomOutTime);
+
+        float scaleFactor = fromAllApps ?
+            (float) res.getInteger(R.integer.config_allAppsZoomScaleFactor) :
+            (float) res.getInteger(R.integer.config_customizeZoomScaleFactor);
+
+        final View fromView = fromAllApps ? (View) mAllAppsGrid : mHomeCustomizationDrawer;
 
         mCustomizePagedView.endChoiceMode();
         mAllAppsPagedView.endChoiceMode();
@@ -2766,6 +2796,7 @@
             ValueAnimator alphaAnim = ObjectAnimator.ofPropertyValuesHolder(fromView,
                     PropertyValuesHolder.ofFloat("alpha", 1.0f, 0.0f));
             alphaAnim.setDuration(res.getInteger(R.integer.config_allAppsFadeOutTime));
+            alphaAnim.setInterpolator(new DecelerateInterpolator(1.5f));
             alphaAnim.addListener(new AnimatorListenerAdapter() {
                 @Override
                 public void onAnimationEnd(Animator animation) {
@@ -2792,6 +2823,7 @@
                 hideAndShowToolbarButtons(State.WORKSPACE, null, null);
             }
         }
+        mWorkspace.setVerticalWallpaperOffset(Workspace.WallpaperVerticalOffset.MIDDLE);
     }
 
     /**
@@ -2869,6 +2901,8 @@
             toView.setVisibility(View.VISIBLE);
             hideAndShowToolbarButtons(toState, null, null);
         }
+        mWorkspace.setVerticalWallpaperOffset((toState == State.ALL_APPS) ?
+                Workspace.WallpaperVerticalOffset.TOP : Workspace.WallpaperVerticalOffset.BOTTOM);
     }
 
     void showAllApps(boolean animated) {
diff --git a/src/com/android/launcher2/LauncherAppWidgetHost.java b/src/com/android/launcher2/LauncherAppWidgetHost.java
index 46e66e7..68d4903 100644
--- a/src/com/android/launcher2/LauncherAppWidgetHost.java
+++ b/src/com/android/launcher2/LauncherAppWidgetHost.java
@@ -36,4 +36,10 @@
             AppWidgetProviderInfo appWidget) {
         return new LauncherAppWidgetHostView(context);
     }
+
+    @Override
+    public void stopListening() {
+        super.stopListening();
+        clearViews();
+    }
 }
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index 713268a..7e72610 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -492,6 +492,9 @@
                 mLoaderTask.stopLocked();
             }
         }
+        mItems.clear();
+        mAppWidgets.clear();
+        mFolders.clear();
     }
 
     /**
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index 6c9aac1..bb59678 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -888,6 +888,14 @@
         invalidate();
     }
 
+    protected float maxOverScroll() {
+        // Using the formula in overScroll, assuming that f = 1.0 (which it should generally not
+        // exceed). Used to find out how much extra wallpaper we need for the overscroll effect
+        float f = 1.0f;
+        f = f / (Math.abs(f)) * (overScrollInfluenceCurve(Math.abs(f)));
+        return OVERSCROLL_DAMP_FACTOR * f;
+    }
+
     @Override
     public boolean onTouchEvent(MotionEvent ev) {
         // Skip touch handling if there are no pages to swipe
diff --git a/src/com/android/launcher2/PagedViewIcon.java b/src/com/android/launcher2/PagedViewIcon.java
index 6ce308b..0af7b8a 100644
--- a/src/com/android/launcher2/PagedViewIcon.java
+++ b/src/com/android/launcher2/PagedViewIcon.java
@@ -39,7 +39,7 @@
  * An icon on a PagedView, specifically for items in the launcher's paged view (with compound
  * drawables on the top).
  */
-public class PagedViewIcon extends CacheableTextView implements Checkable {
+public class PagedViewIcon extends CachedTextView implements Checkable {
     private static final String TAG = "PagedViewIcon";
 
     // holographic outline
@@ -143,7 +143,6 @@
         mIcon = info.iconBitmap;
         setCompoundDrawablesWithIntrinsicBounds(null, new FastBitmapDrawable(mIcon), null, null);
         setText(info.title);
-        buildAndEnableCache();
         setTag(info);
 
         if (createHolographicOutlines) {
@@ -160,7 +159,6 @@
                 modelIconCache.getFullResIcon(info, packageManager), mContext);
         setCompoundDrawablesWithIntrinsicBounds(null, new FastBitmapDrawable(mIcon), null, null);
         setText(info.loadLabel(packageManager));
-        buildAndEnableCache();
         setTag(info);
 
         if (createHolographicOutlines) {
diff --git a/src/com/android/launcher2/PagedViewWithDraggableItems.java b/src/com/android/launcher2/PagedViewWithDraggableItems.java
index f24d7e0..3f72292 100644
--- a/src/com/android/launcher2/PagedViewWithDraggableItems.java
+++ b/src/com/android/launcher2/PagedViewWithDraggableItems.java
@@ -150,4 +150,10 @@
     public void setDragSlopeThreshold(float dragSlopeThreshold) {
         mDragSlopeThreshold = dragSlopeThreshold;
     }
+
+    @Override
+    protected void onDetachedFromWindow() {
+        mLastTouchedItem = null;
+        super.onDetachedFromWindow();
+    }
 }
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 9fcd1b4..8e0308c 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -203,6 +203,17 @@
     private final Camera mCamera = new Camera();
     private final float mTempFloat2[] = new float[2];
 
+    enum WallpaperVerticalOffset { TOP, MIDDLE, BOTTOM };
+    int mWallpaperWidth;
+    int mWallpaperHeight;
+    float mTargetHorizontalWallpaperOffset = 0.0f;
+    float mTargetVerticalWallpaperOffset = 0.5f;
+    float mHorizontalWallpaperOffset = 0.0f;
+    float mVerticalWallpaperOffset = 0.5f;
+    long mLastWallpaperOffsetUpdateTime;
+    boolean mWallpaperOffsetDirty;
+    boolean mUpdateWallpaperOffsetImmediately = false;
+
     /**
      * Used to inflate the Workspace from XML.
      *
@@ -387,17 +398,6 @@
     }
 
     /**
-     * Sets the current screen.
-     *
-     * @param currentPage
-     */
-    @Override
-    void setCurrentPage(int currentPage) {
-        super.setCurrentPage(currentPage);
-        updateWallpaperOffset(mScrollX);
-    }
-
-    /**
      * Adds the specified child in the specified screen. The position and dimension of
      * the child are defined by x, y, spanX and spanY.
      *
@@ -558,17 +558,157 @@
         Launcher.setScreen(mCurrentPage);
     };
 
-    private void updateWallpaperOffset(int scrollRange) {
-        final boolean isStaticWallpaper = (mWallpaperManager != null) &&
-                (mWallpaperManager.getWallpaperInfo() == null);
-        if (LauncherApplication.isScreenXLarge() && !isStaticWallpaper) {
-            IBinder token = getWindowToken();
-            if (token != null) {
-                mWallpaperManager.setWallpaperOffsetSteps(1.0f / (getChildCount() - 1), 0 );
-                mWallpaperManager.setWallpaperOffsets(getWindowToken(),
-                        Math.max(0.f, Math.min(mScrollX/(float)scrollRange, 1.f)), 0);
-            }
+    // As a ratio of screen height, the total distance we want the parallax effect to span
+    // vertically
+    private float wallpaperTravelToScreenHeightRatio(int width, int height) {
+        return 1.1f;
+    }
+
+    // As a ratio of screen height, the total distance we want the parallax effect to span
+    // horizontally
+    private float wallpaperTravelToScreenWidthRatio(int width, int height) {
+        float aspectRatio = width / (float) height;
+
+        // At an aspect ratio of 16/10, the wallpaper parallax effect should span 1.5 * screen width
+        // At an aspect ratio of 10/16, the wallpaper parallax effect should span 1.2 * screen width
+        // We will use these two data points to extrapolate how much the wallpaper parallax effect
+        // to span (ie travel) at any aspect ratio:
+
+        final float ASPECT_RATIO_LANDSCAPE = 16/10f;
+        final float ASPECT_RATIO_PORTRAIT = 10/16f;
+        final float WALLPAPER_WIDTH_TO_SCREEN_RATIO_LANDSCAPE = 1.5f;
+        final float WALLPAPER_WIDTH_TO_SCREEN_RATIO_PORTRAIT = 1.2f;
+
+        // To find out the desired width at different aspect ratios, we use the following two
+        // formulas, where the coefficient on x is the aspect ratio (width/height):
+        //   (16/10)x + y = 1.5
+        //   (10/16)x + y = 1.2
+        // We solve for x and y and end up with a final formula:
+        final float x =
+            (WALLPAPER_WIDTH_TO_SCREEN_RATIO_LANDSCAPE - WALLPAPER_WIDTH_TO_SCREEN_RATIO_PORTRAIT) /
+            (ASPECT_RATIO_LANDSCAPE - ASPECT_RATIO_PORTRAIT);
+        final float y = WALLPAPER_WIDTH_TO_SCREEN_RATIO_PORTRAIT - x * ASPECT_RATIO_PORTRAIT;
+        return x * aspectRatio + y;
+    }
+
+    // The range of scroll values for Workspace
+    private int getScrollRange() {
+        return getChildOffset(getChildCount() - 1) - getChildOffset(0);
+    }
+
+    protected void setWallpaperDimension() {
+        WallpaperManager wpm =
+            (WallpaperManager) mLauncher.getSystemService(Context.WALLPAPER_SERVICE);
+
+        Display display = mLauncher.getWindowManager().getDefaultDisplay();
+        final int maxDim = Math.max(display.getWidth(), display.getHeight());
+        final int minDim = Math.min(display.getWidth(), display.getHeight());
+
+        // We need to ensure that there is enough extra space in the wallpaper for the intended
+        // parallax effects
+        mWallpaperWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));
+        mWallpaperHeight = (int)(maxDim * wallpaperTravelToScreenHeightRatio(maxDim, minDim));
+        wpm.suggestDesiredDimensions(mWallpaperWidth, mWallpaperHeight);
+    }
+
+    public void setVerticalWallpaperOffset(WallpaperVerticalOffset offsetPosition) {
+        float offset = 0.5f;
+        Display display = mLauncher.getWindowManager().getDefaultDisplay();
+        int wallpaperTravelHeight = (int) (display.getHeight() *
+                wallpaperTravelToScreenHeightRatio(display.getWidth(), display.getHeight()));
+        float offsetFromCenter = (wallpaperTravelHeight / (float) mWallpaperHeight) / 2f;
+        switch (offsetPosition) {
+            case TOP:
+                offset = 0.5f - offsetFromCenter;
+                break;
+            case MIDDLE:
+                offset = 0.5f;
+                break;
+            case BOTTOM:
+                offset = 0.5f + offsetFromCenter;
+                break;
         }
+        mTargetVerticalWallpaperOffset = offset;
+        mWallpaperOffsetDirty = true;
+    }
+
+    private void updateHorizontalWallpaperOffset() {
+        if (LauncherApplication.isScreenXLarge()) {
+            Display display = mLauncher.getWindowManager().getDefaultDisplay();
+            // The wallpaper travel width is how far, from left to right, the wallpaper will move
+            // at this orientation (for example, in portrait mode we don't move all the way to the
+            // edges of the wallpaper, or otherwise the parallax effect would be too strong)
+            int wallpaperTravelWidth = (int) (display.getWidth() *
+                    wallpaperTravelToScreenWidthRatio(display.getWidth(), display.getHeight()));
+
+            // Account for overscroll: you only see the absolute edge of the wallpaper if
+            // you overscroll as far as you can in landscape mode
+            int overscrollOffset = (int) (maxOverScroll() * display.getWidth());
+            float overscrollRatio = overscrollOffset / (float) getScrollRange();
+            int scrollRangeWithOverscroll = getScrollRange() + 2 * overscrollOffset;
+
+            // Set wallpaper offset steps (1 / (number of screens - 1))
+            // We have 3 vertical offset states (centered, and then top/bottom aligned
+            // for all apps/customize)
+            mWallpaperManager.setWallpaperOffsetSteps(1.0f / (getChildCount() - 1), 1.0f / (3 - 1));
+
+            float scrollProgress =
+                mScrollX / (float) scrollRangeWithOverscroll + overscrollRatio;
+            float offsetInDips = wallpaperTravelWidth * scrollProgress +
+                (mWallpaperWidth - wallpaperTravelWidth) / 2;
+            float offset = offsetInDips / (float) mWallpaperWidth;
+
+            mTargetHorizontalWallpaperOffset = Math.max(0f, Math.min(offset, 1.0f));
+            mWallpaperOffsetDirty = true;
+        }
+    }
+
+    public void updateWallpaperOffsetImmediately() {
+        mUpdateWallpaperOffsetImmediately = true;
+    }
+
+    private void updateWallpaperOffsets(boolean immediate) {
+        long currentTime = System.currentTimeMillis();
+        long millisecondsSinceLastUpdate = currentTime - mLastWallpaperOffsetUpdateTime;
+        millisecondsSinceLastUpdate = Math.min((long) (1000/30f), millisecondsSinceLastUpdate);
+        millisecondsSinceLastUpdate = Math.min(1L, millisecondsSinceLastUpdate);
+        final float PERCENT_TO_CATCH_UP_IN_100_MS_HORIZONTAL = 25f;
+        final float PERCENT_TO_CATCH_UP_IN_100_MS_VERTICAL = 25f;
+        final float UPDATE_THRESHOLD = 0.0001f;
+        float hOffsetDelta = mTargetHorizontalWallpaperOffset - mHorizontalWallpaperOffset;
+        float vOffsetDelta = mTargetVerticalWallpaperOffset - mVerticalWallpaperOffset;
+        boolean stopUpdating =
+            Math.abs(hOffsetDelta / mTargetHorizontalWallpaperOffset) < UPDATE_THRESHOLD &&
+            Math.abs(vOffsetDelta / mTargetVerticalWallpaperOffset) < UPDATE_THRESHOLD;
+
+        if (stopUpdating || immediate) {
+            mHorizontalWallpaperOffset = mTargetHorizontalWallpaperOffset;
+            mVerticalWallpaperOffset = mTargetVerticalWallpaperOffset;
+        } else {
+            float percentToCatchUpVertical =
+                millisecondsSinceLastUpdate / 100f * PERCENT_TO_CATCH_UP_IN_100_MS_VERTICAL;
+            float percentToCatchUpHorizontal =
+                millisecondsSinceLastUpdate / 100f * PERCENT_TO_CATCH_UP_IN_100_MS_HORIZONTAL;
+            mHorizontalWallpaperOffset += percentToCatchUpHorizontal * hOffsetDelta;
+            mVerticalWallpaperOffset +=
+                percentToCatchUpVertical * (mTargetVerticalWallpaperOffset - mVerticalWallpaperOffset);
+        }
+        IBinder token = getWindowToken();
+        if (token != null) {
+            mWallpaperManager.setWallpaperOffsets(getWindowToken(),
+                    mHorizontalWallpaperOffset, mVerticalWallpaperOffset);
+        }
+        if (!stopUpdating && !immediate) {
+            invalidate();
+            mWallpaperOffsetDirty = true;
+        }
+        mLastWallpaperOffsetUpdateTime = System.currentTimeMillis();
+    }
+
+    @Override
+    public void computeScroll() {
+        super.computeScroll();
+        updateHorizontalWallpaperOffset();
     }
 
     public void showOutlines() {
@@ -737,6 +877,9 @@
 
     @Override
     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+        if (mFirstLayout && mCurrentPage >= 0 && mCurrentPage < getChildCount()) {
+            mUpdateWallpaperOffsetImmediately = true;
+        }
         super.onLayout(changed, left, top, right, bottom);
 
         // if shrinkToBottom() is called on initialization, it has to be deferred
@@ -777,12 +920,15 @@
 
     @Override
     protected void onDraw(Canvas canvas) {
+        if (mWallpaperOffsetDirty) {
+            updateWallpaperOffsets(mUpdateWallpaperOffsetImmediately);
+            mWallpaperOffsetDirty = false;
+            mUpdateWallpaperOffsetImmediately = false;
+        }
+
         // Draw the background gradient if necessary
         if (mBackground != null && mBackgroundAlpha > 0.0f) {
             int alpha = (int) (mBackgroundAlpha * 255);
-            mBackground.setAlpha(alpha);
-            mBackground.setBounds(mScrollX, 0, mScrollX + getMeasuredWidth(), getMeasuredHeight());
-            mBackground.draw(canvas);
             if (mDrawCustomizeTrayBackground) {
                 // Find out where to offset the gradient for the customization tray content
                 mCustomizationDrawer.getLocationOnScreen(mCustomizationDrawerPos);
@@ -800,9 +946,15 @@
                 // Draw the bg gradient
                 final int  offset = (int) (mCustomizationDrawerPos[1] +
                         mCustomizationDrawerTransformedPos[1]);
+                mBackground.setAlpha(alpha);
                 mBackground.setBounds(mScrollX, offset, mScrollX + getMeasuredWidth(),
                         offset + getMeasuredHeight());
                 mBackground.draw(canvas);
+            } else {
+                mBackground.setAlpha(alpha);
+                mBackground.setBounds(mScrollX, 0, mScrollX + getMeasuredWidth(),
+                        getMeasuredHeight());
+                mBackground.draw(canvas);
             }
         }
         super.onDraw(canvas);
@@ -1031,6 +1183,7 @@
                 getResources().getDimension(R.dimen.allAppsSmallScreenVerticalMarginLandscape));
         float finalAlpha = 1.0f;
         float extraShrinkFactor = 1.0f;
+
         if (shrinkState == ShrinkState.BOTTOM_VISIBLE) {
              newY = screenHeight - newY - scaledPageHeight;
         } else if (shrinkState == ShrinkState.BOTTOM_HIDDEN) {
@@ -1048,6 +1201,13 @@
                 getResources().getDimension(R.dimen.customizeSmallScreenVerticalMarginLandscape));
         }
 
+        int duration;
+        if (shrinkState == ShrinkState.BOTTOM_HIDDEN || shrinkState == ShrinkState.BOTTOM_VISIBLE) {
+            duration = res.getInteger(R.integer.config_allAppsWorkspaceShrinkTime);
+        } else {
+            duration = res.getInteger(R.integer.config_customizeWorkspaceShrinkTime);
+        }
+
         // We animate all the screens to the centered position in workspace
         // At the same time, the screens become greyed/dimmed
 
@@ -1062,17 +1222,16 @@
         if (mAnimator != null) {
             mAnimator.cancel();
         }
+
         mAnimator = new AnimatorSet();
         for (int i = 0; i < screenCount; i++) {
-            CellLayout cl = (CellLayout) getChildAt(i);
+            final CellLayout cl = (CellLayout) getChildAt(i);
 
             float rotation = (-i + 2) * WORKSPACE_ROTATION;
             float rotationScaleX = (float) (1.0f / Math.cos(Math.PI * rotation / 180.0f));
             float rotationScaleY = getYScaleForScreen(i);
 
             if (animated) {
-                final int duration = res.getInteger(R.integer.config_workspaceShrinkTime);
-
                 ObjectAnimator animWithInterpolator = ObjectAnimator.ofPropertyValuesHolder(cl,
                         PropertyValuesHolder.ofFloat("x", newX),
                         PropertyValuesHolder.ofFloat("y", newY),
