reconcile korg/master into goog/master
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 72e486b..4e60e66 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -92,10 +92,6 @@
             </intent-filter>
         </activity>
 
-        <activity
-            android:name="GesturesActivity"
-            android:label="@string/gestures_activity" />        
-        
         <!-- Enable system-default search mode for any activity in Home -->
         <meta-data
             android:name="android.app.default_searchable"
diff --git a/res/drawable-land/search_bg.9.png b/res/drawable-land/search_bg.9.png
deleted file mode 100644
index 7f105bd..0000000
--- a/res/drawable-land/search_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-land/spinner_dropdown_background_down.9.png b/res/drawable-land/spinner_dropdown_background_down.9.png
deleted file mode 100644
index bb64b78..0000000
--- a/res/drawable-land/spinner_dropdown_background_down.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-land/spinner_dropdown_background_up.9.png b/res/drawable-land/spinner_dropdown_background_up.9.png
deleted file mode 100644
index c0e2a66..0000000
--- a/res/drawable-land/spinner_dropdown_background_up.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-port/search_bg.9.png b/res/drawable-port/search_bg.9.png
deleted file mode 100644
index b55b545..0000000
--- a/res/drawable-port/search_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/btn_circle.xml b/res/drawable/btn_circle.xml
deleted file mode 100644
index 9208010..0000000
--- a/res/drawable/btn_circle.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_window_focused="false" android:state_enabled="true"
-        android:drawable="@drawable/btn_circle_normal" />
-    <item android:state_window_focused="false" android:state_enabled="false"
-        android:drawable="@drawable/btn_circle_disable" />
-    <item android:state_pressed="true" 
-        android:drawable="@drawable/btn_circle_pressed" />
-    <item android:state_focused="true" android:state_enabled="true"
-        android:drawable="@drawable/btn_circle_selected" />
-    <item android:state_enabled="true"
-        android:drawable="@drawable/btn_circle_normal" />
-    <item android:state_focused="true"
-        android:drawable="@drawable/btn_circle_disable_focused" />
-    <item
-         android:drawable="@drawable/btn_circle_disable" />
-</selector>
diff --git a/res/drawable/btn_circle_disable.png b/res/drawable/btn_circle_disable.png
deleted file mode 100644
index 33b74a6..0000000
--- a/res/drawable/btn_circle_disable.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/btn_circle_disable_focused.png b/res/drawable/btn_circle_disable_focused.png
deleted file mode 100644
index 005ad8d..0000000
--- a/res/drawable/btn_circle_disable_focused.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/btn_circle_normal.png b/res/drawable/btn_circle_normal.png
deleted file mode 100644
index fc5af1c..0000000
--- a/res/drawable/btn_circle_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/btn_circle_pressed.png b/res/drawable/btn_circle_pressed.png
deleted file mode 100644
index 8f40afd..0000000
--- a/res/drawable/btn_circle_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/btn_circle_selected.png b/res/drawable/btn_circle_selected.png
deleted file mode 100644
index c74fac2..0000000
--- a/res/drawable/btn_circle_selected.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/gestures_background.xml b/res/drawable/gestures_background.xml
deleted file mode 100755
index 34ec051..0000000
--- a/res/drawable/gestures_background.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-   Copyright (C) 2009 Romain Guy
-
-   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.
--->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:src="@drawable/texture_paper"
-    android:tileMode="repeat" />
diff --git a/res/drawable/google_logo.png b/res/drawable/google_logo.png
deleted file mode 100644
index 54fd5f9..0000000
--- a/res/drawable/google_logo.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_btn_round_plus.png b/res/drawable/ic_btn_round_plus.png
deleted file mode 100644
index 1ec8a95..0000000
--- a/res/drawable/ic_btn_round_plus.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/placeholder_google.png b/res/drawable/placeholder_google.png
new file mode 100644
index 0000000..e852909
--- /dev/null
+++ b/res/drawable/placeholder_google.png
Binary files differ
diff --git a/res/drawable/search_floater.9.png b/res/drawable/search_floater.9.png
index a2007ad..6646ad3 100644
--- a/res/drawable/search_floater.9.png
+++ b/res/drawable/search_floater.9.png
Binary files differ
diff --git a/res/drawable/spinner_dropdown_background_down.9.png b/res/drawable/spinner_dropdown_background_down.9.png
deleted file mode 100644
index 9cb5556..0000000
--- a/res/drawable/spinner_dropdown_background_down.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/spinner_dropdown_background_up.9.png b/res/drawable/spinner_dropdown_background_up.9.png
deleted file mode 100644
index 5c93f78..0000000
--- a/res/drawable/spinner_dropdown_background_up.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/texture_paper.jpg b/res/drawable/texture_paper.jpg
deleted file mode 100644
index 27f4fd6..0000000
--- a/res/drawable/texture_paper.jpg
+++ /dev/null
Binary files differ
diff --git a/res/layout-land/application_boxed.xml b/res/layout-land/application_boxed.xml
index 63d2254..7656b58 100644
--- a/res/layout-land/application_boxed.xml
+++ b/res/layout-land/application_boxed.xml
@@ -19,6 +19,8 @@
     android:layout_width="fill_parent"
     android:layout_height="88dip"
 
+    android:paddingLeft="2dip"
+    android:paddingRight="2dip"
     android:paddingTop="5dip"
     android:paddingBottom="2dip"
     android:drawablePadding="0dip"
diff --git a/res/layout-port/application_boxed.xml b/res/layout-port/application_boxed.xml
index e71a2e2..a6991d5 100644
--- a/res/layout-port/application_boxed.xml
+++ b/res/layout-port/application_boxed.xml
@@ -19,6 +19,8 @@
     android:layout_width="fill_parent"
     android:layout_height="88dip"
 
+    android:paddingLeft="2dip"
+    android:paddingRight="2dip"
     android:paddingTop="5dip"
     android:paddingBottom="2dip"
     android:drawablePadding="0dip"
diff --git a/res/layout/gestures.xml b/res/layout/gestures.xml
deleted file mode 100644
index c9ea2a5..0000000
--- a/res/layout/gestures.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<!-- Note: GesturesPanel is a special implementation that forces the widget
-     to be opaque for performance reasons. Make sure it visually is. -->
-<com.android.launcher.GesturesPanel
-    xmlns:android="http://schemas.android.com/apk/res/android"
-        
-    android:id="@+id/gestures_panel"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent">
-
-    <ViewSwitcher
-        android:id="@+id/gestures_actions"
-        android:layout_width="fill_parent"
-        android:layout_height="83dip"
-        android:layout_alignParentBottom="true"
-
-        android:inAnimation="@anim/fade_in_fast"
-        android:outAnimation="@anim/fade_out_fast"
-
-        android:foregroundGravity="top|fill_horizontal"
-        android:foreground="@*android:drawable/title_bar_shadow"
-        android:background="@android:drawable/title_bar_tall">
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="fill_parent"
-            android:layout_gravity="center_horizontal"
-
-            android:gravity="center_vertical"
-
-            android:shadowColor="#FF000000"
-            android:shadowRadius="2.0"
-
-            android:drawablePadding="8dip"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:ellipsize="end"
-            android:maxLines="2"
-            android:text="@string/gestures_instructions" />
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="fill_parent"
-            android:layout_gravity="center_horizontal"
-
-            android:gravity="center_vertical"
-
-            android:shadowColor="#FF000000"
-            android:shadowRadius="2.0"
-
-            android:drawablePadding="8dip"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:ellipsize="end"
-            android:maxLines="2"
-            android:text="@string/gestures_instructions" />
-
-    </ViewSwitcher>
-
-    <android.gesture.GestureOverlayView
-        android:id="@+id/gestures_overlay"
-        android:layout_width="fill_parent"
-        android:layout_height="0dip"
-        android:layout_weight="1.0"
-        android:layout_alignParentTop="true"
-        android:layout_above="@id/gestures_actions"
-
-        android:background="@drawable/gestures_background"
-
-        android:gestureStrokeType="multiple" />
-
-    <ImageButton
-        style="@style/PlusButton"
-
-        android:id="@+id/gestures_add"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_alignParentRight="true"
-        android:layout_alignTop="@id/gestures_actions"
-        android:layout_marginRight="5dip"  
-        android:layout_marginTop="-47dip" />
-
-</com.android.launcher.GesturesPanel>
diff --git a/res/layout/gestures_settings.xml b/res/layout/gestures_settings.xml
deleted file mode 100644
index 4b1976f..0000000
--- a/res/layout/gestures_settings.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent">
-
-    <ListView
-        android:id="@android:id/list"
-        android:layout_width="fill_parent"
-        android:layout_height="fill_parent" />
-
-    <TextView
-        android:id="@android:id/empty"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-
-        android:gravity="center_horizontal"
-
-        android:text="@string/gestures_loading"
-        android:textAppearance="?android:attr/textAppearanceMedium" />
-
-</FrameLayout>
diff --git a/res/layout/gestures_settings_item.xml b/res/layout/gestures_settings_item.xml
deleted file mode 100644
index 1563dfe..0000000
--- a/res/layout/gestures_settings_item.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@android:id/text1"
-    android:layout_width="fill_parent"
-    android:layout_height="wrap_content"
-
-    android:gravity="center_vertical"
-    android:minHeight="?android:attr/listPreferredItemHeight"
-
-    android:drawablePadding="12dip"
-    android:paddingLeft="6dip"
-    android:paddingRight="6dip"
-
-    android:ellipsize="marquee"
-    android:singleLine="true"
-    android:textAppearance="?android:attr/textAppearanceLarge" />
diff --git a/res/drawable/spinner_dropdown_background.xml b/res/layout/list_category.xml
similarity index 64%
rename from res/drawable/spinner_dropdown_background.xml
rename to res/layout/list_category.xml
index 9c37286..1e8d04c 100644
--- a/res/drawable/spinner_dropdown_background.xml
+++ b/res/layout/list_category.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- Copyright (C) 2009 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.
@@ -14,9 +14,5 @@
      limitations under the License.
 -->
 
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_above_anchor="true"
-        android:drawable="@drawable/spinner_dropdown_background_up" />
-    <item android:drawable="@drawable/spinner_dropdown_background_down" />
-</selector>
-
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    style="?android:attr/listSeparatorTextViewStyle" />
diff --git a/res/layout/list_checkbox_2lines.xml b/res/layout/list_checkbox_2lines.xml
new file mode 100644
index 0000000..ed80c5f
--- /dev/null
+++ b/res/layout/list_checkbox_2lines.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:gravity="center_vertical"
+    android:paddingRight="?android:attr/scrollbarSize">
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="15dip"
+        android:layout_marginRight="6dip"
+        android:layout_marginTop="6dip"
+        android:layout_marginBottom="6dip"
+        android:layout_weight="1">
+
+        <TextView android:id="@+id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:ellipsize="marquee"
+            android:fadingEdge="horizontal" />
+
+        <TextView android:id="@+id/summary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/title"
+            android:layout_alignLeft="@id/title"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:maxLines="2" />
+
+    </RelativeLayout>
+
+    <CheckBox
+        android:id="@+id/checkbox"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginRight="4dip"
+        android:layout_gravity="center_vertical"
+        android:focusable="false"
+        android:clickable="false" />
+
+</LinearLayout>
diff --git a/res/layout/rename_folder.xml b/res/layout/rename_folder.xml
index ba78995..cbb42b4 100644
--- a/res/layout/rename_folder.xml
+++ b/res/layout/rename_folder.xml
@@ -36,6 +36,7 @@
         android:autoText="false"
         android:capitalize="none"
         android:gravity="fill_horizontal"
+        android:maxLength="30"
         android:textAppearance="?android:attr/textAppearanceMedium" />
 
 </LinearLayout>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index f0cc369..c1de7f4 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -16,6 +16,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"Plocha"</string>
+    <string name="uid_name">"Android Core Apps"</string>
     <string name="folder_name">"Složka"</string>
     <string name="chooser_wallpaper">"Vybrat tapetu ze složky"</string>
     <string name="wallpaper_instructions">"Nastavit tapetu"</string>
@@ -26,31 +27,28 @@
     <string name="rename_action">"OK"</string>
     <string name="cancel_action">"Zrušit"</string>
     <string name="menu_item_add_item">"Přidat na plochu"</string>
-    <!-- no translation found for group_applications (4118484163419674240) -->
-    <skip />
-    <!-- no translation found for group_shortcuts (9133529424900391877) -->
-    <skip />
+    <string name="group_applications">"Aplikace"</string>
+    <string name="group_shortcuts">"Klávesové zkratky"</string>
     <string name="group_search">"Hledat"</string>
-    <!-- no translation found for group_folder (5143593791798929193) -->
-    <skip />
-    <!-- no translation found for group_live_folders (2664945399140647217) -->
-    <skip />
-    <!-- no translation found for group_widgets (6704978494073105844) -->
-    <skip />
-    <!-- no translation found for group_wallpapers (1568191644272224858) -->
-    <skip />
+    <string name="group_folder">"Nová složka"</string>
+    <string name="group_live_folders">"Složky"</string>
+    <string name="group_widgets">"Widgety"</string>
+    <string name="group_wallpapers">"Tapety"</string>
     <string name="add_folder">"Složka"</string>
     <string name="add_clock">"Hodiny"</string>
     <string name="add_photo_frame">"Rámeček fotografie"</string>
     <string name="add_search">"Vyhledávání"</string>
     <string name="out_of_space">"Na této ploše již není místo."</string>
+    <string name="shortcut_installed">"Zástupce %s je nainstalován."</string>
+    <string name="shortcut_uninstalled">"Zástupce %s byl odebrán."</string>
+    <string name="shortcut_duplicate">"Zástupce %s již existuje."</string>
     <string name="title_select_shortcut">"Vyberte zástupce"</string>
-    <!-- no translation found for title_select_live_folder (3753447798805166749) -->
-    <skip />
+    <string name="title_select_live_folder">"Vybrat složku"</string>
     <string name="menu_add">"Přidat"</string>
     <string name="menu_wallpaper">"Tapeta"</string>
     <string name="menu_search">"Hledat"</string>
     <string name="menu_notifications">"Oznámení"</string>
+    <string name="menu_gestures">"Gesta"</string>
     <string name="menu_settings">"Nastavení"</string>
     <string name="permlab_install_shortcut">"instalovat zástupce"</string>
     <string name="permdesc_install_shortcut">"Povoluje aplikaci přidat zástupce bez zásahu uživatele."</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
new file mode 100644
index 0000000..3050f00
--- /dev/null
+++ b/res/values-da/strings.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="application_name">"Start"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
+    <string name="folder_name">"Mappe"</string>
+    <string name="chooser_wallpaper">"Vælg tapet fra"</string>
+    <string name="wallpaper_instructions">"Angiv tapet"</string>
+    <string name="pick_wallpaper">"Tapetgalleri"</string>
+    <string name="activity_not_found">"Programmet er ikke installeret på din telefon."</string>
+    <string name="rename_folder_label">"Mappenavn"</string>
+    <string name="rename_folder_title">"Omdøb mappe"</string>
+    <string name="rename_action">"OK"</string>
+    <string name="cancel_action">"Annuller"</string>
+    <string name="menu_item_add_item">"Føj til Startskærm"</string>
+    <string name="group_applications">"Programmer"</string>
+    <string name="group_shortcuts">"Genveje"</string>
+    <string name="group_search">"Søg"</string>
+    <string name="group_folder">"Ny mappe"</string>
+    <string name="group_live_folders">"Mapper"</string>
+    <string name="group_widgets">"Widgets"</string>
+    <string name="group_wallpapers">"Tapeter"</string>
+    <string name="add_folder">"Mappe"</string>
+    <string name="add_clock">"Ur"</string>
+    <string name="add_photo_frame">"Billedramme"</string>
+    <string name="add_search">"Søg"</string>
+    <string name="out_of_space">"Der er ikke mere plads på Startskærmen."</string>
+    <!-- no translation found for shortcut_installed (6623689857689040689) -->
+    <skip />
+    <!-- no translation found for shortcut_uninstalled (2758997515869993129) -->
+    <skip />
+    <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
+    <skip />
+    <string name="title_select_shortcut">"Vælg genvej"</string>
+    <string name="title_select_live_folder">"Vælg mappe"</string>
+    <string name="menu_add">"Tilføj"</string>
+    <string name="menu_wallpaper">"Tapet"</string>
+    <string name="menu_search">"Søg"</string>
+    <string name="menu_notifications">"Meddelelser"</string>
+    <!-- no translation found for menu_gestures (514678675575912237) -->
+    <skip />
+    <string name="menu_settings">"Indstillinger"</string>
+    <string name="permlab_install_shortcut">"installer genveje"</string>
+    <string name="permdesc_install_shortcut">"Tillader et program at tilføje genveje uden brugerindgriben."</string>
+    <string name="permlab_uninstall_shortcut">"afinstaller genveje"</string>
+    <string name="permdesc_uninstall_shortcut">"Tillader et program at fjerne genveje uden brugerindgriben."</string>
+    <string name="permlab_read_settings">"læs indstillinger og genveje for Start"</string>
+    <string name="permdesc_read_settings">"Tillader et program at læse indstillingerne og genvejene i Start."</string>
+    <string name="permlab_write_settings">"skriv indstillinger og genveje for Start"</string>
+    <string name="permdesc_write_settings">"Tillader et program at ændre indstillingerne og genvejene i Start."</string>
+    <string name="search_hint">"Google-søgning"</string>
+    <string name="gadget_error_text">"Der er problemer med at indlæse widget"</string>
+</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 40f3cab..4dcb401 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -16,6 +16,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"Startseite"</string>
+    <string name="uid_name">"Android Core Apps"</string>
     <string name="folder_name">"Ordner"</string>
     <string name="chooser_wallpaper">"Hintergrund auswählen"</string>
     <string name="wallpaper_instructions">"Hintergrund festlegen"</string>
@@ -25,32 +26,29 @@
     <string name="rename_folder_title">"Ordner umbenennen"</string>
     <string name="rename_action">"OK"</string>
     <string name="cancel_action">"Abbrechen"</string>
-    <string name="menu_item_add_item">"Zur Startseite hinzufügen"</string>
-    <!-- no translation found for group_applications (4118484163419674240) -->
-    <skip />
-    <!-- no translation found for group_shortcuts (9133529424900391877) -->
-    <skip />
+    <string name="menu_item_add_item">"Zum Startbildschirm hinzufügen"</string>
+    <string name="group_applications">"Anwendungen"</string>
+    <string name="group_shortcuts">"Verknüpfungen"</string>
     <string name="group_search">"Suchen"</string>
-    <!-- no translation found for group_folder (5143593791798929193) -->
-    <skip />
-    <!-- no translation found for group_live_folders (2664945399140647217) -->
-    <skip />
-    <!-- no translation found for group_widgets (6704978494073105844) -->
-    <skip />
-    <!-- no translation found for group_wallpapers (1568191644272224858) -->
-    <skip />
+    <string name="group_folder">"Neuer Ordner"</string>
+    <string name="group_live_folders">"Ordner"</string>
+    <string name="group_widgets">"Widgets"</string>
+    <string name="group_wallpapers">"Hintergrundbilder"</string>
     <string name="add_folder">"Ordner"</string>
     <string name="add_clock">"Uhr"</string>
     <string name="add_photo_frame">"Bildrahmen"</string>
     <string name="add_search">"Suchen"</string>
-    <string name="out_of_space">"Auf der Startseite ist kein Platz mehr vorhanden."</string>
+    <string name="out_of_space">"Auf dem Startbildschirm ist kein Platz mehr vorhanden."</string>
+    <string name="shortcut_installed">"Verknüpfung \"%s\" ist installiert."</string>
+    <string name="shortcut_uninstalled">"Verknüpfung \"%s\" wurde entfernt."</string>
+    <string name="shortcut_duplicate">"Verknüpfung \"%s\" ist bereits vorhanden."</string>
     <string name="title_select_shortcut">"Tastenkürzel auswählen"</string>
-    <!-- no translation found for title_select_live_folder (3753447798805166749) -->
-    <skip />
+    <string name="title_select_live_folder">"Ordner auswählen"</string>
     <string name="menu_add">"Hinzufügen"</string>
     <string name="menu_wallpaper">"Hintergrund"</string>
     <string name="menu_search">"Suchen"</string>
     <string name="menu_notifications">"Benachrichtigungen"</string>
+    <string name="menu_gestures">"Bewegungen"</string>
     <string name="menu_settings">"Einstellungen"</string>
     <string name="permlab_install_shortcut">"Verknüpfungen installieren"</string>
     <string name="permdesc_install_shortcut">"Ermöglicht einer Anwendung das Hinzufügen von Verknüpfungen ohne Eingriff des Benutzers."</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
new file mode 100644
index 0000000..c0516b8
--- /dev/null
+++ b/res/values-el/strings.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="application_name">"Αρχική οθόνη"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
+    <string name="folder_name">"Φάκελος"</string>
+    <string name="chooser_wallpaper">"Επιλογή ταπετσαρίας από"</string>
+    <string name="wallpaper_instructions">"Ορισμός ταπετσαρίας"</string>
+    <string name="pick_wallpaper">"Συλλογή ταπετσαριών"</string>
+    <string name="activity_not_found">"Η εφαρμογή δεν έχει εγκατασταθεί στο τηλέφωνό σας."</string>
+    <string name="rename_folder_label">"Όνομα φακέλου"</string>
+    <string name="rename_folder_title">"Μετονομασία φακέλου"</string>
+    <string name="rename_action">"OK"</string>
+    <string name="cancel_action">"Ακύρωση"</string>
+    <string name="menu_item_add_item">"Προσθήκη στην αρχική οθόνη"</string>
+    <string name="group_applications">"Εφαρμογές"</string>
+    <string name="group_shortcuts">"Συντομεύσεις"</string>
+    <string name="group_search">"Αναζήτηση"</string>
+    <string name="group_folder">"Νέος φάκελος"</string>
+    <string name="group_live_folders">"Φάκελοι"</string>
+    <string name="group_widgets">"Γραφικά στοιχεία"</string>
+    <string name="group_wallpapers">"Ταπετσαρίες"</string>
+    <string name="add_folder">"Φάκελος"</string>
+    <string name="add_clock">"Ρολόι"</string>
+    <string name="add_photo_frame">"Πλαίσιο εικόνας"</string>
+    <string name="add_search">"Αναζήτηση"</string>
+    <string name="out_of_space">"Δεν υπάρχει χώρος σε αυτήν την αρχική οθόνη."</string>
+    <!-- no translation found for shortcut_installed (6623689857689040689) -->
+    <skip />
+    <!-- no translation found for shortcut_uninstalled (2758997515869993129) -->
+    <skip />
+    <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
+    <skip />
+    <string name="title_select_shortcut">"Επιλογή συντόμευσης"</string>
+    <string name="title_select_live_folder">"Επιλογή φακέλου"</string>
+    <string name="menu_add">"Προσθήκη"</string>
+    <string name="menu_wallpaper">"Ταπετσαρία"</string>
+    <string name="menu_search">"Αναζήτηση"</string>
+    <string name="menu_notifications">"Ειδοποιήσεις"</string>
+    <!-- no translation found for menu_gestures (514678675575912237) -->
+    <skip />
+    <string name="menu_settings">"Ρυθμίσεις"</string>
+    <string name="permlab_install_shortcut">"εγκατάσταση συντομεύσεων"</string>
+    <string name="permdesc_install_shortcut">"Επιτρέπει σε μια εφαρμογή την προσθήκη συντομεύσεων χωρίς την παρέμβαση του χρήστη."</string>
+    <string name="permlab_uninstall_shortcut">"κατάργηση εγκατάστασης συντομεύσεων"</string>
+    <string name="permdesc_uninstall_shortcut">"Επιτρέπει σε μια εφαρμογή την κατάργηση συντομεύσεων χωρίς την παρέμβαση του χρήστη."</string>
+    <string name="permlab_read_settings">"ανάγνωση ρυθμίσεων και συντομεύσεων αρχικής οθόνης"</string>
+    <string name="permdesc_read_settings">"Επιτρέπει σε μια εφαρμογή την ανάγνωση των ρυθμίσεων και των συντομεύσεων στην αρχική οθόνη."</string>
+    <string name="permlab_write_settings">"εγγραφή ρυθμίσεων και συντομεύσεων αρχικής οθόνης"</string>
+    <string name="permdesc_write_settings">"Επιτρέπει σε μια εφαρμογή την αλλαγή των ρυθμίσεων και των συντομεύσεων στην αρχική οθόνη."</string>
+    <string name="search_hint">"Αναζήτηση Google"</string>
+    <string name="gadget_error_text">"Παρουσιάστηκε πρόβλημα στη φόρτωση του γραφικού στοιχείου"</string>
+</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 221ab86..a2f12dc 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -16,6 +16,8 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"Página principal"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
     <string name="folder_name">"Carpeta"</string>
     <string name="chooser_wallpaper">"Seleccionar papel tapiz desde"</string>
     <string name="wallpaper_instructions">"Definir papel tapiz"</string>
@@ -26,19 +28,13 @@
     <string name="rename_action">"Aceptar"</string>
     <string name="cancel_action">"Cancelar"</string>
     <string name="menu_item_add_item">"Agregar a la pantalla Página principal"</string>
-    <!-- no translation found for group_applications (4118484163419674240) -->
-    <skip />
-    <!-- no translation found for group_shortcuts (9133529424900391877) -->
-    <skip />
+    <string name="group_applications">"Aplicaciones"</string>
+    <string name="group_shortcuts">"Accesos directos"</string>
     <string name="group_search">"Buscar"</string>
-    <!-- no translation found for group_folder (5143593791798929193) -->
-    <skip />
-    <!-- no translation found for group_live_folders (2664945399140647217) -->
-    <skip />
-    <!-- no translation found for group_widgets (6704978494073105844) -->
-    <skip />
-    <!-- no translation found for group_wallpapers (1568191644272224858) -->
-    <skip />
+    <string name="group_folder">"Carpeta nueva"</string>
+    <string name="group_live_folders">"Carpetas"</string>
+    <string name="group_widgets">"Controles"</string>
+    <string name="group_wallpapers">"Papeles tapiz"</string>
     <string name="add_folder">"Carpeta"</string>
     <string name="add_clock">"Reloj"</string>
     <string name="add_photo_frame">"Marco de imagen"</string>
@@ -51,12 +47,13 @@
     <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
     <skip />
     <string name="title_select_shortcut">"Seleccionar acceso directo"</string>
-    <!-- no translation found for title_select_live_folder (3753447798805166749) -->
-    <skip />
+    <string name="title_select_live_folder">"Seleccionar carpeta"</string>
     <string name="menu_add">"Agregar"</string>
     <string name="menu_wallpaper">"Papel tapiz"</string>
     <string name="menu_search">"Buscar"</string>
     <string name="menu_notifications">"Notificaciones"</string>
+    <!-- no translation found for menu_gestures (514678675575912237) -->
+    <skip />
     <string name="menu_settings">"Configuración"</string>
     <string name="permlab_install_shortcut">"instalar accesos directos"</string>
     <string name="permdesc_install_shortcut">"Permite a una aplicación agregar accesos directos sin intervención del usuario."</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 2c73c88..5bef440 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -16,6 +16,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"Página principal"</string>
+    <string name="uid_name">"Aplicaciones básicas de Android"</string>
     <string name="folder_name">"Carpeta"</string>
     <string name="chooser_wallpaper">"Seleccionar fondo de pantalla de"</string>
     <string name="wallpaper_instructions">"Establecer fondo de pantalla"</string>
@@ -38,12 +39,16 @@
     <string name="add_photo_frame">"Picture frame"</string>
     <string name="add_search">"Búsqueda de Google"</string>
     <string name="out_of_space">"No queda espacio en esta pantalla de página principal."</string>
+    <string name="shortcut_installed">"El acceso directo \"%s\" está instalado."</string>
+    <string name="shortcut_uninstalled">"Se ha eliminado el acceso directo \"%s\"."</string>
+    <string name="shortcut_duplicate">"El acceso directo \"%s\" ya existe."</string>
     <string name="title_select_shortcut">"Seleccionar acceso directo"</string>
     <string name="title_select_live_folder">"Seleccionar carpeta"</string>
     <string name="menu_add">"Añadir"</string>
     <string name="menu_wallpaper">"Fondo de pantalla"</string>
     <string name="menu_search">"Buscar con Google"</string>
     <string name="menu_notifications">"Notificaciones"</string>
+    <string name="menu_gestures">"Gestos"</string>
     <string name="menu_settings">"Ajustes"</string>
     <string name="permlab_install_shortcut">"instalar accesos directos"</string>
     <string name="permdesc_install_shortcut">"Permite que una aplicación añada accesos directos sin intervención del usuario."</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 7558565..91bea49 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -16,6 +16,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"Accueil"</string>
+    <string name="uid_name">"Applications de base Android"</string>
     <string name="folder_name">"Dossier"</string>
     <string name="chooser_wallpaper">"Sélectionner à partir de..."</string>
     <string name="wallpaper_instructions">"Sélectionner"</string>
@@ -36,14 +37,18 @@
     <string name="add_folder">"Dossier"</string>
     <string name="add_clock">"Horloge"</string>
     <string name="add_photo_frame">"Cadre d\'image"</string>
-    <string name="add_search">"Rechercher"</string>
+    <string name="add_search">"Recherche"</string>
     <string name="out_of_space">"Plus d\'espace libre sur l\'écran d\'accueil."</string>
+    <string name="shortcut_installed">"Le raccourci \"%s\" est installé."</string>
+    <string name="shortcut_uninstalled">"Le raccourci \"%s\" a été supprimé."</string>
+    <string name="shortcut_duplicate">"Le raccourci \"%s\" existe déjà."</string>
     <string name="title_select_shortcut">"Sélectionner un raccourci"</string>
     <string name="title_select_live_folder">"Sélectionner le dossier"</string>
     <string name="menu_add">"Ajouter"</string>
-    <string name="menu_wallpaper">"Arrière-plan"</string>
+    <string name="menu_wallpaper">"Fond d\'écran"</string>
     <string name="menu_search">"Rechercher"</string>
     <string name="menu_notifications">"Notifications"</string>
+    <string name="menu_gestures">"Gestes"</string>
     <string name="menu_settings">"Paramètres"</string>
     <string name="permlab_install_shortcut">"installer des raccourcis"</string>
     <string name="permdesc_install_shortcut">"Permet à une application d\'ajouter des raccourcis sans l\'intervention de l\'utilisateur."</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 135df4c..404bb3a 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -16,6 +16,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"Home"</string>
+    <string name="uid_name">"Android Core Apps"</string>
     <string name="folder_name">"Cartella"</string>
     <string name="chooser_wallpaper">"Seleziona sfondo da"</string>
     <string name="wallpaper_instructions">"Imposta sfondo"</string>
@@ -38,12 +39,16 @@
     <string name="add_photo_frame">"Cornice immagini"</string>
     <string name="add_search">"Ricerca"</string>
     <string name="out_of_space">"Spazio nella schermata Home esaurito."</string>
+    <string name="shortcut_installed">"La scorciatoia \"%s\" è installata."</string>
+    <string name="shortcut_uninstalled">"La scorciatoia \"%s\" è stata rimossa."</string>
+    <string name="shortcut_duplicate">"Scorciatoia \"%s\" già presente."</string>
     <string name="title_select_shortcut">"Seleziona collegamento"</string>
     <string name="title_select_live_folder">"Seleziona cartella"</string>
     <string name="menu_add">"Aggiungi"</string>
     <string name="menu_wallpaper">"Sfondo"</string>
     <string name="menu_search">"Cerca"</string>
     <string name="menu_notifications">"Notifiche"</string>
+    <string name="menu_gestures">"Gesti"</string>
     <string name="menu_settings">"Impostazioni"</string>
     <string name="permlab_install_shortcut">"aggiungere scorciatorie"</string>
     <string name="permdesc_install_shortcut">"Consente a un\'applicazione di aggiungere scorciatoie automaticamente."</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 8c43e52..c2391c0 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -16,6 +16,8 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"ホーム"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
     <string name="folder_name">"フォルダ"</string>
     <string name="chooser_wallpaper">"壁紙を選択"</string>
     <string name="wallpaper_instructions">"壁紙に設定"</string>
@@ -38,12 +40,20 @@
     <string name="add_photo_frame">"写真フレーム"</string>
     <string name="add_search">"検索"</string>
     <string name="out_of_space">"ホーム画面に空きスペースがありません。"</string>
+    <!-- no translation found for shortcut_installed (6623689857689040689) -->
+    <skip />
+    <!-- no translation found for shortcut_uninstalled (2758997515869993129) -->
+    <skip />
+    <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
+    <skip />
     <string name="title_select_shortcut">"ショートカットを選択"</string>
     <string name="title_select_live_folder">"フォルダの選択"</string>
     <string name="menu_add">"追加"</string>
     <string name="menu_wallpaper">"壁紙"</string>
     <string name="menu_search">"検索"</string>
     <string name="menu_notifications">"通知"</string>
+    <!-- no translation found for menu_gestures (514678675575912237) -->
+    <skip />
     <string name="menu_settings">"設定"</string>
     <string name="permlab_install_shortcut">"ショートカットのインストール"</string>
     <string name="permdesc_install_shortcut">"ユーザー操作なしでショートカットの追加をアプリケーションに許可します。"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 37ba73c..43f27a7 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -16,11 +16,13 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"홈"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
     <string name="folder_name">"폴더"</string>
     <string name="chooser_wallpaper">"배경화면 선택"</string>
     <string name="wallpaper_instructions">"배경화면 설정"</string>
     <string name="pick_wallpaper">"배경화면 갤러리"</string>
-    <string name="activity_not_found">"전화기에 설치되어 있지 않은 응용프로그램입니다."</string>
+    <string name="activity_not_found">"휴대전화에 설치되어 있지 않은 응용프로그램입니다."</string>
     <string name="rename_folder_label">"폴더 이름"</string>
     <string name="rename_folder_title">"폴더 이름 바꾸기"</string>
     <string name="rename_action">"확인"</string>
@@ -38,21 +40,29 @@
     <string name="add_photo_frame">"사진 프레임"</string>
     <string name="add_search">"검색"</string>
     <string name="out_of_space">"홈 화면에 더 이상 공간이 없습니다."</string>
+    <!-- no translation found for shortcut_installed (6623689857689040689) -->
+    <skip />
+    <!-- no translation found for shortcut_uninstalled (2758997515869993129) -->
+    <skip />
+    <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
+    <skip />
     <string name="title_select_shortcut">"바로가기 선택"</string>
     <string name="title_select_live_folder">"폴더 선택"</string>
     <string name="menu_add">"추가"</string>
     <string name="menu_wallpaper">"배경화면"</string>
     <string name="menu_search">"검색"</string>
     <string name="menu_notifications">"알림"</string>
+    <!-- no translation found for menu_gestures (514678675575912237) -->
+    <skip />
     <string name="menu_settings">"설정"</string>
     <string name="permlab_install_shortcut">"바로가기 설치"</string>
     <string name="permdesc_install_shortcut">"응용프로그램이 사용자의 작업 없이 바로가기를 추가할 수 있도록 합니다."</string>
     <string name="permlab_uninstall_shortcut">"바로가기 제거"</string>
-    <string name="permdesc_uninstall_shortcut">"응용프로그램이 사용자의 작업 없이 바로가기를 제거할 수 있도록 합니다."</string>
+    <string name="permdesc_uninstall_shortcut">"응용프로그램이 사용자의 작업 없이 바로가기를 삭제할 수 있도록 합니다."</string>
     <string name="permlab_read_settings">"홈 설정 및 바로가기 읽기"</string>
-    <string name="permdesc_read_settings">"응용프로그램이 홈에 있는 설정 및 바로가기를 읽을 수 있습니다."</string>
+    <string name="permdesc_read_settings">"응용프로그램이 홈에 있는 설정 및 바로가기를 읽을 수 있도록 합니다."</string>
     <string name="permlab_write_settings">"홈 설정 및 바로가기 쓰기"</string>
-    <string name="permdesc_write_settings">"응용프로그램이 홈에 있는 설정 및 바로가기를 변경할 수 있습니다."</string>
+    <string name="permdesc_write_settings">"응용프로그램이 홈에 있는 설정 및 바로가기를 변경할 수 있도록 합니다."</string>
     <string name="search_hint">"Google 검색"</string>
     <string name="gadget_error_text">"위젯을 로드하는 중 문제가 발생했습니다."</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 954b5d7..8189f09 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -16,6 +16,8 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"Hjem"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
     <string name="folder_name">"Mappe"</string>
     <string name="chooser_wallpaper">"Velg bakgrunnsbilde fra"</string>
     <string name="wallpaper_instructions">"Velg bakgrunnsbilde"</string>
@@ -26,31 +28,32 @@
     <string name="rename_action">"OK"</string>
     <string name="cancel_action">"Avbryt"</string>
     <string name="menu_item_add_item">"Legg til skrivebord"</string>
-    <!-- no translation found for group_applications (4118484163419674240) -->
-    <skip />
-    <!-- no translation found for group_shortcuts (9133529424900391877) -->
-    <skip />
+    <string name="group_applications">"Applikasjoner"</string>
+    <string name="group_shortcuts">"Snarveier"</string>
     <string name="group_search">"Søk"</string>
-    <!-- no translation found for group_folder (5143593791798929193) -->
-    <skip />
-    <!-- no translation found for group_live_folders (2664945399140647217) -->
-    <skip />
-    <!-- no translation found for group_widgets (6704978494073105844) -->
-    <skip />
-    <!-- no translation found for group_wallpapers (1568191644272224858) -->
-    <skip />
+    <string name="group_folder">"Ny mappe"</string>
+    <string name="group_live_folders">"Mapper"</string>
+    <string name="group_widgets">"Skrivebordselementer"</string>
+    <string name="group_wallpapers">"Bakgrunner"</string>
     <string name="add_folder">"Mappe"</string>
     <string name="add_clock">"Klokke"</string>
     <string name="add_photo_frame">"Bilderamme"</string>
     <string name="add_search">"Søk"</string>
     <string name="out_of_space">"Ikke nok plass på skrivebordet."</string>
-    <string name="title_select_shortcut">"Velg snarvei"</string>
-    <!-- no translation found for title_select_live_folder (3753447798805166749) -->
+    <!-- no translation found for shortcut_installed (6623689857689040689) -->
     <skip />
+    <!-- no translation found for shortcut_uninstalled (2758997515869993129) -->
+    <skip />
+    <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
+    <skip />
+    <string name="title_select_shortcut">"Velg snarvei"</string>
+    <string name="title_select_live_folder">"Velg mappe"</string>
     <string name="menu_add">"Legg til"</string>
     <string name="menu_wallpaper">"Bakgrunnsbilde"</string>
     <string name="menu_search">"Søk"</string>
     <string name="menu_notifications">"Varslinger"</string>
+    <!-- no translation found for menu_gestures (514678675575912237) -->
+    <skip />
     <string name="menu_settings">"Innstillinger"</string>
     <string name="permlab_install_shortcut">"installere snarveier"</string>
     <string name="permdesc_install_shortcut">"Lar applikasjonen legge til snarveier uten å involvere brukeren."</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 9a37fed..f3db12e 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -16,6 +16,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"Startpagina"</string>
+    <string name="uid_name">"Android-kerntoepassingen"</string>
     <string name="folder_name">"Map"</string>
     <string name="chooser_wallpaper">"Achtergrond selecteren in"</string>
     <string name="wallpaper_instructions">"Achtergrond instellen"</string>
@@ -38,12 +39,16 @@
     <string name="add_photo_frame">"Fotolijstje"</string>
     <string name="add_search">"Zoeken"</string>
     <string name="out_of_space">"Er is geen ruimte meer op dit startscherm."</string>
+    <string name="shortcut_installed">"Snelkoppeling \'%s\' is geïnstalleerd."</string>
+    <string name="shortcut_uninstalled">"Snelkoppeling \'%s\' is verwijderd."</string>
+    <string name="shortcut_duplicate">"Snelkoppeling \'%s\' bestaat al."</string>
     <string name="title_select_shortcut">"Snelkoppeling selecteren"</string>
     <string name="title_select_live_folder">"Map selecteren"</string>
     <string name="menu_add">"Toevoegen"</string>
     <string name="menu_wallpaper">"Achtergrond"</string>
     <string name="menu_search">"Zoeken"</string>
     <string name="menu_notifications">"Meldingen"</string>
+    <string name="menu_gestures">"Gebaren"</string>
     <string name="menu_settings">"Instellingen"</string>
     <string name="permlab_install_shortcut">"snelkoppelingen installeren"</string>
     <string name="permdesc_install_shortcut">"Een toepassing toestaan om snelkoppelingen toe te voegen zonder tussenkomst van de gebruiker."</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index d5b26a9..ac5d9f3 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -16,6 +16,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"Sieć"</string>
+    <string name="uid_name">"Aplikacje główne systemu Android"</string>
     <string name="folder_name">"Folder"</string>
     <string name="chooser_wallpaper">"Wybierz tapetę"</string>
     <string name="wallpaper_instructions">"Ustaw tapetę"</string>
@@ -38,12 +39,16 @@
     <string name="add_photo_frame">"Ramka obrazu"</string>
     <string name="add_search">"Wyszukiwarka"</string>
     <string name="out_of_space">"Brak miejsca na tej stronie głównej"</string>
+    <string name="shortcut_installed">"Skrót „%s” został zainstalowany."</string>
+    <string name="shortcut_uninstalled">"Skrót „%s” został usunięty."</string>
+    <string name="shortcut_duplicate">"Skrót „%s” już istnieje."</string>
     <string name="title_select_shortcut">"Wybierz skrót"</string>
     <string name="title_select_live_folder">"Wybierz folder"</string>
     <string name="menu_add">"Dodaj"</string>
     <string name="menu_wallpaper">"Tapeta"</string>
     <string name="menu_search">"Szukaj"</string>
     <string name="menu_notifications">"Powiadomienia"</string>
+    <string name="menu_gestures">"Gesty"</string>
     <string name="menu_settings">"Ustawienia"</string>
     <string name="permlab_install_shortcut">"zainstaluj skróty"</string>
     <string name="permdesc_install_shortcut">"Umożliwia aplikacji dodawanie skrótów bez interwencji użytkownika."</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..04afce3
--- /dev/null
+++ b/res/values-pt-rPT/strings.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="application_name">"Home"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
+    <string name="folder_name">"Pasta"</string>
+    <string name="chooser_wallpaper">"Seleccionar imagem de fundo a partir de"</string>
+    <string name="wallpaper_instructions">"Definir imagem de fundo"</string>
+    <string name="pick_wallpaper">"Galeria de imagens de fundo"</string>
+    <string name="activity_not_found">"A aplicação não está instalada no telefone."</string>
+    <string name="rename_folder_label">"Nome da pasta"</string>
+    <string name="rename_folder_title">"Mudar o nome da pasta"</string>
+    <string name="rename_action">"OK"</string>
+    <string name="cancel_action">"Cancelar"</string>
+    <string name="menu_item_add_item">"Adicionar ao ecrã principal"</string>
+    <string name="group_applications">"Aplicações"</string>
+    <string name="group_shortcuts">"Atalhos"</string>
+    <string name="group_search">"Pesquisar"</string>
+    <string name="group_folder">"Nova pasta"</string>
+    <string name="group_live_folders">"Pastas"</string>
+    <string name="group_widgets">"Widgets"</string>
+    <string name="group_wallpapers">"Imagens de fundo"</string>
+    <string name="add_folder">"Pasta"</string>
+    <string name="add_clock">"Relógio"</string>
+    <string name="add_photo_frame">"Moldura de imagem"</string>
+    <string name="add_search">"Pesquisar"</string>
+    <string name="out_of_space">"Não existe espaço suficiente neste ecrã principal."</string>
+    <!-- no translation found for shortcut_installed (6623689857689040689) -->
+    <skip />
+    <!-- no translation found for shortcut_uninstalled (2758997515869993129) -->
+    <skip />
+    <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
+    <skip />
+    <string name="title_select_shortcut">"Seleccione o atalho"</string>
+    <string name="title_select_live_folder">"Seleccione a pasta"</string>
+    <string name="menu_add">"Adicionar"</string>
+    <string name="menu_wallpaper">"Imagem de fundo"</string>
+    <string name="menu_search">"Pesquisar"</string>
+    <string name="menu_notifications">"Notificações"</string>
+    <!-- no translation found for menu_gestures (514678675575912237) -->
+    <skip />
+    <string name="menu_settings">"Definições"</string>
+    <string name="permlab_install_shortcut">"instalar atalhos"</string>
+    <string name="permdesc_install_shortcut">"Permite que uma aplicação adicione atalhos sem a intervenção do utilizador."</string>
+    <string name="permlab_uninstall_shortcut">"desinstalar atalhos"</string>
+    <string name="permdesc_uninstall_shortcut">"Permite que uma aplicação remova atalhos sem a intervenção do utilizador."</string>
+    <string name="permlab_read_settings">"ler definições e atalhos do ecrã principal"</string>
+    <string name="permdesc_read_settings">"Permite que uma aplicação leia as definições e os atalhos do ecrã principal."</string>
+    <string name="permlab_write_settings">"escrever definições e atalhos do ecrã principal"</string>
+    <string name="permdesc_write_settings">"Permite que uma aplicação altere as definições e os atalhos do ecrã principal."</string>
+    <string name="search_hint">"Pesquisa do Google"</string>
+    <string name="gadget_error_text">"Erro ao carregar o widget"</string>
+</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 5fe05ce..a2b3b5c 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -15,46 +15,39 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="application_name">"Página Inicial do Google"</string>
+    <string name="application_name">"Página inicial"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
     <string name="folder_name">"Pasta"</string>
-    <string name="chooser_wallpaper">"Selecionar papel de parede da"</string>
+    <string name="chooser_wallpaper">"Selecionar papel de parede de"</string>
     <string name="wallpaper_instructions">"Definir papel de parede"</string>
-    <string name="pick_wallpaper">"Galeria de papéis de parede"</string>
+    <string name="pick_wallpaper">"Galeria de papel de parede"</string>
     <string name="activity_not_found">"O aplicativo não está instalado no seu telefone."</string>
     <string name="rename_folder_label">"Nome da pasta"</string>
     <string name="rename_folder_title">"Renomear pasta"</string>
     <string name="rename_action">"OK"</string>
     <string name="cancel_action">"Cancelar"</string>
-    <string name="menu_item_add_item">"Adicionar à tela inicial"</string>
-    <!-- no translation found for group_applications (4118484163419674240) -->
-    <skip />
-    <!-- no translation found for group_shortcuts (9133529424900391877) -->
-    <skip />
-    <!-- no translation found for group_search (5905328940867162196) -->
-    <skip />
-    <!-- no translation found for group_folder (5143593791798929193) -->
-    <skip />
-    <!-- no translation found for group_live_folders (2664945399140647217) -->
-    <skip />
-    <!-- no translation found for group_widgets (6704978494073105844) -->
-    <skip />
-    <!-- no translation found for group_wallpapers (1568191644272224858) -->
-    <skip />
+    <string name="menu_item_add_item">"Adicionar à tela da Página inicial"</string>
+    <string name="group_applications">"Aplicativos"</string>
+    <string name="group_shortcuts">"Atalhos"</string>
+    <string name="group_search">"Pesquisar"</string>
+    <string name="group_folder">"Nova pasta"</string>
+    <string name="group_live_folders">"Pastas"</string>
+    <string name="group_widgets">"Widgets"</string>
+    <string name="group_wallpapers">"Papéis de parede"</string>
     <string name="add_folder">"Pasta"</string>
     <string name="add_clock">"Relógio"</string>
-    <string name="add_photo_frame">"Moldura"</string>
+    <string name="add_photo_frame">"Frame da imagem"</string>
     <string name="add_search">"Pesquisar"</string>
-    <string name="out_of_space">"Não há mais espaço nesta página inicial."</string>
+    <string name="out_of_space">"Não há mais espaço nesta tela da Página inicial."</string>
     <!-- no translation found for shortcut_installed (6623689857689040689) -->
     <skip />
     <!-- no translation found for shortcut_uninstalled (2758997515869993129) -->
     <skip />
     <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
     <skip />
-    <!-- no translation found for title_select_shortcut (2858897527672831763) -->
-    <skip />
-    <!-- no translation found for title_select_live_folder (3753447798805166749) -->
-    <skip />
+    <string name="title_select_shortcut">"Selecionar atalho"</string>
+    <string name="title_select_live_folder">"Selecionar pasta"</string>
     <string name="menu_add">"Adicionar"</string>
     <string name="menu_wallpaper">"Papel de parede"</string>
     <string name="menu_search">"Pesquisar"</string>
@@ -63,38 +56,13 @@
     <skip />
     <string name="menu_settings">"Configurações"</string>
     <string name="permlab_install_shortcut">"instalar atalhos"</string>
-    <string name="permdesc_install_shortcut">"Permite que um aplicativo adicione atalhos sem a intervenção do usuário."</string>
+    <string name="permdesc_install_shortcut">"Permite que um aplicativo adicione os atalhos sem a intervenção do usuário."</string>
     <string name="permlab_uninstall_shortcut">"desinstalar atalhos"</string>
-    <string name="permdesc_uninstall_shortcut">"Permite que um aplicativo remova atalhos sem a intervenção do usuário."</string>
-    <string name="permlab_read_settings">"leia as configurações e atalhos da página inicial"</string>
-    <string name="permdesc_read_settings">"Permite que um aplicativo leia as configurações e atalhos na página inicial."</string>
-    <string name="permlab_write_settings">"grave as configurações e atalhos da página inicial"</string>
-    <string name="permdesc_write_settings">"Permite que um aplicativo altere as configurações e atalhos na página inicial."</string>
-    <string name="search_hint">"Google Search"</string>
-    <!-- no translation found for gadget_error_text (8359351016167075858) -->
-    <skip />
-    <!-- no translation found for gestures_instructions (1099425576530504561) -->
-    <skip />
-    <!-- no translation found for gestures_unknown (309008617423088837) -->
-    <skip />
-    <!-- no translation found for gestures_created (8116808500193613741) -->
-    <skip />
-    <!-- no translation found for gestures_failed (5113829215530311557) -->
-    <skip />
-    <!-- no translation found for gestures_loading (6325241735907189384) -->
-    <skip />
-    <!-- no translation found for gestures_empty (8923837437173732411) -->
-    <skip />
-    <!-- no translation found for gestures_activity (3366108186921084558) -->
-    <skip />
-    <!-- no translation found for gestures_rename (713510200890627175) -->
-    <skip />
-    <!-- no translation found for gestures_delete (6962559975386260201) -->
-    <skip />
-    <!-- no translation found for gestures_delete_success (2961655691848002690) -->
-    <skip />
-    <!-- no translation found for gestures_rename_title (7463326669074661915) -->
-    <skip />
-    <!-- no translation found for gestures_rename_label (8790363956270703745) -->
-    <skip />
+    <string name="permdesc_uninstall_shortcut">"Permite que um aplicativo remova os atalhos sem a intervenção do usuário."</string>
+    <string name="permlab_read_settings">"ler configurações e atalhos da Página inicial"</string>
+    <string name="permdesc_read_settings">"Permite que um aplicativo leia as configurações e atalhos na Página inicial."</string>
+    <string name="permlab_write_settings">"gravar configurações e atalhos da Página inicial"</string>
+    <string name="permdesc_write_settings">"Permite que um aplicativo altere as configurações e atalhos na Página inicial."</string>
+    <string name="search_hint">"Pesquisa do Google"</string>
+    <string name="gadget_error_text">"Problema ao carregar o widget"</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 317e9ba..dea57b3 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -16,17 +16,19 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"Главный экран"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
     <string name="folder_name">"Папка"</string>
-    <string name="chooser_wallpaper">"Выбор фонового рисунка из"</string>
-    <string name="wallpaper_instructions">"Установить фоновый рисунок"</string>
-    <string name="pick_wallpaper">"Галерея фоновых рисунков"</string>
-    <string name="activity_not_found">"Это приложение отсутствует на вашем телефоне."</string>
+    <string name="chooser_wallpaper">"Выбрать обои из:"</string>
+    <string name="wallpaper_instructions">"Установить обои"</string>
+    <string name="pick_wallpaper">"Фотоальбом: обои"</string>
+    <string name="activity_not_found">"Приложение не установлено на телефоне."</string>
     <string name="rename_folder_label">"Название папки"</string>
-    <string name="rename_folder_title">"Переименование папки"</string>
+    <string name="rename_folder_title">"Переименовать папку"</string>
     <string name="rename_action">"ОК"</string>
     <string name="cancel_action">"Отмена"</string>
-    <string name="menu_item_add_item">"Добавление на главный экран"</string>
-    <string name="group_applications">"Программы"</string>
+    <string name="menu_item_add_item">"Добавить на главный экран"</string>
+    <string name="group_applications">"Приложения"</string>
     <string name="group_shortcuts">"Ярлыки"</string>
     <string name="group_search">"Поиск"</string>
     <string name="group_folder">"Новая папка"</string>
@@ -35,23 +37,31 @@
     <string name="group_wallpapers">"Обои"</string>
     <string name="add_folder">"Папка"</string>
     <string name="add_clock">"Часы"</string>
-    <string name="add_photo_frame">"Рамка для картинки"</string>
+    <string name="add_photo_frame">"Рамка фотографии"</string>
     <string name="add_search">"Поиск"</string>
-    <string name="out_of_space">"На главном экране больше нет места."</string>
+    <string name="out_of_space">"На этом главном экране нет свободного места."</string>
+    <!-- no translation found for shortcut_installed (6623689857689040689) -->
+    <skip />
+    <!-- no translation found for shortcut_uninstalled (2758997515869993129) -->
+    <skip />
+    <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
+    <skip />
     <string name="title_select_shortcut">"Выберите ярлык"</string>
     <string name="title_select_live_folder">"Выбор папки"</string>
     <string name="menu_add">"Добавить"</string>
-    <string name="menu_wallpaper">"Фоновый рисунок"</string>
-    <string name="menu_search">"Искать"</string>
+    <string name="menu_wallpaper">"Обои"</string>
+    <string name="menu_search">"Поиск"</string>
     <string name="menu_notifications">"Уведомления"</string>
+    <!-- no translation found for menu_gestures (514678675575912237) -->
+    <skip />
     <string name="menu_settings">"Настройки"</string>
-    <string name="permlab_install_shortcut">"установить ярлыки"</string>
-    <string name="permdesc_install_shortcut">"Позволяет приложению добавлять ярлыки без участия пользователя."</string>
-    <string name="permlab_uninstall_shortcut">"удалить ярлыки"</string>
-    <string name="permdesc_uninstall_shortcut">"Позволяет приложению удалять ярлыки без участия пользователя."</string>
-    <string name="permlab_read_settings">"считывать ярлыки и настройки главного экрана"</string>
+    <string name="permlab_install_shortcut">"устанавливать ярлыки"</string>
+    <string name="permdesc_install_shortcut">"Позволяет приложению добавлять ярлыки без вмешательства пользователя"</string>
+    <string name="permlab_uninstall_shortcut">"удалять ярлыки"</string>
+    <string name="permdesc_uninstall_shortcut">"Позволяет приложению удалять ярлыки без участия пользователя"</string>
+    <string name="permlab_read_settings">"считывать настройки и ярлыки главного экрана"</string>
     <string name="permdesc_read_settings">"Позволяет приложению считывать настройки и ярлыки на главном экране."</string>
-    <string name="permlab_write_settings">"записывать ярлыки и настройки главного экрана"</string>
+    <string name="permlab_write_settings">"изменять настройки и ярлыки главного экрана"</string>
     <string name="permdesc_write_settings">"Позволяет приложению изменять настройки и ярлыки на главном экране."</string>
     <string name="search_hint">"Поиск Google"</string>
     <string name="gadget_error_text">"Не удалось загрузить виджет"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
new file mode 100644
index 0000000..142ec0c
--- /dev/null
+++ b/res/values-sv/strings.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="application_name">"Start"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
+    <string name="folder_name">"Mapp"</string>
+    <string name="chooser_wallpaper">"Välj bakgrund från"</string>
+    <string name="wallpaper_instructions">"Ange bakgrund"</string>
+    <string name="pick_wallpaper">"Bakgrundsgalleri"</string>
+    <string name="activity_not_found">"Programmet är inte installerat på din telefon."</string>
+    <string name="rename_folder_label">"Mappnamn"</string>
+    <string name="rename_folder_title">"Byt namn på mapp"</string>
+    <string name="rename_action">"OK"</string>
+    <string name="cancel_action">"Avbryt"</string>
+    <string name="menu_item_add_item">"Lägg till på startsidan"</string>
+    <string name="group_applications">"Program"</string>
+    <string name="group_shortcuts">"Genvägar"</string>
+    <string name="group_search">"Sök"</string>
+    <string name="group_folder">"Ny mapp"</string>
+    <string name="group_live_folders">"Mappar"</string>
+    <string name="group_widgets">"Widgetar"</string>
+    <string name="group_wallpapers">"Bakgrundsbilder"</string>
+    <string name="add_folder">"Mapp"</string>
+    <string name="add_clock">"Klocka"</string>
+    <string name="add_photo_frame">"Bildram"</string>
+    <string name="add_search">"Sök"</string>
+    <string name="out_of_space">"Det finns inte plats för mer på den här startsidan."</string>
+    <!-- no translation found for shortcut_installed (6623689857689040689) -->
+    <skip />
+    <!-- no translation found for shortcut_uninstalled (2758997515869993129) -->
+    <skip />
+    <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
+    <skip />
+    <string name="title_select_shortcut">"Välj genväg"</string>
+    <string name="title_select_live_folder">"Välj mapp"</string>
+    <string name="menu_add">"Lägg till"</string>
+    <string name="menu_wallpaper">"Bakgrund"</string>
+    <string name="menu_search">"Sök"</string>
+    <string name="menu_notifications">"Aviseringar"</string>
+    <!-- no translation found for menu_gestures (514678675575912237) -->
+    <skip />
+    <string name="menu_settings">"Inställningar"</string>
+    <string name="permlab_install_shortcut">"installera genvägar"</string>
+    <string name="permdesc_install_shortcut">"Tillåter att ett program lägger till genvägar utan åtgärd från användaren."</string>
+    <string name="permlab_uninstall_shortcut">"avinstallera genvägar"</string>
+    <string name="permdesc_uninstall_shortcut">"Tillåter att ett program tar bort genvägar utan åtgärd från användaren."</string>
+    <string name="permlab_read_settings">"läsa inställningar och genvägar för startsidan"</string>
+    <string name="permdesc_read_settings">"Tillåter att ett program läser inställningar och genvägar på startsidan."</string>
+    <string name="permlab_write_settings">"skriva inställningar och genvägar för startsidan"</string>
+    <string name="permdesc_write_settings">"Tillåter att ett program ändrar inställningar och genvägar på startsidan."</string>
+    <string name="search_hint">"Google Sökning"</string>
+    <string name="gadget_error_text">"Det gick inte att läsa in widgeten"</string>
+</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
new file mode 100644
index 0000000..218e50a
--- /dev/null
+++ b/res/values-tr/strings.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="application_name">"Ana Sayfa"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
+    <string name="folder_name">"Klasör"</string>
+    <string name="chooser_wallpaper">"Buradan duvar kağıdını seçin:"</string>
+    <string name="wallpaper_instructions">"Duvar kağıdını ayarla"</string>
+    <string name="pick_wallpaper">"Duvar kağıdı galerisi"</string>
+    <string name="activity_not_found">"Uygulama telefonunuza yüklenmemiş."</string>
+    <string name="rename_folder_label">"Klasör adı"</string>
+    <string name="rename_folder_title">"Klasörü yeniden adlandır"</string>
+    <string name="rename_action">"Tamam"</string>
+    <string name="cancel_action">"İptal"</string>
+    <string name="menu_item_add_item">"Ana ekrana ekle"</string>
+    <string name="group_applications">"Uygulamalar"</string>
+    <string name="group_shortcuts">"Kısayollar"</string>
+    <string name="group_search">"Arama"</string>
+    <string name="group_folder">"Yeni klasör"</string>
+    <string name="group_live_folders">"Klasörler"</string>
+    <string name="group_widgets">"Widget\'lar"</string>
+    <string name="group_wallpapers">"Duvar Kağıtları"</string>
+    <string name="add_folder">"Klasör"</string>
+    <string name="add_clock">"Saat"</string>
+    <string name="add_photo_frame">"Resim çerçevesi"</string>
+    <string name="add_search">"Arama"</string>
+    <string name="out_of_space">"Bu Ana ekranda başka yer yok."</string>
+    <!-- no translation found for shortcut_installed (6623689857689040689) -->
+    <skip />
+    <!-- no translation found for shortcut_uninstalled (2758997515869993129) -->
+    <skip />
+    <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
+    <skip />
+    <string name="title_select_shortcut">"Kısayolu seçin"</string>
+    <string name="title_select_live_folder">"Klasörü seçin"</string>
+    <string name="menu_add">"Ekle"</string>
+    <string name="menu_wallpaper">"Duvar Kağıdı"</string>
+    <string name="menu_search">"Ara"</string>
+    <string name="menu_notifications">"Bildirimler"</string>
+    <!-- no translation found for menu_gestures (514678675575912237) -->
+    <skip />
+    <string name="menu_settings">"Ayarlar"</string>
+    <string name="permlab_install_shortcut">"kısayolları yükle"</string>
+    <string name="permdesc_install_shortcut">"Bir uygulamaya, kısayolları kullanıcı müdahale etmeden ekleme izni verir."</string>
+    <string name="permlab_uninstall_shortcut">"kısayolları kaldır"</string>
+    <string name="permdesc_uninstall_shortcut">"Bir uygulamaya, kısayolları kullanıcı müdahale etmeden kaldırma izni verir."</string>
+    <string name="permlab_read_settings">"Ana Sayfa ayarlarını ve kısayollarını oku"</string>
+    <string name="permdesc_read_settings">"Bir uygulamaya Ana Sayfadaki ayarları ve kısayolları okuma izni verir."</string>
+    <string name="permlab_write_settings">"Ana Sayfa ayarlarını ve kısayollarını yaz"</string>
+    <string name="permdesc_write_settings">"Bir uygulamaya Ana Sayfadaki ayarları ve kısayolları değiştirme izni verir."</string>
+    <string name="search_hint">"Google Arama"</string>
+    <string name="gadget_error_text">"Widget yüklenirken sorun oluştu"</string>
+</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 7e359d6..fc53e54 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -15,51 +15,54 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="application_name">"主页"</string>
+    <string name="application_name">"主屏幕"</string>
+    <!-- no translation found for uid_name (3371120195364560632) -->
+    <skip />
     <string name="folder_name">"文件夹"</string>
-    <string name="chooser_wallpaper">"选择壁纸"</string>
+    <string name="chooser_wallpaper">"选择壁纸来源"</string>
     <string name="wallpaper_instructions">"设置壁纸"</string>
     <string name="pick_wallpaper">"壁纸图库"</string>
-    <string name="activity_not_found">"您的手机上没有安装应用程序。"</string>
-    <string name="rename_folder_label">"文件夹名"</string>
+    <string name="activity_not_found">"您的手机上未安装应用程序。"</string>
+    <string name="rename_folder_label">"文件夹名称"</string>
     <string name="rename_folder_title">"重命名文件夹"</string>
     <string name="rename_action">"确定"</string>
     <string name="cancel_action">"取消"</string>
-    <string name="menu_item_add_item">"添加到“主页”屏幕"</string>
-    <!-- no translation found for group_applications (4118484163419674240) -->
-    <skip />
-    <!-- no translation found for group_shortcuts (9133529424900391877) -->
-    <skip />
+    <string name="menu_item_add_item">"添加到主屏幕"</string>
+    <string name="group_applications">"应用程序"</string>
+    <string name="group_shortcuts">"快捷方式"</string>
     <string name="group_search">"搜索"</string>
-    <!-- no translation found for group_folder (5143593791798929193) -->
-    <skip />
-    <!-- no translation found for group_live_folders (2664945399140647217) -->
-    <skip />
-    <!-- no translation found for group_widgets (6704978494073105844) -->
-    <skip />
-    <!-- no translation found for group_wallpapers (1568191644272224858) -->
-    <skip />
+    <string name="group_folder">"新建文件夹"</string>
+    <string name="group_live_folders">"文件夹"</string>
+    <string name="group_widgets">"窗口小部件"</string>
+    <string name="group_wallpapers">"壁纸"</string>
     <string name="add_folder">"文件夹"</string>
     <string name="add_clock">"时钟"</string>
     <string name="add_photo_frame">"相框"</string>
     <string name="add_search">"搜索"</string>
-    <string name="out_of_space">"该“主页”屏幕上没有多余空间。"</string>
-    <string name="title_select_shortcut">"选择快捷键"</string>
-    <!-- no translation found for title_select_live_folder (3753447798805166749) -->
+    <string name="out_of_space">"此主屏幕上已没有更多空间。"</string>
+    <!-- no translation found for shortcut_installed (6623689857689040689) -->
     <skip />
+    <!-- no translation found for shortcut_uninstalled (2758997515869993129) -->
+    <skip />
+    <!-- no translation found for shortcut_duplicate (4887186782641532074) -->
+    <skip />
+    <string name="title_select_shortcut">"选择快捷方式"</string>
+    <string name="title_select_live_folder">"选择文件夹"</string>
     <string name="menu_add">"添加"</string>
     <string name="menu_wallpaper">"壁纸"</string>
     <string name="menu_search">"搜索"</string>
     <string name="menu_notifications">"通知"</string>
+    <!-- no translation found for menu_gestures (514678675575912237) -->
+    <skip />
     <string name="menu_settings">"设置"</string>
-    <string name="permlab_install_shortcut">"安装快捷键"</string>
-    <string name="permdesc_install_shortcut">"允许应用程序在没有用户介入的情况下添加快捷键。"</string>
-    <string name="permlab_uninstall_shortcut">"卸载快捷键"</string>
-    <string name="permdesc_uninstall_shortcut">"允许应用程序在没有用户介入的情况下删除快捷键。"</string>
-    <string name="permlab_read_settings">"读取“主页”设置和快捷键"</string>
-    <string name="permdesc_read_settings">"允许应用程序读取“主页”中的设置和快捷键。"</string>
-    <string name="permlab_write_settings">"写入“主页”设置和快捷键"</string>
-    <string name="permdesc_write_settings">"允许应用程序更改“主页”中的设置和快捷键。"</string>
+    <string name="permlab_install_shortcut">"安装快捷方式"</string>
+    <string name="permdesc_install_shortcut">"允许应用程序在无用户操作的情况下添加快捷方式。"</string>
+    <string name="permlab_uninstall_shortcut">"卸载快捷方式"</string>
+    <string name="permdesc_uninstall_shortcut">"允许应用程序在无用户操作的情况下删除快捷方式。"</string>
+    <string name="permlab_read_settings">"读取主屏幕设置和快捷方式"</string>
+    <string name="permdesc_read_settings">"允许应用程序读取主屏幕上的设置和快捷方式。"</string>
+    <string name="permlab_write_settings">"写入主屏幕设置和快捷方式"</string>
+    <string name="permdesc_write_settings">"允许应用程序更改主屏幕上的设置和快捷方式。"</string>
     <string name="search_hint">"Google 搜索"</string>
     <string name="gadget_error_text">"载入窗口小部件时出现问题"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 3da3b5b..18eb31d 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -16,6 +16,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name">"首頁"</string>
+    <string name="uid_name">"Android 核心應用程式"</string>
     <string name="folder_name">"資料夾"</string>
     <string name="chooser_wallpaper">"從…選取桌布"</string>
     <string name="wallpaper_instructions">"設定桌布"</string>
@@ -38,12 +39,16 @@
     <string name="add_photo_frame">"相框"</string>
     <string name="add_search">"搜尋"</string>
     <string name="out_of_space">"首頁已無空間"</string>
+    <string name="shortcut_installed">"已安裝「%s」捷徑。"</string>
+    <string name="shortcut_uninstalled">"已移除「%s」捷徑"</string>
+    <string name="shortcut_duplicate">"已有「%s」捷徑。"</string>
     <string name="title_select_shortcut">"選取捷徑"</string>
     <string name="title_select_live_folder">"選取資料夾"</string>
     <string name="menu_add">"新增"</string>
     <string name="menu_wallpaper">"桌布"</string>
     <string name="menu_search">"搜尋"</string>
     <string name="menu_notifications">"通知"</string>
+    <string name="menu_gestures">"觸控動作"</string>
     <string name="menu_settings">"設定"</string>
     <string name="permlab_install_shortcut">"安裝捷徑"</string>
     <string name="permdesc_install_shortcut">"允許應用程式自動新增快速鍵。"</string>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index e1b4843..9b9700f 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -26,5 +26,6 @@
     <color name="appwidget_error_color">#FCCC</color>
     <color name="snag_callout_color">#F444</color>
 
-    <color name="gesture_color">#FFFFFF00</color>
+    <color name="gesture_color">#ff0563c1</color>
+    <color name="uncertain_gesture_color">#ff848484</color>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e43459d..2796171 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -75,7 +75,7 @@
     <!-- Error message when user has filled a home screen, possibly not used -->
     <string name="out_of_space">No more room on this Home screen.</string>
     <!-- Message displayed when a shortcut is created by an external application -->
-    <string name="shortcut_installed">Shortcut \"%s\" is installed.</string>
+    <string name="shortcut_installed">Shortcut \"%s\" created.</string>
     <!-- Message displayed when a shortcut is uninstalled by an external application -->
     <string name="shortcut_uninstalled">Shortcut \"%s\" was removed.</string>
     <!-- Message displayed when an external application attemps to create a shortcut that already exists -->
@@ -126,44 +126,4 @@
 
     <!-- Text to show user in place of a gadget when we can't display it properly -->
     <string name="gadget_error_text">Problem loading widget</string>
-
-    <!-- Gestures: -->
-    <skip />
-
-    <!-- Message displayed when the user enters gestures mode and is asked to draw a gesture -->
-    <string name="gestures_instructions">Draw a gesture</string>
-    <!-- Label of the button that the user clicks to create a new gesture-based shortcut -->
-    <string name="gestures_add">Add shortcut</string>
-    <!-- Label of the button that the user clicks to see the list of gesture-based shortcuts -->
-    <string name="gestures_show">Show shortcut</string>
-    <!-- Message displayed when the gesture entered by the user cannot be recognized -->
-    <string name="gestures_unknown">Unrecognized</string>
-    <!-- Message displayed when the user has successfully created a new gesture -->
-    <string name="gestures_created">Added gesture "%s"</string>
-    <!-- Message displayed when the user could not create a new gesture -->
-    <string name="gestures_failed">Gesture could not be created</string>
-    <!-- Message displayed when the user opens the gestures settings screen -->
-    <string name="gestures_loading">Loading gestures...</string>
-    <!-- Message displayed when the user has no gestures -->
-    <string name="gestures_empty">No gestures</string>
-    <!-- Title of the screen used to view/manage gestures -->
-    <string name="gestures_activity">Gestures</string>
-    <!-- Noun, menu item used to rename a gesture -->
-    <string name="gestures_rename">Rename</string>
-    <!-- Noun, menu item used to remove a gesture -->
-    <string name="gestures_delete">Delete</string>
-    <!-- Message displayed when a gesture is successfully deleted -->
-    <string name="gestures_delete_success">Gesture deleted</string>
-    <!-- Title of dialog box -->
-    <string name="gestures_rename_title">Rename gesture</string>
-    <!-- Label of gesture name field in Rename gesture dialog box -->
-    <string name="gestures_rename_label">Gesture name</string>
-    <!-- Title of the preferences group showing the user's gestures -->
-    <string name="gestures_group_gestures">Gestures</string>
-    <!-- Title of the preferences group showing the gestures settings -->
-    <string name="gestures_group_settings">Settings</string>
-    <!-- Label of the setting used to enable/disable the home key to draw gestures -->
-    <string name="gestures_preference_hotkey_title">Use home to launch</string>
-    <!-- Summary of the setting used to enable/disable the home key to draw gestures -->
-    <string name="gestures_preference_hotkey_summary">Press home key to draw gestures</string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 5319bb0..6f4365f 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -61,9 +61,4 @@
         <item name="android:paddingRight">10dip</item>
     </style>
 
-    <style name="PlusButton">
-        <item name="android:background">@drawable/btn_circle</item>
-        <item name="android:src">@drawable/ic_btn_round_plus</item>
-    </style>
-
 </resources>
diff --git a/res/xml/default_workspace.xml b/res/xml/default_workspace.xml
index 9197c30..60bfe82 100644
--- a/res/xml/default_workspace.xml
+++ b/res/xml/default_workspace.xml
@@ -42,12 +42,14 @@
         launcher:x="2"
         launcher:y="3" />
 
+<!--
     <favorite
         launcher:packageName="com.google.android.apps.maps"
         launcher:className="com.google.android.maps.MapsActivity"
         launcher:screen="1"
         launcher:x="3"
         launcher:y="3" />
+-->
 
     <favorite
         launcher:packageName="com.android.mms"
diff --git a/src/com/android/launcher/GesturesActivity.java b/src/com/android/launcher/GesturesActivity.java
deleted file mode 100644
index 3ea49e2..0000000
--- a/src/com/android/launcher/GesturesActivity.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * Copyright (C) 2009 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.launcher;
-
-import android.app.ListActivity;
-import android.app.Dialog;
-import android.app.AlertDialog;
-import android.os.Bundle;
-import android.os.AsyncTask;
-import android.widget.ArrayAdapter;
-import android.widget.TextView;
-import android.widget.AdapterView;
-import android.widget.Toast;
-import android.widget.EditText;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.res.Resources;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.LayoutInflater;
-import android.view.ContextMenu;
-import android.view.MenuItem;
-import android.gesture.GestureLibrary;
-import android.gesture.Gesture;
-import android.graphics.Bitmap;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.BitmapDrawable;
-import android.text.TextUtils;
-
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Collections;
-import java.util.Map;
-
-public class GesturesActivity extends ListActivity {
-    private static final int MENU_ID_RENAME = 1;
-    private static final int MENU_ID_REMOVE = 2;
-
-    private static final int DIALOG_RENAME_GESTURE = 1;
-
-    // Type: long (id)
-    private static final String GESTURES_INFO_ID = "gestures.info_id";
-
-    private final Comparator<ApplicationInfo> mSorter =
-            new LauncherModel.ApplicationInfoComparator();
-
-    private GesturesAdapter mAdapter;
-    private GestureLibrary mStore;
-    private GesturesLoadTask mTask;
-    private TextView mEmpty;
-
-    private Dialog mRenameDialog;
-    private EditText mInput;
-    private ApplicationInfo mCurrentRenameInfo;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.gestures_settings);
-
-        mAdapter = new GesturesAdapter(this);
-        setListAdapter(mAdapter);
-
-        mStore = Launcher.getGestureLibrary();
-        mEmpty = (TextView) findViewById(android.R.id.empty);
-        mTask = (GesturesLoadTask) new GesturesLoadTask().execute();
-
-        registerForContextMenu(getListView());
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-
-        if (mTask != null && mTask.getStatus() != GesturesLoadTask.Status.FINISHED) {
-            mTask.cancel(true);
-            mTask = null;
-        }
-
-        cleanupRenameDialog();
-    }
-
-    private void checkForEmpty() {
-        if (mAdapter.getCount() == 0) {
-            mEmpty.setText(R.string.gestures_empty);
-        }
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-
-        if (mCurrentRenameInfo != null) {
-            outState.putLong(GESTURES_INFO_ID, mCurrentRenameInfo.id);
-        }
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Bundle state) {
-        super.onRestoreInstanceState(state);
-
-        long id = state.getLong(GESTURES_INFO_ID, -1);
-        if (id != -1) {
-            mCurrentRenameInfo = Launcher.getModel().queryGesture(this, String.valueOf(id));
-        }
-    }
-
-    @Override
-    public void onCreateContextMenu(ContextMenu menu, View v,
-            ContextMenu.ContextMenuInfo menuInfo) {
-
-        super.onCreateContextMenu(menu, v, menuInfo);
-
-        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
-        menu.setHeaderTitle(((TextView) info.targetView).getText());
-
-        menu.add(0, MENU_ID_RENAME, 0, R.string.gestures_rename);
-        menu.add(0, MENU_ID_REMOVE, 0, R.string.gestures_delete);
-    }
-
-    @Override
-    public boolean onContextItemSelected(MenuItem item) {
-        final AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo)
-                item.getMenuInfo();
-        final ApplicationInfo info = (ApplicationInfo) menuInfo.targetView.getTag();
-
-        switch (item.getItemId()) {
-            case MENU_ID_RENAME:
-                renameGesture(info);
-                return true;
-            case MENU_ID_REMOVE:
-                deleteGesture(info);
-                return true;
-        }
-
-        return super.onContextItemSelected(item);
-    }
-
-    private void renameGesture(ApplicationInfo info) {
-        mCurrentRenameInfo = info;
-        showDialog(DIALOG_RENAME_GESTURE);
-    }
-
-    @Override
-    protected Dialog onCreateDialog(int id) {
-        if (id == DIALOG_RENAME_GESTURE) {
-            return createRenameDialog();
-        }
-        return super.onCreateDialog(id);
-    }
-
-    @Override
-    protected void onPrepareDialog(int id, Dialog dialog) {
-        super.onPrepareDialog(id, dialog);
-        if (id == DIALOG_RENAME_GESTURE) {
-            mInput.setText(mCurrentRenameInfo.title);
-        }
-    }
-
-    private Dialog createRenameDialog() {
-        final View layout = View.inflate(this, R.layout.rename_folder, null);
-        mInput = (EditText) layout.findViewById(R.id.folder_name);
-        ((TextView) layout.findViewById(R.id.label)).setText(R.string.gestures_rename_label);
-
-        AlertDialog.Builder builder = new AlertDialog.Builder(this);
-        builder.setIcon(0);
-        builder.setTitle(getString(R.string.gestures_rename_title));
-        builder.setCancelable(true);
-        builder.setOnCancelListener(new Dialog.OnCancelListener() {
-            public void onCancel(DialogInterface dialog) {
-                cleanupRenameDialog();
-            }
-        });
-        builder.setNegativeButton(getString(R.string.cancel_action),
-            new Dialog.OnClickListener() {
-                public void onClick(DialogInterface dialog, int which) {
-                    cleanupRenameDialog();
-                }
-            }
-        );
-        builder.setPositiveButton(getString(R.string.rename_action),
-            new Dialog.OnClickListener() {
-                public void onClick(DialogInterface dialog, int which) {
-                    changeGestureName();
-                }
-            }
-        );
-        builder.setView(layout);
-        return builder.create();
-    }
-
-    private void changeGestureName() {
-        final String name = mInput.getText().toString();
-        if (!TextUtils.isEmpty(name)) {
-            final ApplicationInfo renameInfo = mCurrentRenameInfo;
-            final GesturesActivity.GesturesAdapter adapter = mAdapter;
-            final int count = adapter.getCount();
-
-            // Simple linear search, there should not be enough items to warrant
-            // a more sophisticated search
-            for (int i = 0; i < count; i++) {
-                final ApplicationInfo info = adapter.getItem(i);
-                if (info.id == renameInfo.id) {
-                    info.title = mInput.getText();
-                    LauncherModel.updateGestureInDatabase(this, info);
-                    break;
-                }
-            }
-
-            adapter.notifyDataSetChanged();
-        }
-        mCurrentRenameInfo = null;
-    }
-
-    private void cleanupRenameDialog() {
-        if (mRenameDialog != null) {
-            mRenameDialog.dismiss();
-            mRenameDialog = null;
-        }
-        mCurrentRenameInfo = null;
-    }
-
-    private void deleteGesture(ApplicationInfo info) {
-        mStore.removeEntry(String.valueOf(info.id));
-        // TODO: On a thread?
-        mStore.save();
-
-        final GesturesActivity.GesturesAdapter adapter = mAdapter;
-        adapter.setNotifyOnChange(false);
-        adapter.remove(info);
-        adapter.sort(mSorter);
-        checkForEmpty();
-        adapter.notifyDataSetChanged();
-
-        LauncherModel.deleteGestureFromDatabase(this, info);
-
-        Toast.makeText(this, R.string.gestures_delete_success, Toast.LENGTH_SHORT).show();
-    }
-
-    private class GesturesLoadTask extends AsyncTask<Void, ApplicationInfo, Boolean> {
-        private int mThumbnailSize;
-        private int mThumbnailInset;
-        private int mPathColor;
-
-        @Override
-        protected void onPreExecute() {
-            super.onPreExecute();
-
-            final Resources resources = getResources();
-            mPathColor = resources.getColor(R.color.gesture_color);
-            mThumbnailInset = (int) resources.getDimension(R.dimen.gesture_thumbnail_inset);
-            mThumbnailSize = (int) resources.getDimension(R.dimen.gesture_thumbnail_size);
-        }
-
-        protected Boolean doInBackground(Void... params) {
-            if (isCancelled()) return Boolean.FALSE;
-
-            final GestureLibrary store = mStore;
-
-            if (store.load()) {
-                final LauncherModel model = Launcher.getModel();
-
-                for (String name : store.getGestureEntries()) {
-                    if (isCancelled()) break;
-
-                    final Gesture gesture = store.getGestures(name).get(0);
-                    final Bitmap bitmap = gesture.toBitmap(mThumbnailSize, mThumbnailSize,
-                            mThumbnailInset, mPathColor);
-                    final ApplicationInfo info = model.queryGesture(GesturesActivity.this, name);
-
-                    mAdapter.addBitmap(info.id, bitmap);
-                    publishProgress(info);
-                }
-
-                return Boolean.TRUE;
-            }
-
-            return Boolean.FALSE;
-        }
-
-        @Override
-        protected void onProgressUpdate(ApplicationInfo... values) {
-            super.onProgressUpdate(values);
-
-            final GesturesActivity.GesturesAdapter adapter = mAdapter;
-            adapter.setNotifyOnChange(false);
-
-            for (ApplicationInfo info : values) {
-                adapter.add(info);
-            }
-
-            adapter.sort(mSorter);
-            adapter.notifyDataSetChanged();
-        }
-
-        @Override
-        protected void onPostExecute(Boolean aBoolean) {
-            super.onPostExecute(aBoolean);
-            checkForEmpty();
-        }
-    }
-
-    private class GesturesAdapter extends ArrayAdapter<ApplicationInfo> {
-        private final LayoutInflater mInflater;
-        private final Map<Long, Drawable> mThumbnails = Collections.synchronizedMap(
-                new HashMap<Long, Drawable>());
-
-        public GesturesAdapter(Context context) {
-            super(context, 0);
-            mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        }
-
-        void addBitmap(Long id, Bitmap bitmap) {
-            mThumbnails.put(id, new BitmapDrawable(bitmap));
-        }
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            if (convertView == null) {
-                convertView = mInflater.inflate(R.layout.gestures_settings_item, parent, false);
-            }
-
-            final ApplicationInfo info = getItem(position);
-            final TextView label = (TextView) convertView;
-
-            label.setTag(info);
-            label.setText(info.title);
-            label.setCompoundDrawablesWithIntrinsicBounds(info.icon, null,
-                    mThumbnails.get(info.id), null);
-
-            return convertView;
-        }
-    }
-}
diff --git a/src/com/android/launcher/GesturesConstants.java b/src/com/android/launcher/GesturesConstants.java
deleted file mode 100644
index 3151ea3..0000000
--- a/src/com/android/launcher/GesturesConstants.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2009 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.launcher;
-
-interface GesturesConstants {
-    final double PREDICTION_THRESHOLD = 1.0;
-    final String STORE_NAME = "gestures";
-    final long MATCH_DELAY = 370;
-    final float LENGTH_THRESHOLD = 120.0f;
-    int PATH_SAMPLE_COUNT = 10;
-}
diff --git a/src/com/android/launcher/GesturesPanel.java b/src/com/android/launcher/GesturesPanel.java
deleted file mode 100644
index 33dc102..0000000
--- a/src/com/android/launcher/GesturesPanel.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2009 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.launcher;
-
-import android.widget.RelativeLayout;
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.KeyEvent;
-
-public class GesturesPanel extends RelativeLayout {
-    public GesturesPanel(Context context) {
-        super(context);
-    }
-
-    public GesturesPanel(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    @Override
-    public boolean isOpaque() {
-        return true;
-    }
-
-    @Override
-    public boolean dispatchKeyEvent(KeyEvent event) {
-        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK &&
-                event.getAction() == KeyEvent.ACTION_DOWN) {
-
-            ((Launcher) mContext).hideGesturesPanel();
-
-            return true;
-        }
-
-        return super.dispatchKeyEvent(event);
-    }
-}
diff --git a/src/com/android/launcher/Launcher.java b/src/com/android/launcher/Launcher.java
index 8863bd9..f1af0b1 100644
--- a/src/com/android/launcher/Launcher.java
+++ b/src/com/android/launcher/Launcher.java
@@ -41,8 +41,6 @@
 import android.database.ContentObserver;
 import android.graphics.Bitmap;
 import android.graphics.Rect;
-import android.graphics.PorterDuffXfermode;
-import android.graphics.PorterDuff;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.TransitionDrawable;
@@ -68,8 +66,6 @@
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.MotionEvent;
-import android.view.Gravity;
 import android.view.View.OnLongClickListener;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;
@@ -77,16 +73,8 @@
 import android.widget.SlidingDrawer;
 import android.widget.TextView;
 import android.widget.Toast;
-import android.widget.ImageView;
-import android.widget.PopupWindow;
-import android.widget.ViewSwitcher;
 import android.appwidget.AppWidgetManager;
 import android.appwidget.AppWidgetProviderInfo;
-import android.gesture.GestureOverlayView;
-import android.gesture.GestureLibraries;
-import android.gesture.GestureLibrary;
-import android.gesture.Gesture;
-import android.gesture.Prediction;
 
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
@@ -107,9 +95,6 @@
     private static final boolean PROFILE_DRAWER = false;
     private static final boolean PROFILE_ROTATE = false;
     private static final boolean DEBUG_USER_INTERFACE = false;
-    private static final boolean DEBUG_GESTURES = false;
-
-    private static final boolean CONFIG_GESTURES_IMMEDIATE_MODE = true;
 
     private static final int WALLPAPER_SCREENS_SPAN = 2;
 
@@ -118,8 +103,7 @@
     private static final int MENU_WALLPAPER_SETTINGS = MENU_ADD + 1;
     private static final int MENU_SEARCH = MENU_WALLPAPER_SETTINGS + 1;
     private static final int MENU_NOTIFICATIONS = MENU_SEARCH + 1;
-    private static final int MENU_GESTURES = MENU_NOTIFICATIONS + 1;
-    private static final int MENU_SETTINGS = MENU_GESTURES + 1;
+    private static final int MENU_SETTINGS = MENU_NOTIFICATIONS + 1;
 
     private static final int REQUEST_CREATE_SHORTCUT = 1;
     private static final int REQUEST_CREATE_LIVE_FOLDER = 4;
@@ -128,9 +112,6 @@
     private static final int REQUEST_PICK_SHORTCUT = 7;
     private static final int REQUEST_PICK_LIVE_FOLDER = 8;
     private static final int REQUEST_PICK_APPWIDGET = 9;
-    private static final int REQUEST_PICK_GESTURE_ACTION = 10;
-    private static final int REQUEST_CREATE_GESTURE_ACTION = 11;
-    private static final int REQUEST_CREATE_GESTURE_APPLICATION_ACTION = 12;
 
     static final String EXTRA_SHORTCUT_DUPLICATE = "duplicate";
 
@@ -173,12 +154,6 @@
     private static final String RUNTIME_STATE_PENDING_FOLDER_RENAME = "launcher.rename_folder";
     // Type: long
     private static final String RUNTIME_STATE_PENDING_FOLDER_RENAME_ID = "launcher.rename_folder_id";
-    // Type: Gesture (Parcelable)
-    private static final String RUNTIME_STATE_PENDING_GESTURE = "launcher.gesture";
-    // Type: boolean
-    private static final String RUNTIME_STATE_GESTURES_PANEL = "launcher.gesture_panel_showing";
-    // Type: Gesture (Parcelable)
-    private static final String RUNTIME_STATE_GESTURES_PANEL_GESTURE = "launcher.gesture_panel_gesture";
 
     private static final LauncherModel sModel = new LauncherModel();
 
@@ -189,8 +164,6 @@
 
     private static WallpaperIntentReceiver sWallpaperReceiver;
 
-    private static GestureLibrary sLibrary;
-
     private final BroadcastReceiver mApplicationsReceiver = new ApplicationsIntentReceiver();
     private final ContentObserver mObserver = new FavoritesChangeObserver();
 
@@ -227,31 +200,18 @@
     private boolean mWaitingForResult;
     private boolean mLocaleChanged;
 
+    private boolean mHomeDown;
+    private boolean mBackDown;
+    
     private Bundle mSavedInstanceState;
 
     private DesktopBinder mBinder;
 
-    private View mGesturesPanel;
-    private GestureOverlayView mGesturesOverlay;
-    private ViewSwitcher mGesturesPrompt;
-    private ImageView mGesturesAdd;
-    private PopupWindow mGesturesWindow;
-    private Launcher.GesturesProcessor mGesturesProcessor;
-    private Gesture mCurrentGesture;
-    private GesturesAction mGesturesAction;
-    private boolean mHideGesturesPanel;
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mInflater = getLayoutInflater();
 
-        if (sLibrary == null) {
-            // The context is not kept by the library so it's safe to do this
-            sLibrary = GestureLibraries.fromPrivateFile(Launcher.this,
-                    GesturesConstants.STORE_NAME);
-        }
-
         mAppWidgetManager = AppWidgetManager.getInstance(this);
 
         mAppWidgetHost = new LauncherAppWidgetHost(this, APPWIDGET_HOST_ID);
@@ -409,11 +369,7 @@
         // For example, the user would PICK_SHORTCUT for "Music playlist", and we
         // launch over to the Music app to actually CREATE_SHORTCUT.
 
-        if (resultCode == RESULT_OK && (mAddItemCellInfo != null ||
-                ((requestCode == REQUEST_PICK_GESTURE_ACTION ||
-                requestCode == REQUEST_CREATE_GESTURE_ACTION ||
-                requestCode == REQUEST_CREATE_GESTURE_APPLICATION_ACTION) && mCurrentGesture != null))) {
-
+        if (resultCode == RESULT_OK && mAddItemCellInfo != null) {
             switch (requestCode) {
                 case REQUEST_PICK_APPLICATION:
                     completeAddApplication(this, data, mAddItemCellInfo, !mDesktopLocked);
@@ -436,16 +392,6 @@
                 case REQUEST_CREATE_APPWIDGET:
                     completeAddAppWidget(data, mAddItemCellInfo, !mDesktopLocked);
                     break;
-                case REQUEST_PICK_GESTURE_ACTION:
-                    processShortcut(data, REQUEST_CREATE_GESTURE_APPLICATION_ACTION,
-                            REQUEST_CREATE_GESTURE_ACTION);
-                    break;
-                case REQUEST_CREATE_GESTURE_ACTION:
-                    completeCreateGesture(data, true);
-                    break;
-                case REQUEST_CREATE_GESTURE_APPLICATION_ACTION:
-                    completeCreateGesture(data, false);
-                    break;
             }
         } else if (requestCode == REQUEST_PICK_APPWIDGET &&
                 resultCode == RESULT_CANCELED && data != null) {
@@ -490,23 +436,10 @@
     @Override
     protected void onPause() {
         super.onPause();
-        if (mGesturesWindow != null) {
-            mGesturesWindow.setAnimationStyle(0);
-            mGesturesWindow.update();
-        }
         closeDrawer(false);
     }
 
     @Override
-    protected void onStop() {
-        super.onStop();
-        if (mHideGesturesPanel) {
-            mHideGesturesPanel = false;
-            hideGesturesPanel();
-        }
-    }
-
-    @Override
     public Object onRetainNonConfigurationInstance() {
         // Flag any binder to stop early before switching
         if (mBinder != null) {
@@ -593,29 +526,6 @@
             mFolderInfo = sModel.getFolderById(this, id);
             mRestoring = true;
         }
-
-        mCurrentGesture = (Gesture) savedState.get(RUNTIME_STATE_PENDING_GESTURE);
-
-        boolean gesturesShowing = savedState.getBoolean(RUNTIME_STATE_GESTURES_PANEL, false);
-        if (gesturesShowing) {
-            if (mCurrentGesture == null) {
-                mCurrentGesture = (Gesture) savedState.get(RUNTIME_STATE_GESTURES_PANEL_GESTURE);
-            }
-            final Gesture gesture = mCurrentGesture;
-            mWorkspace.post(new Runnable() {
-                public void run() {
-                    showGesturesPanel(false);
-                    mGesturesProcessor.matchGesture(gesture, false);
-                    mWorkspace.post(new Runnable() {
-                        public void run() {
-                            if (gesture != null) {
-                                mGesturesOverlay.setGesture(gesture);
-                            }
-                        }
-                    });
-                }
-            });
-        }
     }
 
     /**
@@ -663,69 +573,6 @@
         dragLayer.setIgnoredDropTarget(grid);
         dragLayer.setDragScoller(workspace);
         dragLayer.setDragListener(deleteZone);
-
-        mGesturesPanel = mInflater.inflate(R.layout.gestures, mDragLayer, false);
-        final View gesturesPanel = mGesturesPanel;
-
-        mGesturesPrompt = (ViewSwitcher) gesturesPanel.findViewById(R.id.gestures_actions);
-        mGesturesAction = new GesturesAction();
-
-        mGesturesPrompt.getChildAt(0).setOnClickListener(mGesturesAction);
-        mGesturesPrompt.getChildAt(1).setOnClickListener(mGesturesAction);
-
-        mGesturesAdd = (ImageView) gesturesPanel.findViewById(R.id.gestures_add);
-        final ImageView gesturesAdd = mGesturesAdd;
-        gesturesAdd.setAlpha(128);
-        gesturesAdd.setEnabled(false);
-        gesturesAdd.setOnClickListener(new View.OnClickListener() {
-            public void onClick(View v) {
-                createGesture();
-            }
-        });
-
-        mGesturesOverlay = (GestureOverlayView) gesturesPanel.findViewById(R.id.gestures_overlay);
-        mGesturesProcessor = new GesturesProcessor();
-
-        final GestureOverlayView overlay = mGesturesOverlay;
-        overlay.addOnGestureListener(mGesturesProcessor);
-        overlay.getGesturePaint().setXfermode(new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY));
-    }
-
-    private void createGesture() {
-        if (!mWaitingForResult) {
-            mCurrentGesture = mGesturesOverlay.getGesture();
-            mWaitingForResult = true;
-            pickShortcut(REQUEST_PICK_GESTURE_ACTION, R.string.title_select_shortcut);
-        }
-    }
-
-    private void completeCreateGesture(Intent data, boolean isShortcut) {
-        ApplicationInfo info;
-
-        if (isShortcut) {
-            info = infoFromShortcutIntent(this, data);
-        } else {
-            info = infoFromApplicationIntent(this, data);
-        }
-
-        boolean success = false;
-        if (info != null) {
-            info.isGesture = true;
-
-            if (LauncherModel.addGestureToDatabase(this, info, false)) {
-                mGesturesProcessor.addGesture(String.valueOf(info.id), mCurrentGesture);
-                mGesturesProcessor.update(info, mCurrentGesture);
-                Toast.makeText(this, getString(R.string.gestures_created, info.title),
-                        Toast.LENGTH_SHORT).show();
-                success = true;
-            }
-        }
-
-        if (!success) {
-            Toast.makeText(this, getString(R.string.gestures_failed), Toast.LENGTH_SHORT).show();
-        }
-
-        mCurrentGesture = null;
     }
 
     /**
@@ -976,17 +823,10 @@
             if ((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) !=
                     Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) {
 
-                if (mGesturesPanel != null && mDragLayer.getWindowVisibility() == View.VISIBLE &&
-                        (mDragLayer.hasWindowFocus() ||
-                                (mGesturesWindow != null && mGesturesWindow.isShowing()))) {
-
-                    SearchManager searchManager =
-                            (SearchManager) getSystemService(Context.SEARCH_SERVICE);
-
-                    if (!searchManager.isVisible()) {
-                        onHomeKeyPressed();
-                    }
+                if (!mWorkspace.isDefaultScreenShowing()) {
+                    mWorkspace.moveToDefaultScreen();
                 }
+
                 closeDrawer();
 
                 final View v = getWindow().peekDecorView();
@@ -1001,91 +841,6 @@
         }
     }
 
-    private void onHomeKeyPressed() {
-        if (mGesturesWindow == null || !mGesturesWindow.isShowing()) {
-            showGesturesPanel();
-        } else {
-            hideGesturesPanel();
-        }
-    }
-
-    private void showGesturesPanel() {
-        showGesturesPanel(true);
-    }
-
-    private void showGesturesPanel(boolean animate) {
-        resetGesturesPrompt();
-
-        mGesturesAdd.setEnabled(false);
-        mGesturesAdd.setAlpha(128);
-
-        mGesturesOverlay.clear(false);
-
-        PopupWindow window;
-        if (mGesturesWindow == null) {
-            mGesturesWindow = new PopupWindow(this);
-            window = mGesturesWindow;
-            window.setFocusable(true);
-            window.setTouchable(true);
-            window.setBackgroundDrawable(null);
-            window.setContentView(mGesturesPanel);
-        } else {
-            window = mGesturesWindow;
-        }
-        window.setAnimationStyle(animate ? com.android.internal.R.style.Animation_SlidingCard : 0);
-
-        final int[] xy = new int[2];
-        final DragLayer dragLayer = mDragLayer;
-        dragLayer.getLocationOnScreen(xy);
-
-        window.setWidth(dragLayer.getWidth());
-        window.setHeight(dragLayer.getHeight() - 1);
-        window.showAtLocation(dragLayer, Gravity.TOP | Gravity.LEFT, xy[0], xy[1] + 1);
-    }
-
-    private void resetGesturesPrompt() {
-        mGesturesAction.intent = null;
-        final TextView prompt = (TextView) mGesturesPrompt.getCurrentView();
-        prompt.setText(R.string.gestures_instructions);
-        prompt.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
-        prompt.setClickable(false);
-    }
-
-    private void resetGesturesNextPrompt() {
-        mGesturesAction.intent = null;
-        setGesturesNextPrompt(null, getString(R.string.gestures_instructions));
-        mGesturesPrompt.getNextView().setClickable(false);
-    }
-
-    private void setGesturesNextPrompt(Drawable icon, CharSequence title) {
-        final TextView prompt = (TextView) mGesturesPrompt.getNextView();
-        prompt.setText(title);
-        prompt.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null);
-        prompt.setClickable(true);
-        mGesturesPrompt.showNext();
-    }
-
-    private void setGesturesPrompt(Drawable icon, CharSequence title) {
-        final TextView prompt = (TextView) mGesturesPrompt.getCurrentView();
-        prompt.setText(title);
-        prompt.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null);
-        prompt.setClickable(true);
-    }
-
-    void hideGesturesPanel() {
-        hideGesturesPanel(true);
-    }
-
-    void hideGesturesPanel(boolean animate) {
-        if (mGesturesWindow != null) {
-            final PopupWindow popupWindow = mGesturesWindow;
-            popupWindow.setAnimationStyle(animate ?
-                    com.android.internal.R.style.Animation_SlidingCard : 0);
-            popupWindow.update();
-            popupWindow.dismiss();
-        }
-    }
-
     @Override
     protected void onRestoreInstanceState(Bundle savedInstanceState) {
         // Do not call super here
@@ -1136,21 +891,6 @@
             outState.putBoolean(RUNTIME_STATE_PENDING_FOLDER_RENAME, true);
             outState.putLong(RUNTIME_STATE_PENDING_FOLDER_RENAME_ID, mFolderInfo.id);
         }
-
-        if (mCurrentGesture != null && mWaitingForResult) {
-            outState.putParcelable(RUNTIME_STATE_PENDING_GESTURE, mCurrentGesture);
-        }
-
-        if (mGesturesWindow != null && mGesturesWindow.isShowing()) {
-            outState.putBoolean(RUNTIME_STATE_GESTURES_PANEL, true);
-
-            if (mCurrentGesture == null || !mWaitingForResult) {
-                final Gesture gesture = mGesturesOverlay.getGesture();
-                if (gesture != null) {
-                    outState.putParcelable(RUNTIME_STATE_GESTURES_PANEL_GESTURE, gesture);
-                }
-            }
-        }
     }
 
     @Override
@@ -1167,7 +907,6 @@
 
         TextKeyListener.getInstance().release();
 
-        hideGesturesPanel(false);
         mAllAppsGrid.clearTextFilter();
         mAllAppsGrid.setAdapter(null);
         sModel.unbind();
@@ -1270,11 +1009,6 @@
                 .setIcon(com.android.internal.R.drawable.ic_menu_notifications)
                 .setAlphabeticShortcut('N');
 
-        final Intent gestures = new Intent(this, GesturesActivity.class);
-        menu.add(0, MENU_GESTURES, 0, R.string.menu_gestures)
-                .setIcon(com.android.internal.R.drawable.ic_menu_compose).setAlphabeticShortcut('G')
-                .setIntent(gestures);
-
         final Intent settings = new Intent(android.provider.Settings.ACTION_SETTINGS);
         settings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
                 Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
@@ -1574,18 +1308,39 @@
     }
 
     @Override
+    public void onWindowFocusChanged(boolean hasFocus) {
+        super.onWindowFocusChanged(hasFocus);
+        if (!hasFocus) {
+            mBackDown = mHomeDown = false;
+        }
+    }
+
+    @Override
     public boolean dispatchKeyEvent(KeyEvent event) {
         if (event.getAction() == KeyEvent.ACTION_DOWN) {
             switch (event.getKeyCode()) {
                 case KeyEvent.KEYCODE_BACK:
-                    mWorkspace.dispatchKeyEvent(event);
-                    if (mDrawer.isOpened()) {
-                        closeDrawer();
-                    } else {
-                        closeFolder();
-                    }
+                    mBackDown = true;
                     return true;
                 case KeyEvent.KEYCODE_HOME:
+                    mHomeDown = true;
+                    return true;
+            }
+        } else if (event.getAction() == KeyEvent.ACTION_UP) {
+            switch (event.getKeyCode()) {
+                case KeyEvent.KEYCODE_BACK:
+                    if (!event.isCanceled()) {
+                        mWorkspace.dispatchKeyEvent(event);
+                        if (mDrawer.isOpened()) {
+                            closeDrawer();
+                        } else {
+                            closeFolder();
+                        }
+                    }
+                    mBackDown = false;
+                    return true;
+                case KeyEvent.KEYCODE_HOME:
+                    mHomeDown = false;
                     return true;
             }
         }
@@ -1839,7 +1594,6 @@
     }
 
     void startActivitySafely(Intent intent) {
-        mHideGesturesPanel = true;
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         try {
             startActivity(intent);
@@ -1966,10 +1720,6 @@
         return sModel;
     }
 
-    static GestureLibrary getGestureLibrary() {
-        return sLibrary;
-    }
-
     void closeAllApplications() {
         mDrawer.close();
     }
@@ -2014,14 +1764,14 @@
     protected void onPrepareDialog(int id, Dialog dialog) {
         switch (id) {
             case DIALOG_CREATE_SHORTCUT:
-                mWorkspace.lock();
                 break;
             case DIALOG_RENAME_FOLDER:
-                mWorkspace.lock();
-                EditText input = (EditText) dialog.findViewById(R.id.folder_name);
-                final CharSequence text = mFolderInfo.title;
-                input.setText(text);
-                input.setSelection(0, text.length());
+                if (mFolderInfo != null) {
+                    EditText input = (EditText) dialog.findViewById(R.id.folder_name);
+                    final CharSequence text = mFolderInfo.title;
+                    input.setText(text);
+                    input.setSelection(0, text.length());
+                }
                 break;
         }
     }
@@ -2090,7 +1840,15 @@
                 }
             );
             builder.setView(layout);
-            return builder.create();
+
+            final AlertDialog dialog = builder.create();
+            dialog.setOnShowListener(new DialogInterface.OnShowListener() {
+                public void onShow(DialogInterface dialog) {
+                    mWorkspace.lock();
+                }
+            });
+
+            return dialog;
         }
 
         private void changeFolderName() {
@@ -2133,7 +1891,9 @@
      * appropriate activity.
      */
     private class CreateShortcut implements DialogInterface.OnClickListener,
-            DialogInterface.OnCancelListener, DialogInterface.OnDismissListener {
+            DialogInterface.OnCancelListener, DialogInterface.OnDismissListener,
+            DialogInterface.OnShowListener {
+
         private AddAdapter mAdapter;
 
         Dialog createDialog() {
@@ -2150,6 +1910,7 @@
             AlertDialog dialog = builder.create();
             dialog.setOnCancelListener(this);
             dialog.setOnDismissListener(this);
+            dialog.setOnShowListener(this);
 
             return dialog;
         }
@@ -2239,6 +2000,10 @@
                 }
             }
         }
+
+        public void onShow(DialogInterface dialog) {
+            mWorkspace.lock();
+        }
     }
 
     /**
@@ -2479,160 +2244,4 @@
             }
         }
     }
-
-    private class GesturesProcessor implements GestureOverlayView.OnGestureListener,
-            GestureOverlayView.OnGesturePerformedListener {
-
-        private final GestureMatcher mMatcher = new GestureMatcher();
-
-        GesturesProcessor() {
-            // TODO: Maybe the load should happen on a background thread?
-            sLibrary.load();
-        }
-
-        public void onGestureStarted(GestureOverlayView overlay, MotionEvent event) {
-            //noinspection PointlessBooleanExpression,ConstantConditions
-            if (!CONFIG_GESTURES_IMMEDIATE_MODE) {
-                overlay.removeCallbacks(mMatcher);
-                resetGesturesNextPrompt();
-            }
-
-            mGesturesAdd.setAlpha(128);
-            mGesturesAdd.setEnabled(false);
-        }
-
-        public void onGesture(GestureOverlayView overlay, MotionEvent event) {
-        }
-
-        public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
-        }
-
-        public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) {
-            if (CONFIG_GESTURES_IMMEDIATE_MODE) {
-                mMatcher.gesture = overlay.getGesture();
-                if (mMatcher.gesture.getLength() < GesturesConstants.LENGTH_THRESHOLD) {
-                    overlay.clear(false);
-                    if (mGesturesAction.intent != null) {
-                        mGesturesAction.intent = null;
-                        setGesturesNextPrompt(null, getString(R.string.gestures_unknown));
-                    }
-                } else {
-                    mMatcher.run();
-                }
-            } else {
-                overlay.removeCallbacks(mMatcher);
-
-                mMatcher.gesture = overlay.getGesture();
-                if (mMatcher.gesture.getLength() < GesturesConstants.LENGTH_THRESHOLD) {
-                    overlay.clear(false);
-                    if (mGesturesAction.intent != null) {
-                        mGesturesAction.intent = null;
-                        setGesturesNextPrompt(null, getString(R.string.gestures_unknown));
-                    }
-                } else {
-                    overlay.postDelayed(mMatcher, GesturesConstants.MATCH_DELAY);
-                }
-            }
-        }
-
-        void matchGesture(Gesture gesture) {
-            matchGesture(gesture, true);
-        }
-
-        void matchGesture(Gesture gesture, boolean animate) {
-            mGesturesAdd.setAlpha(255);
-            mGesturesAdd.setEnabled(true);
-
-            if (gesture != null) {
-                final ArrayList<Prediction> predictions = sLibrary.recognize(gesture);
-
-                if (DEBUG_GESTURES) {
-                    for (Prediction p : predictions) {
-                        d(LOG_TAG, String.format("name=%s, score=%f", p.name, p.score));
-                    }
-                }
-
-                boolean match = false;
-                if (predictions.size() > 0) {
-                    final Prediction prediction = predictions.get(0);
-                    if (prediction.score > GesturesConstants.PREDICTION_THRESHOLD) {
-                        match = true;
-
-                        ApplicationInfo info = sModel.queryGesture(Launcher.this, prediction.name);
-                        if (info != null) {
-                            updatePrompt(info, animate);
-                        }
-                    }
-                }
-
-                if (!match){
-                    mGesturesAction.intent = null;
-                    if (animate) {
-                        setGesturesNextPrompt(null, getString(R.string.gestures_unknown));
-                    } else {
-                        setGesturesPrompt(null, getString(R.string.gestures_unknown));
-                    }
-                }
-            }
-        }
-
-        private void updatePrompt(ApplicationInfo info) {
-            updatePrompt(info, true);
-        }
-
-        private void updatePrompt(ApplicationInfo info, boolean animate) {
-            if (mGesturesAction.intent != null &&
-                    info.intent.toUri(0).equals(mGesturesAction.intent.toUri(0)) &&
-                    info.title.equals(((TextView) mGesturesPrompt.getCurrentView()).getText())) {
-                return;
-            }
-
-            if (animate) {
-                setGesturesNextPrompt(info.icon, info.title);
-            } else {
-                setGesturesPrompt(info.icon, info.title);
-            }
-
-            mGesturesAction.intent = info.intent;
-        }
-
-        public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) {
-            //noinspection PointlessBooleanExpression,ConstantConditions
-            if (!CONFIG_GESTURES_IMMEDIATE_MODE) {
-                overlay.removeCallbacks(mMatcher);
-            }
-        }
-
-        void addGesture(String name, Gesture gesture) {
-            sLibrary.addGesture(name, gesture);
-            // TODO: On a background thread?
-            sLibrary.save();
-        }
-
-        void update(ApplicationInfo info, Gesture gesture) {
-            mGesturesOverlay.setGesture(gesture);
-            updatePrompt(info);
-        }
-
-        class GestureMatcher implements Runnable {
-            Gesture gesture;
-
-            public void run() {
-                if (gesture != null) {
-                    matchGesture(gesture);
-                }
-            }
-        }
-    }
-
-    private class GesturesAction implements View.OnClickListener {
-        Intent intent;
-
-        public void onClick(View v) {
-            if (intent != null) {
-                startActivitySafely(intent);
-            }
-        }
-    }
 }
-
diff --git a/src/com/android/launcher/Search.java b/src/com/android/launcher/Search.java
index 96c0022..a0402a9 100644
--- a/src/com/android/launcher/Search.java
+++ b/src/com/android/launcher/Search.java
@@ -16,13 +16,20 @@
 
 package com.android.launcher;
 
+import android.app.SearchManager;
 import android.content.ActivityNotFoundException;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.res.Configuration;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
+import android.server.search.SearchableInfo;
+import android.server.search.Searchables;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.KeyEvent;
@@ -68,6 +75,10 @@
 
     // For voice searching
     private Intent mVoiceSearchIntent;
+    
+    private Drawable mGooglePlaceholder;
+    
+    private SearchManager mSearchManager;
 
     /**
      * Used to inflate the Workspace from XML.
@@ -129,6 +140,8 @@
         mVoiceSearchIntent = new Intent(android.speech.RecognizerIntent.ACTION_WEB_SEARCH);
         mVoiceSearchIntent.putExtra(android.speech.RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                 android.speech.RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
+        
+        mSearchManager = (SearchManager) getContext().getSystemService(Context.SEARCH_SERVICE);
     }
 
     /**
@@ -293,6 +306,10 @@
 
         mSearchText = (TextView) findViewById(R.id.search_src_text);
         mVoiceButton = (ImageButton) findViewById(R.id.search_voice_btn);
+        
+        mGooglePlaceholder = getContext().getResources().getDrawable(R.drawable.placeholder_google);
+        mContext.registerReceiver(mBroadcastReceiver,
+                new IntentFilter(SearchManager.INTENT_ACTION_SEARCH_SETTINGS_CHANGED));
 
         mSearchText.setOnKeyListener(this);
 
@@ -304,6 +321,13 @@
         mVoiceButton.setOnLongClickListener(this);
 
         configureVoiceSearchButton();
+        setUpTextField();
+    }
+    
+    @Override
+    public void onDetachedFromWindow() {
+        super.onDetachedFromWindow();
+        if (mBroadcastReceiver != null) getContext().unregisterReceiver(mBroadcastReceiver);
     }
 
     /**
@@ -323,6 +347,28 @@
         // finally, set visible state of voice search button, as appropriate
         mVoiceButton.setVisibility(voiceSearchVisible ? View.VISIBLE : View.GONE);
     }
+    
+    /**
+     * Sets up the look of the text field. If Google is the chosen search provider, includes
+     * a Google logo as placeholder.
+     */
+    private void setUpTextField() {
+        boolean showGooglePlaceholder = false;
+        SearchableInfo webSearchSearchable = mSearchManager.getDefaultSearchableForWebSearch();
+        if (webSearchSearchable != null) {
+            ComponentName webSearchComponent = webSearchSearchable.getSearchActivity();
+            if (webSearchComponent != null) {
+                String componentString = webSearchComponent.flattenToShortString();
+                if (Searchables.ENHANCED_GOOGLE_SEARCH_COMPONENT_NAME.equals(componentString) ||
+                        Searchables.GOOGLE_SEARCH_COMPONENT_NAME.equals(componentString)) {
+                    showGooglePlaceholder = true;
+                }
+            }
+        }
+        
+        mSearchText.setCompoundDrawablesWithIntrinsicBounds(
+                showGooglePlaceholder ? mGooglePlaceholder : null, null, null, null);
+    }
 
     /**
      * Sets the {@link Launcher} that this gadget will call on to display the search dialog. 
@@ -330,6 +376,17 @@
     public void setLauncher(Launcher launcher) {
         mLauncher = launcher;
     }
+        
+    // Broadcast receiver for web search provider change notifications
+    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            String action = intent.getAction();
+            if (SearchManager.INTENT_ACTION_SEARCH_SETTINGS_CHANGED.equals(action)) {
+                setUpTextField();
+            }
+        }
+    };
 
     /** 
      * Moves the view to the top left corner of its parent.
diff --git a/src/com/android/launcher/Utilities.java b/src/com/android/launcher/Utilities.java
index 33b084b..4a22cba 100644
--- a/src/com/android/launcher/Utilities.java
+++ b/src/com/android/launcher/Utilities.java
@@ -25,6 +25,7 @@
 import android.graphics.PaintFlagsDrawFilter;
 import android.graphics.Paint;
 import android.graphics.Rect;
+import android.util.DisplayMetrics;
 import android.content.res.Resources;
 import android.content.Context;
 
@@ -54,6 +55,7 @@
 
             Bitmap centered = Bitmap.createBitmap(bitmapWidth < width ? width : bitmapWidth,
                     bitmapHeight < height ? height : bitmapHeight, Bitmap.Config.RGB_565);
+            centered.setDensity(bitmap.getDensity());
             Canvas canvas = new Canvas(centered);
             canvas.drawColor(color);
             canvas.drawBitmap(bitmap, (width - bitmapWidth) / 2.0f, (height - bitmapHeight) / 2.0f,
@@ -93,16 +95,11 @@
             painter.setIntrinsicWidth(width);
             painter.setIntrinsicHeight(height);
         } else if (icon instanceof BitmapDrawable) {
-            float displayDensity = context.getResources().getDisplayMetrics().density;
+            // Ensure the bitmap has a density.
             BitmapDrawable bitmapDrawable = (BitmapDrawable) icon;
             Bitmap bitmap = bitmapDrawable.getBitmap();
-            float iconDensity = bitmap.getDensityScale();
-            scale = displayDensity / iconDensity;
-
-            // Scale the bitmap to the screen density size if it's not loaded at the same density.
-            if (scale != 1.0f) {
-                icon = bitmapDrawable = new BitmapDrawable(bitmap);
-                bitmapDrawable.setDensityScale(scale);
+            if (bitmap.getDensity() == Bitmap.DENSITY_NONE) {
+                bitmapDrawable.setTargetDensity(context.getResources().getDisplayMetrics());
             }
         }
         int iconWidth = icon.getIntrinsicWidth();