Merge "Ensuring disabled apps don't appear in workspace (issue: 5557311)" into ics-mr1
diff --git a/res/layout-port/launcher.xml b/res/layout-port/launcher.xml
index e9ee5f8..b8df2ee 100644
--- a/res/layout-port/launcher.xml
+++ b/res/layout-port/launcher.xml
@@ -64,18 +64,18 @@
         android:id="@+id/qsb_bar"
         layout="@layout/qsb_bar" />
 
-    <include layout="@layout/apps_customize_pane"
-        android:id="@+id/apps_customize_pane"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="invisible" />
-
     <include layout="@layout/hotseat"
         android:id="@+id/hotseat"
         android:layout_width="match_parent"
         android:layout_height="@dimen/button_bar_height_plus_padding"
         android:layout_gravity="bottom" />
 
+    <include layout="@layout/apps_customize_pane"
+        android:id="@+id/apps_customize_pane"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:visibility="invisible" />
+
     <include layout="@layout/workspace_cling"
         android:id="@+id/workspace_cling"
         android:layout_width="match_parent"
diff --git a/res/layout-port/search_bar.xml b/res/layout-port/search_bar.xml
index 5c20ec0..09c6e09 100644
--- a/res/layout-port/search_bar.xml
+++ b/res/layout-port/search_bar.xml
@@ -24,6 +24,7 @@
    <!-- Global search icon -->
    <com.android.launcher2.HolographicLinearLayout
         style="@style/SearchButton"
+        launcher:sourceImageViewId="@+id/search_button"
         android:id="@+id/search_button_container"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
@@ -45,6 +46,7 @@
     <!-- Voice search icon -->
     <com.android.launcher2.HolographicLinearLayout
         style="@style/SearchButton.Voice"
+        launcher:sourceImageViewId="@+id/voice_button"
         android:id="@+id/voice_button_container"
         android:layout_width="@dimen/search_bar_height"
         android:layout_height="match_parent"
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 905c84c..5b429b7 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -84,14 +84,10 @@
     <string name="uninstall_system_app_text" msgid="6429814133777046491">"Това е системно приложение и не може да се деинсталира."</string>
     <string name="dream_name" msgid="2847171357608437154">"Ракетна площадка"</string>
     <string name="folder_hint_text" msgid="8633351560105748141">"Папка без име"</string>
-    <!-- no translation found for default_scroll_format (4057140866420001240) -->
-    <skip />
-    <!-- no translation found for workspace_scroll_format (7911126267695001437) -->
-    <skip />
-    <!-- no translation found for apps_customize_apps_scroll_format (5494241912377704885) -->
-    <skip />
-    <!-- no translation found for apps_customize_widgets_scroll_format (5383009742241717437) -->
-    <skip />
+    <string name="default_scroll_format" msgid="4057140866420001240">"Страница %1$d от %2$d"</string>
+    <string name="workspace_scroll_format" msgid="7911126267695001437">"Работно пространство %1$d от %2$d"</string>
+    <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"Страница с приложения %1$d от %2$d"</string>
+    <string name="apps_customize_widgets_scroll_format" msgid="5383009742241717437">"Страница с приспособления %1$d от %2$d"</string>
     <string name="workspace_cling_title" msgid="738396473989890567">"Настанете се като у дома си"</string>
     <string name="workspace_cling_move_item" msgid="791013895761065070">"Тук можете да поставите любимите си приложения."</string>
     <string name="workspace_cling_open_all_apps" msgid="2459977609848572588">"За да видите всичките си приложения, докоснете кръга."</string>
@@ -101,16 +97,10 @@
     <string name="folder_cling_move_item" msgid="270598675060435169">"За да преместите приложение, го докоснете и задръжте."</string>
     <string name="folder_cling_create_folder" msgid="8352867485656129478">"За да създадете нова папка на началния си екран, поставете едно приложение върху друго."</string>
     <string name="cling_dismiss" msgid="2780907108735868381">"OK"</string>
-    <!-- no translation found for folder_opened (4129072635480822768) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_close (4076794242530255812) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_rename (2125528923948315223) -->
-    <skip />
-    <!-- no translation found for folder_closed (3130534551370511932) -->
-    <skip />
-    <!-- no translation found for folder_renamed (781234745487414781) -->
-    <skip />
-    <!-- no translation found for folder_name_format (4513766553514769310) -->
-    <skip />
+    <string name="folder_opened" msgid="4129072635480822768">"Папката е отворена %1$d на %2$d"</string>
+    <string name="folder_tap_to_close" msgid="4076794242530255812">"Докоснете, за да затворите папката"</string>
+    <string name="folder_tap_to_rename" msgid="2125528923948315223">"Докоснете, за да преименувате"</string>
+    <string name="folder_closed" msgid="3130534551370511932">"Папката бе затворена"</string>
+    <string name="folder_renamed" msgid="781234745487414781">"Папката е преименувана на „%1$s“"</string>
+    <string name="folder_name_format" msgid="4513766553514769310">"Папка: %1$s"</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 84e1644..1b48b8b 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -84,14 +84,10 @@
     <string name="uninstall_system_app_text" msgid="6429814133777046491">"Dette er en systemapp, som ikke kan afinstalleres."</string>
     <string name="dream_name" msgid="2847171357608437154">"Rocket Launcher"</string>
     <string name="folder_hint_text" msgid="8633351560105748141">"Unavngiven mappe"</string>
-    <!-- no translation found for default_scroll_format (4057140866420001240) -->
-    <skip />
-    <!-- no translation found for workspace_scroll_format (7911126267695001437) -->
-    <skip />
-    <!-- no translation found for apps_customize_apps_scroll_format (5494241912377704885) -->
-    <skip />
-    <!-- no translation found for apps_customize_widgets_scroll_format (5383009742241717437) -->
-    <skip />
+    <string name="default_scroll_format" msgid="4057140866420001240">"Side %1$d ud af %2$d"</string>
+    <string name="workspace_scroll_format" msgid="7911126267695001437">"Arbejdsplads %1$d ud af %2$d"</string>
+    <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"Apps-side %1$d ud af %2$d"</string>
+    <string name="apps_customize_widgets_scroll_format" msgid="5383009742241717437">"Widgets-side %1$d ud af %2$d"</string>
     <string name="workspace_cling_title" msgid="738396473989890567">"Føl dig hjemme"</string>
     <string name="workspace_cling_move_item" msgid="791013895761065070">"Du kan sætte dine yndlingsapps her."</string>
     <string name="workspace_cling_open_all_apps" msgid="2459977609848572588">"Tryk på cirklen for at få vist alle dine apps."</string>
@@ -101,16 +97,10 @@
     <string name="folder_cling_move_item" msgid="270598675060435169">"Tryk på en app, og hold den nede for at flytte den."</string>
     <string name="folder_cling_create_folder" msgid="8352867485656129478">"Du kan oprette en ny mappe på din startskærm ved at stable apps oven på hinanden."</string>
     <string name="cling_dismiss" msgid="2780907108735868381">"OK"</string>
-    <!-- no translation found for folder_opened (4129072635480822768) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_close (4076794242530255812) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_rename (2125528923948315223) -->
-    <skip />
-    <!-- no translation found for folder_closed (3130534551370511932) -->
-    <skip />
-    <!-- no translation found for folder_renamed (781234745487414781) -->
-    <skip />
-    <!-- no translation found for folder_name_format (4513766553514769310) -->
-    <skip />
+    <string name="folder_opened" msgid="4129072635480822768">"Mappen blev åbnet, %1$d af %2$d"</string>
+    <string name="folder_tap_to_close" msgid="4076794242530255812">"Tryk for at lukke mappen"</string>
+    <string name="folder_tap_to_rename" msgid="2125528923948315223">"Tryk for at omdøbe"</string>
+    <string name="folder_closed" msgid="3130534551370511932">"Mappen er lukket"</string>
+    <string name="folder_renamed" msgid="781234745487414781">"Mappen blev omdøbt til %1$s"</string>
+    <string name="folder_name_format" msgid="4513766553514769310">"Mappe: %1$s"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 092f6de..a125524 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -86,8 +86,8 @@
     <string name="folder_hint_text" msgid="8633351560105748141">"Unbenannter Ordner"</string>
     <string name="default_scroll_format" msgid="4057140866420001240">"Seite %1$d von %2$d"</string>
     <string name="workspace_scroll_format" msgid="7911126267695001437">"Arbeitsbereich %1$d von %2$d"</string>
-    <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"Apps-Seite %1$d von %2$d"</string>
-    <string name="apps_customize_widgets_scroll_format" msgid="5383009742241717437">"Widgets-Seite %1$d von %2$d"</string>
+    <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"App-Seite %1$d von %2$d"</string>
+    <string name="apps_customize_widgets_scroll_format" msgid="5383009742241717437">"Widget-Seite %1$d von %2$d"</string>
     <string name="workspace_cling_title" msgid="738396473989890567">"Fühlen Sie sich wie zu Hause"</string>
     <string name="workspace_cling_move_item" msgid="791013895761065070">"Hier können Sie Ihre Lieblings-Apps ablegen."</string>
     <string name="workspace_cling_open_all_apps" msgid="2459977609848572588">"Berühren Sie den Kreis für eine Übersicht aller Apps."</string>
@@ -99,7 +99,7 @@
     <string name="cling_dismiss" msgid="2780907108735868381">"OK"</string>
     <string name="folder_opened" msgid="4129072635480822768">"Ordner geöffnet, %1$d von %2$d"</string>
     <string name="folder_tap_to_close" msgid="4076794242530255812">"Ordner durch Berühren schließen"</string>
-    <string name="folder_tap_to_rename" msgid="2125528923948315223">"Umbenennen durch Berühren bestätigen"</string>
+    <string name="folder_tap_to_rename" msgid="2125528923948315223">"Umbenennung durch Berühren bestätigen"</string>
     <string name="folder_closed" msgid="3130534551370511932">"Ordner wurde geschlossen"</string>
     <string name="folder_renamed" msgid="781234745487414781">"Ordner umbenannt in %1$s"</string>
     <string name="folder_name_format" msgid="4513766553514769310">"Ordner: %1$s"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 8de7350..72dd217 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -97,7 +97,7 @@
     <string name="folder_cling_move_item" msgid="270598675060435169">"Para mover una aplicación, tócala &amp; mantenla presionada."</string>
     <string name="folder_cling_create_folder" msgid="8352867485656129478">"Para crear una carpeta nueva en tu pantalla principal, coloca una aplicación encima de la otra."</string>
     <string name="cling_dismiss" msgid="2780907108735868381">"Aceptar"</string>
-    <string name="folder_opened" msgid="4129072635480822768">"Se abrió la carpeta, %1$d de %2$d."</string>
+    <string name="folder_opened" msgid="4129072635480822768">"Se abrió la carpeta, %1$d por %2$d."</string>
     <string name="folder_tap_to_close" msgid="4076794242530255812">"Toca para cerrar la carpeta."</string>
     <string name="folder_tap_to_rename" msgid="2125528923948315223">"Toca para cambiar el nombre de la carpeta."</string>
     <string name="folder_closed" msgid="3130534551370511932">"Se cerró la carpeta."</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index d7ec0c9..6d4b63e 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -85,9 +85,9 @@
     <string name="dream_name" msgid="2847171357608437154">"Aknavető"</string>
     <string name="folder_hint_text" msgid="8633351560105748141">"Névtelen mappa"</string>
     <string name="default_scroll_format" msgid="4057140866420001240">"%2$d/%1$d. oldal"</string>
-    <string name="workspace_scroll_format" msgid="7911126267695001437">"%2$d/%1$d. munkahelyi oldal"</string>
-    <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"%2$d/%1$d. alkalmazások oldal"</string>
-    <string name="apps_customize_widgets_scroll_format" msgid="5383009742241717437">"%2$d/%1$d. modulok oldal"</string>
+    <string name="workspace_scroll_format" msgid="7911126267695001437">"%2$d/%1$d. munkaterület"</string>
+    <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"%2$d/%1$d. alkalmazásoldal"</string>
+    <string name="apps_customize_widgets_scroll_format" msgid="5383009742241717437">"%2$d/%1$d. moduloldal"</string>
     <string name="workspace_cling_title" msgid="738396473989890567">"Érezze magát otthon"</string>
     <string name="workspace_cling_move_item" msgid="791013895761065070">"Ide rakhatja kedvenc alkalmazásait."</string>
     <string name="workspace_cling_open_all_apps" msgid="2459977609848572588">"Az összes saját alkalmazás megtekintéséhez érintse meg a kört."</string>
@@ -97,7 +97,7 @@
     <string name="folder_cling_move_item" msgid="270598675060435169">"Ha egy alkalmazást át szeretne helyezni, érintse meg, és tartsa lenyomva."</string>
     <string name="folder_cling_create_folder" msgid="8352867485656129478">"Ha egy új mappát szeretne létrehozni a kezdőképernyőn, helyezzen egymásra két alkalmazást."</string>
     <string name="cling_dismiss" msgid="2780907108735868381">"OK"</string>
-    <string name="folder_opened" msgid="4129072635480822768">"Mappa megnyitva, %1$d tőle: %2$d"</string>
+    <string name="folder_opened" msgid="4129072635480822768">"Megnyitott mappa: %1$d x %2$d"</string>
     <string name="folder_tap_to_close" msgid="4076794242530255812">"Érintse meg a mappa bezárásához"</string>
     <string name="folder_tap_to_rename" msgid="2125528923948315223">"Átnevezéshez érintse meg"</string>
     <string name="folder_closed" msgid="3130534551370511932">"Mappa lezárva"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 84ff82e..a7214d8 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -97,7 +97,7 @@
     <string name="folder_cling_move_item" msgid="270598675060435169">"Untuk memindahkan apl, sentuh &amp; tahan apl tersebut."</string>
     <string name="folder_cling_create_folder" msgid="8352867485656129478">"Untuk membuat map baru di layar Utama Anda, tumpuk satu apl di atas apl yang lain."</string>
     <string name="cling_dismiss" msgid="2780907108735868381">"OK"</string>
-    <string name="folder_opened" msgid="4129072635480822768">"Map dibuka, %1$d dari %2$d"</string>
+    <string name="folder_opened" msgid="4129072635480822768">"Map dibuka, %1$d kali %2$d"</string>
     <string name="folder_tap_to_close" msgid="4076794242530255812">"Ketuk untuk menutup map"</string>
     <string name="folder_tap_to_rename" msgid="2125528923948315223">"Ketuk untuk mengubah nama"</string>
     <string name="folder_closed" msgid="3130534551370511932">"Map ditutup"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index e629a24..2b12981 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -84,14 +84,10 @@
     <string name="uninstall_system_app_text" msgid="6429814133777046491">"Tai sistemos programa ir jos negalima pašalinti."</string>
     <string name="dream_name" msgid="2847171357608437154">"Raketinis prieštankinis šautuvas"</string>
     <string name="folder_hint_text" msgid="8633351560105748141">"Aplankas be pavadinimo"</string>
-    <!-- no translation found for default_scroll_format (4057140866420001240) -->
-    <skip />
-    <!-- no translation found for workspace_scroll_format (7911126267695001437) -->
-    <skip />
-    <!-- no translation found for apps_customize_apps_scroll_format (5494241912377704885) -->
-    <skip />
-    <!-- no translation found for apps_customize_widgets_scroll_format (5383009742241717437) -->
-    <skip />
+    <string name="default_scroll_format" msgid="4057140866420001240">"%1$d psl. iš %2$d"</string>
+    <string name="workspace_scroll_format" msgid="7911126267695001437">"Darbo sritis: %1$d iš %2$d"</string>
+    <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"Programų puslapis: %1$d iš %2$d"</string>
+    <string name="apps_customize_widgets_scroll_format" msgid="5383009742241717437">"Valdiklių puslapis: %1$d iš %2$d"</string>
     <string name="workspace_cling_title" msgid="738396473989890567">"Jauskitės kaip namie"</string>
     <string name="workspace_cling_move_item" msgid="791013895761065070">"Čia galite dėti mėgstamiausias savo programas."</string>
     <string name="workspace_cling_open_all_apps" msgid="2459977609848572588">"Jei norite matyti visas programas, palieskite apskritimą."</string>
@@ -101,16 +97,10 @@
     <string name="folder_cling_move_item" msgid="270598675060435169">"Jei norite perkelti programą, palieskite ją ir laikykite."</string>
     <string name="folder_cling_create_folder" msgid="8352867485656129478">"Jei pagrindiniame ekrane norite sukurti naują aplanką, uždėkite vieną programą ant kitos."</string>
     <string name="cling_dismiss" msgid="2780907108735868381">"Gerai"</string>
-    <!-- no translation found for folder_opened (4129072635480822768) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_close (4076794242530255812) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_rename (2125528923948315223) -->
-    <skip />
-    <!-- no translation found for folder_closed (3130534551370511932) -->
-    <skip />
-    <!-- no translation found for folder_renamed (781234745487414781) -->
-    <skip />
-    <!-- no translation found for folder_name_format (4513766553514769310) -->
-    <skip />
+    <string name="folder_opened" msgid="4129072635480822768">"Aplankas atidarytas, %1$d ir %2$d"</string>
+    <string name="folder_tap_to_close" msgid="4076794242530255812">"Palieskite, kad uždarytumėte aplanką"</string>
+    <string name="folder_tap_to_rename" msgid="2125528923948315223">"Palieskite, kad pervardytumėte"</string>
+    <string name="folder_closed" msgid="3130534551370511932">"Aplankas uždarytas"</string>
+    <string name="folder_renamed" msgid="781234745487414781">"Aplankas pervardytas į %1$s"</string>
+    <string name="folder_name_format" msgid="4513766553514769310">"Aplankas: %1$s"</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index c8a28d1..4b6065c 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -22,7 +22,7 @@
     <string name="application_name" msgid="8424725141379931883">"Utskytingsrampe"</string>
     <string name="uid_name" msgid="3371120195364560632">"Android-kjerneapplikasjoner"</string>
     <string name="folder_name" msgid="8551881338202938211"></string>
-    <string name="chooser_wallpaper" msgid="6063168087625352235">"Valg av bakgrunnsbilde fra"</string>
+    <string name="chooser_wallpaper" msgid="6063168087625352235">"Velg bakgrunnsbilde fra"</string>
     <string name="wallpaper_instructions" msgid="4215640646180727542">"Velg bakgrunnsbilde"</string>
     <string name="pick_wallpaper" msgid="5630222540525626723">"Bakgrunner"</string>
     <string name="activity_not_found" msgid="217823393239365967">"Appen er ikke installert."</string>
@@ -46,7 +46,7 @@
     <string name="shortcut_uninstalled" msgid="2129499669449749995">"Fjernet snarveien «<xliff:g id="NAME">%s</xliff:g>»."</string>
     <string name="shortcut_duplicate" msgid="4757756326465060694">"Snarveien «<xliff:g id="NAME">%s</xliff:g>» fins allerede."</string>
     <string name="title_select_shortcut" msgid="2858897527672831763">"Velg snarvei"</string>
-    <string name="title_select_application" msgid="1793455815754848652">"Valg av app"</string>
+    <string name="title_select_application" msgid="1793455815754848652">"Velg app"</string>
     <string name="all_apps_button_label" msgid="2578400570124163469">"Apper"</string>
     <string name="all_apps_home_button_label" msgid="1022222300329398558">"Startsiden"</string>
     <string name="delete_zone_label_workspace" msgid="7153615831493049150">"Fjern"</string>
@@ -66,8 +66,8 @@
     <string name="menu_notifications" msgid="6424587053194766192">"Varslinger"</string>
     <string name="menu_settings" msgid="3946232973327980394">"Systeminnstillinger"</string>
     <string name="menu_help" msgid="4901160661634590633">"Hjelp"</string>
-    <string name="cab_menu_delete_app" msgid="4089398025537640349">"Avinstaller app"</string>
-    <string name="cab_menu_app_info" msgid="914548323652698884">"Informasjon om app"</string>
+    <string name="cab_menu_delete_app" msgid="4089398025537640349">"Avinstaller appen"</string>
+    <string name="cab_menu_app_info" msgid="914548323652698884">"Informasjon om appen"</string>
     <string name="cab_app_selection_text" msgid="6378522164293415735">"Én app er valgt"</string>
     <string name="cab_widget_selection_text" msgid="962527270506951955">"1 modul valgt"</string>
     <string name="cab_folder_selection_text" msgid="8916111874189565067">"1 mappe valgt"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index dd798b9..32b79dd 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -84,10 +84,10 @@
     <string name="uninstall_system_app_text" msgid="6429814133777046491">"Ово је системска апликација и не може да се деинсталира."</string>
     <string name="dream_name" msgid="2847171357608437154">"Rocket Launcher"</string>
     <string name="folder_hint_text" msgid="8633351560105748141">"Неименовани директоријум"</string>
-    <string name="default_scroll_format" msgid="4057140866420001240">"Страница %1$d од %2$d"</string>
+    <string name="default_scroll_format" msgid="4057140866420001240">"Страница %1$d. од %2$d"</string>
     <string name="workspace_scroll_format" msgid="7911126267695001437">"Радни простор %1$d од %2$d"</string>
-    <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"Страница апликације %1$d од %2$d"</string>
-    <string name="apps_customize_widgets_scroll_format" msgid="5383009742241717437">"Страница видџета %1$d од %2$d"</string>
+    <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"Страница апликације %1$d. од %2$d"</string>
+    <string name="apps_customize_widgets_scroll_format" msgid="5383009742241717437">"Страница видџета %1$d. од %2$d"</string>
     <string name="workspace_cling_title" msgid="738396473989890567">"Осећајте се као код куће"</string>
     <string name="workspace_cling_move_item" msgid="791013895761065070">"Овде можете да ставите омиљене апликације."</string>
     <string name="workspace_cling_open_all_apps" msgid="2459977609848572588">"Да бисте видели све апликације, додирните круг."</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 3ea47fc..5058d2e 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -84,14 +84,10 @@
     <string name="uninstall_system_app_text" msgid="6429814133777046491">"这是系统应用程序,无法卸载。"</string>
     <string name="dream_name" msgid="2847171357608437154">"Rocket Launcher"</string>
     <string name="folder_hint_text" msgid="8633351560105748141">"未命名文件夹"</string>
-    <!-- no translation found for default_scroll_format (4057140866420001240) -->
-    <skip />
-    <!-- no translation found for workspace_scroll_format (7911126267695001437) -->
-    <skip />
-    <!-- no translation found for apps_customize_apps_scroll_format (5494241912377704885) -->
-    <skip />
-    <!-- no translation found for apps_customize_widgets_scroll_format (5383009742241717437) -->
-    <skip />
+    <string name="default_scroll_format" msgid="4057140866420001240">"第 %1$d 页,共 %2$d 页"</string>
+    <string name="workspace_scroll_format" msgid="7911126267695001437">"工作区:第 %1$d 页,共 %2$d 页"</string>
+    <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"应用程序:第 %1$d 页,共 %2$d 页"</string>
+    <string name="apps_customize_widgets_scroll_format" msgid="5383009742241717437">"窗口小部件:第 %1$d 页,共 %2$d 页"</string>
     <string name="workspace_cling_title" msgid="738396473989890567">"随意浏览"</string>
     <string name="workspace_cling_move_item" msgid="791013895761065070">"您可以在此处放置自己喜爱的应用程序。"</string>
     <string name="workspace_cling_open_all_apps" msgid="2459977609848572588">"要查看您的所有应用程序,请触摸该圆圈。"</string>
@@ -101,16 +97,10 @@
     <string name="folder_cling_move_item" msgid="270598675060435169">"要移动应用程序,请触摸并按住该应用程序。"</string>
     <string name="folder_cling_create_folder" msgid="8352867485656129478">"要在主屏幕上创建新文件夹,请将一个应用程序叠放到另一个上。"</string>
     <string name="cling_dismiss" msgid="2780907108735868381">"确定"</string>
-    <!-- no translation found for folder_opened (4129072635480822768) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_close (4076794242530255812) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_rename (2125528923948315223) -->
-    <skip />
-    <!-- no translation found for folder_closed (3130534551370511932) -->
-    <skip />
-    <!-- no translation found for folder_renamed (781234745487414781) -->
-    <skip />
-    <!-- no translation found for folder_name_format (4513766553514769310) -->
-    <skip />
+    <string name="folder_opened" msgid="4129072635480822768">"文件夹已打开,尺寸为 %1$d x %2$d"</string>
+    <string name="folder_tap_to_close" msgid="4076794242530255812">"点按可关闭文件夹"</string>
+    <string name="folder_tap_to_rename" msgid="2125528923948315223">"点按即可重命名"</string>
+    <string name="folder_closed" msgid="3130534551370511932">"文件夹已关闭"</string>
+    <string name="folder_renamed" msgid="781234745487414781">"已将文件夹重命名为“%1$s”"</string>
+    <string name="folder_name_format" msgid="4513766553514769310">"文件夹:%1$s"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 4d28eb1..baaf1e2 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -84,14 +84,10 @@
     <string name="uninstall_system_app_text" msgid="6429814133777046491">"這是系統應用程式,不可解除安裝。"</string>
     <string name="dream_name" msgid="2847171357608437154">"Rocket Launcher"</string>
     <string name="folder_hint_text" msgid="8633351560105748141">"未命名的資料夾"</string>
-    <!-- no translation found for default_scroll_format (4057140866420001240) -->
-    <skip />
-    <!-- no translation found for workspace_scroll_format (7911126267695001437) -->
-    <skip />
-    <!-- no translation found for apps_customize_apps_scroll_format (5494241912377704885) -->
-    <skip />
-    <!-- no translation found for apps_customize_widgets_scroll_format (5383009742241717437) -->
-    <skip />
+    <string name="default_scroll_format" msgid="4057140866420001240">"第 %1$d 頁,共 %2$d 頁"</string>
+    <string name="workspace_scroll_format" msgid="7911126267695001437">"第 %1$d 個工作區,共 %2$d 個"</string>
+    <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"應用程式:第 %1$d 頁,共 %2$d 頁"</string>
+    <string name="apps_customize_widgets_scroll_format" msgid="5383009742241717437">"小工具:第 %1$d 頁,共 %2$d 頁"</string>
     <string name="workspace_cling_title" msgid="738396473989890567">"當作自己家"</string>
     <string name="workspace_cling_move_item" msgid="791013895761065070">"您可以將最愛的應用程式放在這裡。"</string>
     <string name="workspace_cling_open_all_apps" msgid="2459977609848572588">"如要查看您所有的應用程式,請輕觸圓圈。"</string>
@@ -101,16 +97,10 @@
     <string name="folder_cling_move_item" msgid="270598675060435169">"如要移動應用程式,請輕觸並按住目標。"</string>
     <string name="folder_cling_create_folder" msgid="8352867485656129478">"如要在主螢幕建立新資料夾,請將應用程式一個個堆疊起來。"</string>
     <string name="cling_dismiss" msgid="2780907108735868381">"確定"</string>
-    <!-- no translation found for folder_opened (4129072635480822768) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_close (4076794242530255812) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_rename (2125528923948315223) -->
-    <skip />
-    <!-- no translation found for folder_closed (3130534551370511932) -->
-    <skip />
-    <!-- no translation found for folder_renamed (781234745487414781) -->
-    <skip />
-    <!-- no translation found for folder_name_format (4513766553514769310) -->
-    <skip />
+    <string name="folder_opened" msgid="4129072635480822768">"已開啟資料夾,%1$d x %2$d"</string>
+    <string name="folder_tap_to_close" msgid="4076794242530255812">"輕按即可關閉資料夾"</string>
+    <string name="folder_tap_to_rename" msgid="2125528923948315223">"輕按即可重新命名"</string>
+    <string name="folder_closed" msgid="3130534551370511932">"已關閉資料夾"</string>
+    <string name="folder_renamed" msgid="781234745487414781">"已將資料夾重新命名為「%1$s」"</string>
+    <string name="folder_name_format" msgid="4513766553514769310">"資料夾:%1$s"</string>
 </resources>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 800aeaa..5fe1abd 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -80,6 +80,12 @@
         <attr name="strokeWidth" format="float" />
     </declare-styleable>
 
+    <!-- HolographicLinearLayout specific attributes. -->
+    <declare-styleable name="HolographicLinearLayout">
+        <!-- The source view to generate and apply the drawable states to/from -->
+        <attr name="sourceImageViewId" format="integer" />
+    </declare-styleable>
+
     <!-- PagedViewIcon specific attributes. These attributes are used to customize
          a PagedViewIcon view in XML files. -->
     <declare-styleable name="PagedViewIcon">
diff --git a/src/com/android/launcher2/Cling.java b/src/com/android/launcher2/Cling.java
index 9f27586..32b1de4 100644
--- a/src/com/android/launcher2/Cling.java
+++ b/src/com/android/launcher2/Cling.java
@@ -28,7 +28,6 @@
 import android.graphics.drawable.Drawable;
 import android.util.AttributeSet;
 import android.util.DisplayMetrics;
-import android.view.View;
 import android.widget.FrameLayout;
 
 import com.android.launcher.R;
@@ -54,8 +53,6 @@
     private Drawable mHandTouchGraphic;
     private int mPunchThroughGraphicCenterRadius;
     private int mAppIconSize;
-    private int mTabBarHeight;
-    private int mTabBarHorizontalPadding;
     private int mButtonBarHeight;
     private float mRevealRadius;
     private int[] mPositionData;
@@ -89,9 +86,6 @@
                 r.getDimensionPixelSize(R.dimen.clingPunchThroughGraphicCenterRadius);
             mAppIconSize = r.getDimensionPixelSize(R.dimen.app_icon_size);
             mRevealRadius = mAppIconSize * 1f;
-            mTabBarHeight = r.getDimensionPixelSize(R.dimen.apps_customize_tab_bar_height);
-            mTabBarHorizontalPadding =
-                r.getDimensionPixelSize(R.dimen.toolbar_button_horizontal_padding);
             mButtonBarHeight = r.getDimensionPixelSize(R.dimen.button_bar_height);
 
             mErasePaint = new Paint();
diff --git a/src/com/android/launcher2/DragLayer.java b/src/com/android/launcher2/DragLayer.java
index aa49ca1..433db50 100644
--- a/src/com/android/launcher2/DragLayer.java
+++ b/src/com/android/launcher2/DragLayer.java
@@ -69,6 +69,8 @@
     private float mDropViewAlpha;
     private boolean mHoverPointClosesFolder = false;
     private Rect mHitRect = new Rect();
+    private int mWorkspaceIndex = -1;
+    private int mHotseatIndex = -1;
 
     /**
      * Used to create a new DragLayer from XML.
@@ -81,6 +83,7 @@
 
         // Disable multitouch across the workspace/all apps/customize tray
         setMotionEventSplittingEnabled(false);
+        setChildrenDrawingOrderEnabled(true);
     }
 
     public void setup(Launcher launcher, DragController controller) {
@@ -610,6 +613,44 @@
     }
 
     @Override
+    protected void onViewAdded(View child) {
+        super.onViewAdded(child);
+        updateChildIndices();
+    }
+
+    @Override
+    protected void onViewRemoved(View child) {
+        super.onViewRemoved(child);
+        updateChildIndices();
+    }
+
+    private void updateChildIndices() {
+        if (mLauncher != null) {
+            mWorkspaceIndex = indexOfChild(mLauncher.getWorkspace());
+            mHotseatIndex = indexOfChild(mLauncher.getHotseat());
+        }
+    }
+
+    @Override
+    protected int getChildDrawingOrder(int childCount, int i) {
+        if (mWorkspaceIndex == -1 || mHotseatIndex == -1 || 
+                mLauncher.getWorkspace().isDrawingBackgroundGradient()) {
+            return i;
+        }
+
+        // This ensures that the workspace is drawn above the hotseat and qsb,
+        // except when the workspace is drawing a background gradient, in which
+        // case we want the workspace to stay behind these elements.
+        if (i == mHotseatIndex) {
+            return mWorkspaceIndex;
+        } else if (i == mWorkspaceIndex) {
+            return mHotseatIndex;
+        } else {
+            return i;
+        }
+    }
+
+    @Override
     protected void dispatchDraw(Canvas canvas) {
         super.dispatchDraw(canvas);
         if (mDropView != null) {
diff --git a/src/com/android/launcher2/HolographicLinearLayout.java b/src/com/android/launcher2/HolographicLinearLayout.java
index 986a063..c6a8d6a 100644
--- a/src/com/android/launcher2/HolographicLinearLayout.java
+++ b/src/com/android/launcher2/HolographicLinearLayout.java
@@ -17,13 +17,21 @@
 package com.android.launcher2;
 
 import android.content.Context;
+import android.content.res.TypedArray;
 import android.graphics.Canvas;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.StateListDrawable;
 import android.util.AttributeSet;
+import android.widget.ImageView;
 import android.widget.LinearLayout;
 
+import com.android.launcher.R;
+
 public class HolographicLinearLayout extends LinearLayout {
 
     private final HolographicViewHelper mHolographicHelper;
+    private ImageView mImageView;
+    private int mImageViewId;
 
     public HolographicLinearLayout(Context context) {
         this(context, null);
@@ -36,16 +44,37 @@
     public HolographicLinearLayout(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
 
+        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.HolographicLinearLayout,
+                defStyle, 0);
+        mImageViewId = a.getResourceId(R.styleable.HolographicLinearLayout_sourceImageViewId, -1);
+        a.recycle();
+
         setWillNotDraw(false);
         mHolographicHelper = new HolographicViewHelper(context);
     }
 
     @Override
+    protected void drawableStateChanged() {
+        super.drawableStateChanged();
+
+        if (mImageView != null) {
+            Drawable d = mImageView.getDrawable();
+            if (d instanceof StateListDrawable) {
+                StateListDrawable sld = (StateListDrawable) d;
+                sld.setState(getDrawableState());
+            }
+        }
+    }
+
+    @Override
     protected void onDraw(Canvas canvas) {
         super.onDraw(canvas);
 
         // One time call to generate the pressed/focused state -- must be called after
         // measure/layout
-        mHolographicHelper.generatePressedFocusedStates(this);
+        if (mImageView == null) {
+            mImageView = (ImageView) findViewById(mImageViewId);
+        }
+        mHolographicHelper.generatePressedFocusedStates(mImageView);
     }
 }
diff --git a/src/com/android/launcher2/HolographicViewHelper.java b/src/com/android/launcher2/HolographicViewHelper.java
index c68a5ea..11e81b4 100644
--- a/src/com/android/launcher2/HolographicViewHelper.java
+++ b/src/com/android/launcher2/HolographicViewHelper.java
@@ -20,12 +20,12 @@
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
+import android.graphics.PorterDuff;
 import android.graphics.drawable.StateListDrawable;
-import android.view.View;
+import android.widget.ImageView;
 
 public class HolographicViewHelper {
 
-    private final HolographicOutlineHelper mOutlineHelper = new HolographicOutlineHelper();
     private final Canvas mTempCanvas = new Canvas();
 
     private boolean mStatesUpdated;
@@ -39,16 +39,17 @@
     /**
      * Generate the pressed/focused states if necessary.
      */
-    void generatePressedFocusedStates(View v) {
-        if (!mStatesUpdated) {
+    void generatePressedFocusedStates(ImageView v) {
+        if (!mStatesUpdated && v != null) {
             mStatesUpdated = true;
-            Bitmap outline = createGlowingOutline(v, mTempCanvas, mHighlightColor, mHighlightColor);
+            Bitmap outline = createGlowingOutline(v, mTempCanvas);
             FastBitmapDrawable d = new FastBitmapDrawable(outline);
 
             StateListDrawable states = new StateListDrawable();
             states.addState(new int[] {android.R.attr.state_pressed}, d);
             states.addState(new int[] {android.R.attr.state_focused}, d);
-            v.setBackgroundDrawable(states);
+            states.addState(new int[] {}, v.getDrawable());
+            v.setImageDrawable(states);
         }
     }
 
@@ -56,16 +57,16 @@
      * Returns a new bitmap to be used as the object outline, e.g. to visualize the drop location.
      * Responsibility for the bitmap is transferred to the caller.
      */
-    private Bitmap createGlowingOutline(View v, Canvas canvas, int outlineColor, int glowColor) {
+    private Bitmap createGlowingOutline(ImageView v, Canvas canvas) {
         final int padding = HolographicOutlineHelper.MAX_OUTER_BLUR_RADIUS;
         final Bitmap b = Bitmap.createBitmap(
                 v.getWidth() + padding, v.getHeight() + padding, Bitmap.Config.ARGB_8888);
 
         canvas.setBitmap(b);
         canvas.save();
-            v.draw(canvas);
+            v.getDrawable().draw(canvas);
         canvas.restore();
-        mOutlineHelper.applyOuterBlur(b, canvas, outlineColor);
+        canvas.drawColor(mHighlightColor, PorterDuff.Mode.SRC_IN);
         canvas.setBitmap(null);
 
         return b;
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index de45bf5..2de7d4a 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -1711,7 +1711,7 @@
         }
     }
 
-    private ImageView getScrollingIndicator() {
+    protected ImageView getScrollingIndicator() {
         // We use mHasScrollIndicator to prevent future lookups if there is no sibling indicator
         // found
         if (mHasScrollIndicator && mScrollIndicator == null) {
@@ -1750,9 +1750,7 @@
             // Fade the indicator in
             updateScrollingIndicatorPosition();
             mScrollIndicator.setVisibility(View.VISIBLE);
-            if (mScrollIndicatorAnimator != null) {
-                mScrollIndicatorAnimator.cancel();
-            }
+            cancelScrollingIndicatorAnimations();
             if (immediately) {
                 mScrollIndicator.setAlpha(1f);
             } else {
@@ -1763,6 +1761,12 @@
         }
     }
 
+    protected void cancelScrollingIndicatorAnimations() {
+        if (mScrollIndicatorAnimator != null) {
+            mScrollIndicatorAnimator.cancel();
+        }
+    }
+
     protected void hideScrollingIndicator(boolean immediately) {
         if (getChildCount() <= 1) return;
         if (!isScrollingIndicatorEnabled()) return;
@@ -1771,9 +1775,7 @@
         if (mScrollIndicator != null) {
             // Fade the indicator out
             updateScrollingIndicatorPosition();
-            if (mScrollIndicatorAnimator != null) {
-                mScrollIndicatorAnimator.cancel();
-            }
+            cancelScrollingIndicatorAnimations();
             if (immediately) {
                 mScrollIndicator.setVisibility(View.GONE);
                 mScrollIndicator.setAlpha(0f);
diff --git a/src/com/android/launcher2/Utilities.java b/src/com/android/launcher2/Utilities.java
index e5169a2..d7562a9 100644
--- a/src/com/android/launcher2/Utilities.java
+++ b/src/com/android/launcher2/Utilities.java
@@ -43,8 +43,6 @@
 final class Utilities {
     private static final String TAG = "Launcher.Utilities";
 
-    private static final boolean TEXT_BURN = false;
-
     private static int sIconWidth = -1;
     private static int sIconHeight = -1;
     private static int sIconTextureWidth = -1;
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index a6ba98e..d3a31c4 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -175,6 +175,7 @@
     private final Rect mTempRect = new Rect();
     private final int[] mTempXY = new int[2];
     private int mDragViewMultiplyColor;
+    private float mOverscrollFade = 0;
 
     // Paint used to draw external drop outline
     private final Paint mExternalDragOutlinePaint = new Paint();
@@ -1152,7 +1153,11 @@
             cl.setPivotX(cl.getMeasuredWidth() * (index == 0 ? 0.75f : 0.25f));
             cl.setTranslationX(translationX);
             cl.setRotationY(rotation);
+            setFadeForOverScroll(Math.abs(scrollProgress));
         } else {
+            if (mOverscrollFade != 0) {
+                setFadeForOverScroll(0);
+            }
             // We don't want to mess with the translations during transitions
             if (!isSwitchingState()) {
                 resetCellLayoutTransforms((CellLayout) getChildAt(0), true);
@@ -1230,6 +1235,10 @@
         super.onDraw(canvas);
     }
 
+    boolean isDrawingBackgroundGradient() {
+        return (mBackground != null && mBackgroundAlpha > 0.0f && mDrawBackground);
+    }
+
     @Override
     protected void dispatchDraw(Canvas canvas) {
         super.dispatchDraw(canvas);
@@ -3454,6 +3463,20 @@
         }
     }
 
+    void setFadeForOverScroll(float fade) {
+        if (!isScrollingIndicatorEnabled()) return;
+
+        mOverscrollFade = fade;
+        float reducedFade = 0.5f + 0.5f * (1 - fade);
+        final ViewGroup parent = (ViewGroup) getParent();
+        final ImageView dockDivider = (ImageView) (parent.findViewById(R.id.dock_divider));
+        final ImageView scrollIndicator = getScrollingIndicator();
+
+        cancelScrollingIndicatorAnimations();
+        dockDivider.setAlpha(reducedFade);
+        scrollIndicator.setAlpha(1 - fade);
+    }
+
     void hideDockDivider(boolean immediately) {
         final ViewGroup parent = (ViewGroup) getParent();
         final View qsbDivider = (ImageView) (parent.findViewById(R.id.qsb_divider));