Merge "Fix suppressed CallDetailsActivityTest tests."
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 9d5381a..0e28ae8 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,15 +16,16 @@
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.contacts"
-    android:sharedUserId="android.uid.shared"
-    android:sharedUserLabel="@string/sharedUserLabel"
->
+    android:sharedUserId="android.uid.shared">
 
     <original-package android:name="com.android.contacts" />
 
     <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.WRITE_CONTACTS" />
+    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
     <uses-permission android:name="android.permission.READ_PROFILE" />
     <uses-permission android:name="android.permission.WRITE_PROFILE" />
     <uses-permission android:name="android.permission.INTERNET" />
@@ -48,7 +49,6 @@
         android:name="com.android.contacts.ContactsApplication"
         android:label="@string/contactsList"
         android:icon="@mipmap/ic_launcher_contacts"
-        android:process="android.process.acore"
         android:taskAffinity="android.task.contacts"
         android:hardwareAccelerated="true"
     >
@@ -389,7 +389,7 @@
         <!-- Create a new or edit an existing group -->
         <activity
             android:name=".activities.GroupEditorActivity"
-            android:theme="@style/ContactEditorActivityTheme"
+            android:theme="@style/EditorActivityTheme"
             android:windowSoftInputMode="adjustResize" />
 
         <!-- Used to show QuickContact window over a translucent activity, which is a
@@ -503,7 +503,7 @@
         <!-- Create a new or edit an existing contact -->
         <activity
             android:name=".activities.ContactEditorActivity"
-            android:theme="@style/ContactEditorActivityTheme"
+            android:theme="@style/EditorActivityTheme"
             android:uiOptions="splitActionBarWhenNarrow"
             android:windowSoftInputMode="adjustResize">
 
diff --git a/res/drawable-hdpi/ab_solid_custom_blue_inverse_holo.9.png b/res/drawable-hdpi/ab_solid_custom_blue_inverse_holo.9.png
new file mode 100644
index 0000000..80fb400
--- /dev/null
+++ b/res/drawable-hdpi/ab_solid_custom_blue_inverse_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/change_photo_box_focused_holo_light.9.png b/res/drawable-hdpi/change_photo_box_focused_holo_light.9.png
deleted file mode 100644
index 5254473..0000000
--- a/res/drawable-hdpi/change_photo_box_focused_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/change_photo_box_normal_holo_light.9.png b/res/drawable-hdpi/change_photo_box_normal_holo_light.9.png
deleted file mode 100644
index f026cc8..0000000
--- a/res/drawable-hdpi/change_photo_box_normal_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/change_photo_box_pressed_holo_light.9.png b/res/drawable-hdpi/change_photo_box_pressed_holo_light.9.png
deleted file mode 100644
index a0770ea..0000000
--- a/res/drawable-hdpi/change_photo_box_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/dial_background_texture.png b/res/drawable-hdpi/dial_background_texture.png
index 5b299fd..7ed0984 100644
--- a/res/drawable-hdpi/dial_background_texture.png
+++ b/res/drawable-hdpi/dial_background_texture.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_0_wht.png b/res/drawable-hdpi/dial_num_0_wht.png
index a0720f3..9d7fc62 100644
--- a/res/drawable-hdpi/dial_num_0_wht.png
+++ b/res/drawable-hdpi/dial_num_0_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_1_wht.png b/res/drawable-hdpi/dial_num_1_wht.png
index 0c79720..e941c52 100644
--- a/res/drawable-hdpi/dial_num_1_wht.png
+++ b/res/drawable-hdpi/dial_num_1_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_2_wht.png b/res/drawable-hdpi/dial_num_2_wht.png
index ab90531..fc5540b 100644
--- a/res/drawable-hdpi/dial_num_2_wht.png
+++ b/res/drawable-hdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_3_wht.png b/res/drawable-hdpi/dial_num_3_wht.png
index 956cba9..45637b9 100644
--- a/res/drawable-hdpi/dial_num_3_wht.png
+++ b/res/drawable-hdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_4_wht.png b/res/drawable-hdpi/dial_num_4_wht.png
index 34e157c..af8c8aa 100644
--- a/res/drawable-hdpi/dial_num_4_wht.png
+++ b/res/drawable-hdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_5_wht.png b/res/drawable-hdpi/dial_num_5_wht.png
index 4a3560a..20ab0b1 100644
--- a/res/drawable-hdpi/dial_num_5_wht.png
+++ b/res/drawable-hdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_6_wht.png b/res/drawable-hdpi/dial_num_6_wht.png
index a60420b..8811b4b 100644
--- a/res/drawable-hdpi/dial_num_6_wht.png
+++ b/res/drawable-hdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_7_wht.png b/res/drawable-hdpi/dial_num_7_wht.png
index 95e4cff..ed6d749 100644
--- a/res/drawable-hdpi/dial_num_7_wht.png
+++ b/res/drawable-hdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_8_wht.png b/res/drawable-hdpi/dial_num_8_wht.png
index 4b17084..6844aeb 100644
--- a/res/drawable-hdpi/dial_num_8_wht.png
+++ b/res/drawable-hdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_9_wht.png b/res/drawable-hdpi/dial_num_9_wht.png
index f772901..df294be 100644
--- a/res/drawable-hdpi/dial_num_9_wht.png
+++ b/res/drawable-hdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_pound_wht.png b/res/drawable-hdpi/dial_num_pound_wht.png
index 1d7f55a..46316e5 100644
--- a/res/drawable-hdpi/dial_num_pound_wht.png
+++ b/res/drawable-hdpi/dial_num_pound_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/dial_num_star_wht.png b/res/drawable-hdpi/dial_num_star_wht.png
index 2add63b..c36e31c 100644
--- a/res/drawable-hdpi/dial_num_star_wht.png
+++ b/res/drawable-hdpi/dial_num_star_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_ab_search_holo_dark.png b/res/drawable-hdpi/ic_ab_search_holo_dark.png
new file mode 100644
index 0000000..6dff03e
--- /dev/null
+++ b/res/drawable-hdpi/ic_ab_search_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_dial_action_delete.png b/res/drawable-hdpi/ic_dial_action_delete.png
index f93a308..0bf8563 100644
--- a/res/drawable-hdpi/ic_dial_action_delete.png
+++ b/res/drawable-hdpi/ic_dial_action_delete.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_list_default_mime_holo_dark.png b/res/drawable-hdpi/ic_list_default_mime_holo_dark.png
new file mode 100644
index 0000000..4dc1c39
--- /dev/null
+++ b/res/drawable-hdpi/ic_list_default_mime_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_add_contact_holo_dark.png b/res/drawable-hdpi/ic_menu_add_contact_holo_dark.png
new file mode 100644
index 0000000..472d5b4
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_add_contact_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_add_group_holo_dark.png b/res/drawable-hdpi/ic_menu_add_group_holo_dark.png
new file mode 100644
index 0000000..7f92adc
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_add_group_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_compose_holo_dark.png b/res/drawable-hdpi/ic_menu_compose_holo_dark.png
new file mode 100644
index 0000000..2df1f44
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_compose_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_done_holo_dark.png b/res/drawable-hdpi/ic_menu_done_holo_dark.png
new file mode 100644
index 0000000..750c77e
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_done_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_text_holo_dark.png b/res/drawable-hdpi/ic_text_holo_dark.png
index 1816201..6d21e42 100644
--- a/res/drawable-hdpi/ic_text_holo_dark.png
+++ b/res/drawable-hdpi/ic_text_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_text_holo_light.png b/res/drawable-hdpi/ic_text_holo_light.png
new file mode 100644
index 0000000..01af189
--- /dev/null
+++ b/res/drawable-hdpi/ic_text_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/list_activated_holo.9.png b/res/drawable-hdpi/list_activated_holo.9.png
index 36ccb79..7b89319 100644
--- a/res/drawable-hdpi/list_activated_holo.9.png
+++ b/res/drawable-hdpi/list_activated_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/list_focused_holo.9.png b/res/drawable-hdpi/list_focused_holo.9.png
index 54c5c2d..e962ce8 100644
--- a/res/drawable-hdpi/list_focused_holo.9.png
+++ b/res/drawable-hdpi/list_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/list_pressed_holo.9.png b/res/drawable-hdpi/list_pressed_holo.9.png
index 423fa4b..dd183c0 100644
--- a/res/drawable-hdpi/list_pressed_holo.9.png
+++ b/res/drawable-hdpi/list_pressed_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/ab_solid_custom_blue_inverse_holo.9.png b/res/drawable-mdpi/ab_solid_custom_blue_inverse_holo.9.png
new file mode 100644
index 0000000..f3c0a90
--- /dev/null
+++ b/res/drawable-mdpi/ab_solid_custom_blue_inverse_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/change_photo_box_focused_holo_light.9.png b/res/drawable-mdpi/change_photo_box_focused_holo_light.9.png
deleted file mode 100644
index 47fb773..0000000
--- a/res/drawable-mdpi/change_photo_box_focused_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/change_photo_box_normal_holo_light.9.png b/res/drawable-mdpi/change_photo_box_normal_holo_light.9.png
deleted file mode 100644
index 591e6d5..0000000
--- a/res/drawable-mdpi/change_photo_box_normal_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/change_photo_box_pressed_holo_light.9.png b/res/drawable-mdpi/change_photo_box_pressed_holo_light.9.png
deleted file mode 100644
index 5d5eee2..0000000
--- a/res/drawable-mdpi/change_photo_box_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/dial_background_texture.png b/res/drawable-mdpi/dial_background_texture.png
index 881f3a0..f0ba700 100644
--- a/res/drawable-mdpi/dial_background_texture.png
+++ b/res/drawable-mdpi/dial_background_texture.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_0_wht.png b/res/drawable-mdpi/dial_num_0_wht.png
index 5391fb3..96a0dcd 100644
--- a/res/drawable-mdpi/dial_num_0_wht.png
+++ b/res/drawable-mdpi/dial_num_0_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_1_wht.png b/res/drawable-mdpi/dial_num_1_wht.png
index ff8f125..56dbca3 100644
--- a/res/drawable-mdpi/dial_num_1_wht.png
+++ b/res/drawable-mdpi/dial_num_1_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_2_wht.png b/res/drawable-mdpi/dial_num_2_wht.png
index 041bafb..4c0991c 100644
--- a/res/drawable-mdpi/dial_num_2_wht.png
+++ b/res/drawable-mdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_3_wht.png b/res/drawable-mdpi/dial_num_3_wht.png
index b91b4f5..81bf770 100644
--- a/res/drawable-mdpi/dial_num_3_wht.png
+++ b/res/drawable-mdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_4_wht.png b/res/drawable-mdpi/dial_num_4_wht.png
index 912b4cb..5f07476 100644
--- a/res/drawable-mdpi/dial_num_4_wht.png
+++ b/res/drawable-mdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_5_wht.png b/res/drawable-mdpi/dial_num_5_wht.png
index efd385f..5cf9c7a 100644
--- a/res/drawable-mdpi/dial_num_5_wht.png
+++ b/res/drawable-mdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_6_wht.png b/res/drawable-mdpi/dial_num_6_wht.png
index c0f47c5..ceffb29 100644
--- a/res/drawable-mdpi/dial_num_6_wht.png
+++ b/res/drawable-mdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_7_wht.png b/res/drawable-mdpi/dial_num_7_wht.png
index 5644f2b..022ef9c 100644
--- a/res/drawable-mdpi/dial_num_7_wht.png
+++ b/res/drawable-mdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_8_wht.png b/res/drawable-mdpi/dial_num_8_wht.png
index d0c517d..c470e68 100644
--- a/res/drawable-mdpi/dial_num_8_wht.png
+++ b/res/drawable-mdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_9_wht.png b/res/drawable-mdpi/dial_num_9_wht.png
index fb443ec..27d94ef 100644
--- a/res/drawable-mdpi/dial_num_9_wht.png
+++ b/res/drawable-mdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_pound_wht.png b/res/drawable-mdpi/dial_num_pound_wht.png
index 11751ec..68908c3 100644
--- a/res/drawable-mdpi/dial_num_pound_wht.png
+++ b/res/drawable-mdpi/dial_num_pound_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/dial_num_star_wht.png b/res/drawable-mdpi/dial_num_star_wht.png
index 61b24c1..cb8aa28 100644
--- a/res/drawable-mdpi/dial_num_star_wht.png
+++ b/res/drawable-mdpi/dial_num_star_wht.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_ab_search_holo_dark.png b/res/drawable-mdpi/ic_ab_search_holo_dark.png
new file mode 100644
index 0000000..5a10e93
--- /dev/null
+++ b/res/drawable-mdpi/ic_ab_search_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_dial_action_delete.png b/res/drawable-mdpi/ic_dial_action_delete.png
index 32b0022..98341e9 100644
--- a/res/drawable-mdpi/ic_dial_action_delete.png
+++ b/res/drawable-mdpi/ic_dial_action_delete.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_list_default_mime_holo_dark.png b/res/drawable-mdpi/ic_list_default_mime_holo_dark.png
new file mode 100644
index 0000000..d950b31
--- /dev/null
+++ b/res/drawable-mdpi/ic_list_default_mime_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_add_contact_holo_dark.png b/res/drawable-mdpi/ic_menu_add_contact_holo_dark.png
new file mode 100644
index 0000000..6a7af38
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_add_contact_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_add_group_holo_dark.png b/res/drawable-mdpi/ic_menu_add_group_holo_dark.png
new file mode 100644
index 0000000..16ba126
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_add_group_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_compose_holo_dark.png b/res/drawable-mdpi/ic_menu_compose_holo_dark.png
new file mode 100644
index 0000000..3caf754
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_compose_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_done_holo_dark.png b/res/drawable-mdpi/ic_menu_done_holo_dark.png
new file mode 100644
index 0000000..7ec8c8f
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_done_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_text_holo_dark.png b/res/drawable-mdpi/ic_text_holo_dark.png
index bbaa84f..80b95ee 100644
--- a/res/drawable-mdpi/ic_text_holo_dark.png
+++ b/res/drawable-mdpi/ic_text_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_text_holo_light.png b/res/drawable-mdpi/ic_text_holo_light.png
new file mode 100644
index 0000000..76dae05
--- /dev/null
+++ b/res/drawable-mdpi/ic_text_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/list_activated_holo.9.png b/res/drawable-mdpi/list_activated_holo.9.png
index f7cd24e..4d98919 100644
--- a/res/drawable-mdpi/list_activated_holo.9.png
+++ b/res/drawable-mdpi/list_activated_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/list_focused_holo.9.png b/res/drawable-mdpi/list_focused_holo.9.png
index 32cb628..6e041f3 100644
--- a/res/drawable-mdpi/list_focused_holo.9.png
+++ b/res/drawable-mdpi/list_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/list_pressed_holo.9.png b/res/drawable-mdpi/list_pressed_holo.9.png
index 7ea8666..9358dd8 100644
--- a/res/drawable-mdpi/list_pressed_holo.9.png
+++ b/res/drawable-mdpi/list_pressed_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/ab_solid_custom_blue_inverse_holo.9.png b/res/drawable-xhdpi/ab_solid_custom_blue_inverse_holo.9.png
new file mode 100644
index 0000000..3c97b20
--- /dev/null
+++ b/res/drawable-xhdpi/ab_solid_custom_blue_inverse_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/bg_status_contact_widget.9.png b/res/drawable-xhdpi/bg_status_contact_widget.9.png
index db34bf4..ced5296 100644
--- a/res/drawable-xhdpi/bg_status_contact_widget.9.png
+++ b/res/drawable-xhdpi/bg_status_contact_widget.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/change_photo_box_focused_holo_light.9.png b/res/drawable-xhdpi/change_photo_box_focused_holo_light.9.png
deleted file mode 100644
index 7dbd1e6..0000000
--- a/res/drawable-xhdpi/change_photo_box_focused_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/change_photo_box_normal_holo_light.9.png b/res/drawable-xhdpi/change_photo_box_normal_holo_light.9.png
deleted file mode 100644
index 7e1e97f..0000000
--- a/res/drawable-xhdpi/change_photo_box_normal_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/change_photo_box_pressed_holo_light.9.png b/res/drawable-xhdpi/change_photo_box_pressed_holo_light.9.png
deleted file mode 100644
index e98266f..0000000
--- a/res/drawable-xhdpi/change_photo_box_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/contacts_widget_preview.png b/res/drawable-xhdpi/contacts_widget_preview.png
index 65ac914..1f42ca0 100644
--- a/res/drawable-xhdpi/contacts_widget_preview.png
+++ b/res/drawable-xhdpi/contacts_widget_preview.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_background_texture.png b/res/drawable-xhdpi/dial_background_texture.png
index 4c8617a..3d6e8c7 100644
--- a/res/drawable-xhdpi/dial_background_texture.png
+++ b/res/drawable-xhdpi/dial_background_texture.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_0_wht.png b/res/drawable-xhdpi/dial_num_0_wht.png
index 99aca70..f6f96cc 100644
--- a/res/drawable-xhdpi/dial_num_0_wht.png
+++ b/res/drawable-xhdpi/dial_num_0_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_1_wht.png b/res/drawable-xhdpi/dial_num_1_wht.png
index 5a54bfd..8333aba 100644
--- a/res/drawable-xhdpi/dial_num_1_wht.png
+++ b/res/drawable-xhdpi/dial_num_1_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_2_wht.png b/res/drawable-xhdpi/dial_num_2_wht.png
index 3407d79..02f8fdf 100644
--- a/res/drawable-xhdpi/dial_num_2_wht.png
+++ b/res/drawable-xhdpi/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_3_wht.png b/res/drawable-xhdpi/dial_num_3_wht.png
index dd16bbb..44383b5 100644
--- a/res/drawable-xhdpi/dial_num_3_wht.png
+++ b/res/drawable-xhdpi/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_4_wht.png b/res/drawable-xhdpi/dial_num_4_wht.png
index 98f8773..f90cb73 100644
--- a/res/drawable-xhdpi/dial_num_4_wht.png
+++ b/res/drawable-xhdpi/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_5_wht.png b/res/drawable-xhdpi/dial_num_5_wht.png
index 12a92bf..c41c615 100644
--- a/res/drawable-xhdpi/dial_num_5_wht.png
+++ b/res/drawable-xhdpi/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_6_wht.png b/res/drawable-xhdpi/dial_num_6_wht.png
index 39c3eda..4c7a235 100644
--- a/res/drawable-xhdpi/dial_num_6_wht.png
+++ b/res/drawable-xhdpi/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_7_wht.png b/res/drawable-xhdpi/dial_num_7_wht.png
index 5e3a0b0..fabca99 100644
--- a/res/drawable-xhdpi/dial_num_7_wht.png
+++ b/res/drawable-xhdpi/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_8_wht.png b/res/drawable-xhdpi/dial_num_8_wht.png
index d68142d..7bd70b0 100644
--- a/res/drawable-xhdpi/dial_num_8_wht.png
+++ b/res/drawable-xhdpi/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_9_wht.png b/res/drawable-xhdpi/dial_num_9_wht.png
index b34bc1d..207276c 100644
--- a/res/drawable-xhdpi/dial_num_9_wht.png
+++ b/res/drawable-xhdpi/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_pound_wht.png b/res/drawable-xhdpi/dial_num_pound_wht.png
index a4ead0a..b2cac17 100644
--- a/res/drawable-xhdpi/dial_num_pound_wht.png
+++ b/res/drawable-xhdpi/dial_num_pound_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/dial_num_star_wht.png b/res/drawable-xhdpi/dial_num_star_wht.png
index ba0a787..2862c45 100644
--- a/res/drawable-xhdpi/dial_num_star_wht.png
+++ b/res/drawable-xhdpi/dial_num_star_wht.png
Binary files differ
diff --git a/res/drawable-xhdpi/frame_thumbnail_contact_widget_focused_holo.png b/res/drawable-xhdpi/frame_thumbnail_contact_widget_focused_holo.png
index a05ca8a..157ef56 100644
--- a/res/drawable-xhdpi/frame_thumbnail_contact_widget_focused_holo.png
+++ b/res/drawable-xhdpi/frame_thumbnail_contact_widget_focused_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/frame_thumbnail_contact_widget_holo.png b/res/drawable-xhdpi/frame_thumbnail_contact_widget_holo.png
index bf2e4a8..7719710 100644
--- a/res/drawable-xhdpi/frame_thumbnail_contact_widget_holo.png
+++ b/res/drawable-xhdpi/frame_thumbnail_contact_widget_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/frame_thumbnail_contact_widget_pressed_holo.png b/res/drawable-xhdpi/frame_thumbnail_contact_widget_pressed_holo.png
index 6541c62..8c5008b 100644
--- a/res/drawable-xhdpi/frame_thumbnail_contact_widget_pressed_holo.png
+++ b/res/drawable-xhdpi/frame_thumbnail_contact_widget_pressed_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_ab_search_holo_dark.png b/res/drawable-xhdpi/ic_ab_search_holo_dark.png
new file mode 100644
index 0000000..b2d23c9
--- /dev/null
+++ b/res/drawable-xhdpi/ic_ab_search_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dial_action_delete.png b/res/drawable-xhdpi/ic_dial_action_delete.png
index 9c0b4f0..989e8b1 100644
--- a/res/drawable-xhdpi/ic_dial_action_delete.png
+++ b/res/drawable-xhdpi/ic_dial_action_delete.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_list_default_mime_holo_dark.png b/res/drawable-xhdpi/ic_list_default_mime_holo_dark.png
new file mode 100644
index 0000000..73cddd1
--- /dev/null
+++ b/res/drawable-xhdpi/ic_list_default_mime_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_add_contact_holo_dark.png b/res/drawable-xhdpi/ic_menu_add_contact_holo_dark.png
new file mode 100644
index 0000000..e94b91b
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_add_contact_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_add_group_holo_dark.png b/res/drawable-xhdpi/ic_menu_add_group_holo_dark.png
new file mode 100644
index 0000000..d4bd681
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_add_group_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_compose_holo_dark.png b/res/drawable-xhdpi/ic_menu_compose_holo_dark.png
new file mode 100644
index 0000000..cd868d2
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_compose_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_done_holo_dark.png b/res/drawable-xhdpi/ic_menu_done_holo_dark.png
new file mode 100644
index 0000000..b9af04a
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_done_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_text_holo_dark.png b/res/drawable-xhdpi/ic_text_holo_dark.png
index 8c697d9..e80a042 100644
--- a/res/drawable-xhdpi/ic_text_holo_dark.png
+++ b/res/drawable-xhdpi/ic_text_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_text_holo_light.png b/res/drawable-xhdpi/ic_text_holo_light.png
new file mode 100644
index 0000000..6fb8e92
--- /dev/null
+++ b/res/drawable-xhdpi/ic_text_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/list_activated_holo.9.png b/res/drawable-xhdpi/list_activated_holo.9.png
index bb9a7f9..4e13add 100644
--- a/res/drawable-xhdpi/list_activated_holo.9.png
+++ b/res/drawable-xhdpi/list_activated_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/list_focused_holo.9.png b/res/drawable-xhdpi/list_focused_holo.9.png
index 6051708..9c90c2b 100644
--- a/res/drawable-xhdpi/list_focused_holo.9.png
+++ b/res/drawable-xhdpi/list_focused_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/list_pressed_holo.9.png b/res/drawable-xhdpi/list_pressed_holo.9.png
index f4b4c38..d0fc7e0 100644
--- a/res/drawable-xhdpi/list_pressed_holo.9.png
+++ b/res/drawable-xhdpi/list_pressed_holo.9.png
Binary files differ
diff --git a/res/drawable/change_photo_box_holo_light.xml b/res/drawable/change_photo_box_holo_light.xml
deleted file mode 100644
index f08beb0..0000000
--- a/res/drawable/change_photo_box_holo_light.xml
+++ /dev/null
@@ -1,26 +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:drawable="@drawable/change_photo_box_normal_holo_light" />
-    <item android:state_pressed="true"
-        android:drawable="@drawable/change_photo_box_pressed_holo_light" />
-    <item android:state_focused="true"
-        android:drawable="@drawable/change_photo_box_focused_holo_light" />
-    <item
-        android:drawable="@drawable/change_photo_box_normal_holo_light" />
-</selector>
diff --git a/res/layout-sw580dp/event_field_editor_view.xml b/res/layout-sw580dp/event_field_editor_view.xml
index f31b283..822de37 100644
--- a/res/layout-sw580dp/event_field_editor_view.xml
+++ b/res/layout-sw580dp/event_field_editor_view.xml
@@ -39,7 +39,6 @@
         <include
             android:id="@+id/spinner"
             layout="@layout/edit_spinner"
-            android:paddingTop="15dip"
             android:visibility="gone" />
 
         <include
diff --git a/res/layout-sw580dp/external_raw_contact_editor_view.xml b/res/layout-sw580dp/external_raw_contact_editor_view.xml
index b185c8a..fba5220 100644
--- a/res/layout-sw580dp/external_raw_contact_editor_view.xml
+++ b/res/layout-sw580dp/external_raw_contact_editor_view.xml
@@ -22,8 +22,7 @@
     android:orientation="vertical">
 
     <include
-        layout="@layout/raw_contact_editor_header"
-        android:id="@+id/header" />
+        layout="@layout/editor_account_header" />
 
     <LinearLayout
         android:id="@+id/body"
diff --git a/res/layout-sw580dp/people_activity.xml b/res/layout-sw580dp/people_activity.xml
index 1d02042..8bf627f 100644
--- a/res/layout-sw580dp/people_activity.xml
+++ b/res/layout-sw580dp/people_activity.xml
@@ -40,11 +40,6 @@
             android:background="@drawable/list_background_holo"
             android:visibility="gone">
 
-            <View
-                style="@style/SectionDivider"
-                android:layout_marginLeft="40dip"
-                android:layout_marginTop="24dip" />
-
             <!-- All -->
             <fragment
                 android:id="@+id/all_fragment"
diff --git a/res/layout-sw580dp/raw_contact_editor_header.xml b/res/layout-sw580dp/raw_contact_editor_header.xml
deleted file mode 100644
index 498998d..0000000
--- a/res/layout-sw580dp/raw_contact_editor_header.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-
-<!-- Account info header -->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_height="64dip"
-    android:layout_width="match_parent">
-
-    <RelativeLayout
-        android:id="@+id/account"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="?android:attr/selectableItemBackground">
-
-        <ImageView
-            android:id="@+id/account_icon"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="7dip"
-            android:layout_marginRight="7dip"
-            android:layout_centerVertical="true"
-            android:layout_alignParentRight="true"
-            android:layout_below="@id/header_color_bar" />
-
-        <TextView
-            android:id="@+id/account_type"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_toLeftOf="@+id/account_icon"
-            android:layout_alignTop="@id/account_icon"
-            android:layout_marginTop="-4dip"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="?android:attr/textColorPrimary"
-            android:singleLine="true" />
-
-        <TextView
-            android:id="@+id/account_name"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_toLeftOf="@+id/account_icon"
-            android:layout_alignBottom="@+id/account_icon"
-            android:layout_marginBottom="2dip"
-
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textColor="?android:attr/textColorPrimary"
-            android:singleLine="true" />
-
-        <include
-              android:id="@+id/divider"
-              android:layout_alignParentBottom="true"
-              layout="@layout/edit_divider" />
-    </RelativeLayout>
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout-sw580dp/raw_contact_editor_view.xml b/res/layout-sw580dp/raw_contact_editor_view.xml
index 9c3f708..11fc161 100644
--- a/res/layout-sw580dp/raw_contact_editor_view.xml
+++ b/res/layout-sw580dp/raw_contact_editor_view.xml
@@ -21,14 +21,8 @@
     android:layout_height="wrap_content"
     android:orientation="vertical">
 
-    <FrameLayout
-        android:id="@+id/anchor_for_account_switcher"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content">
-        <include
-            layout="@layout/raw_contact_editor_header"
-            android:id="@+id/header" />
-    </FrameLayout>
+    <include
+        layout="@layout/editor_account_header" />
 
     <LinearLayout
         android:id="@+id/body"
@@ -124,8 +118,8 @@
         <com.android.contacts.widget.InterpolatingLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginTop="10dip"
-            android:layout_marginBottom="42dip">
+            android:layout_marginTop="16dip"
+            android:layout_marginBottom="32dip">
             <Button
                 android:id="@+id/button_add_field"
                 android:text="@string/add_field"
diff --git a/res/layout/add_group_menu_item.xml b/res/layout/add_group_menu_item.xml
index b2ff678..841159e 100644
--- a/res/layout/add_group_menu_item.xml
+++ b/res/layout/add_group_menu_item.xml
@@ -36,7 +36,7 @@
             android:layout_height="wrap_content"
             android:layout_gravity="center_vertical"
             android:layout_marginRight="8dip"
-            android:src="@drawable/ic_menu_display_all_holo_light"
+            android:src="@drawable/ic_menu_add_group_holo_dark"
             android:description="@string/menu_new_group_action_bar" />
 
         <TextView
@@ -44,6 +44,10 @@
             android:layout_height="wrap_content"
             android:layout_gravity="center_vertical"
             android:textAppearance="?android:attr/textAppearanceMedium"
-            android:text="@string/menu_new_group_action_bar" />
+            android:text="@string/menu_new_group_action_bar"
+            android:textColor="@color/action_bar_button_text_color"
+            style="@android:style/Widget.Holo.ActionBar.TabText" />
+
     </LinearLayout>
+
 </LinearLayout>
diff --git a/res/layout/contact_detail_list_item.xml b/res/layout/contact_detail_list_item.xml
index e2818e9..ccfa01d 100644
--- a/res/layout/contact_detail_list_item.xml
+++ b/res/layout/contact_detail_list_item.xml
@@ -76,7 +76,7 @@
                     android:layout_height="16dip"
                     android:visibility="gone"
                     android:layout_gravity="center_vertical"
-                    android:background="@drawable/ic_menu_mark" />
+                    android:background="@drawable/ic_list_default_mime_holo_dark" />
 
             </LinearLayout>
 
diff --git a/res/layout/contact_list_filter.xml b/res/layout/contact_list_filter.xml
index de05cf8..37aaf53 100644
--- a/res/layout/contact_list_filter.xml
+++ b/res/layout/contact_list_filter.xml
@@ -25,7 +25,9 @@
         android:id="@android:id/list"
         android:layout_width="match_parent"
         android:layout_height="0dip"
-        android:layout_weight="1" />
+        android:layout_weight="1"
+        android:layout_marginLeft="@dimen/contact_filter_left_margin"
+        android:layout_marginRight="@dimen/contact_filter_right_margin" />
 
     <View
         android:layout_width="match_parent"
diff --git a/res/layout/contact_list_filter_custom.xml b/res/layout/contact_list_filter_custom.xml
index 195ff1a..a4fe48e 100644
--- a/res/layout/contact_list_filter_custom.xml
+++ b/res/layout/contact_list_filter_custom.xml
@@ -25,8 +25,8 @@
         android:layout_width="match_parent"
         android:layout_height="0dip"
         android:layout_weight="1"
-        android:layout_marginLeft="16dip"
-        android:layout_marginRight="16dip"/>
+        android:layout_marginLeft="@dimen/contact_filter_left_margin"
+        android:layout_marginRight="@dimen/contact_filter_right_margin" />
 
     <View
         android:layout_width="match_parent"
diff --git a/res/layout/filter_spinner_item.xml b/res/layout/contact_list_filter_item.xml
similarity index 75%
rename from res/layout/filter_spinner_item.xml
rename to res/layout/contact_list_filter_item.xml
index c2d5d68..b27cab8 100644
--- a/res/layout/filter_spinner_item.xml
+++ b/res/layout/contact_list_filter_item.xml
@@ -17,32 +17,27 @@
 <view
     xmlns:android="http://schemas.android.com/apk/res/android"
     class="com.android.contacts.list.ContactListFilterView"
-    android:layout_height="52dip"
-    android:layout_width="fill_parent"
-    android:paddingLeft="7dip"
-    android:paddingRight="7dip"
-    android:paddingTop="2dip"
-    android:paddingBottom="2dip"
-    android:gravity="left">
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="@dimen/contact_filter_item_min_height">
 
     <View
         android:id="@+id/indent"
-        android:layout_width="40dip"
+        android:layout_width="32dip"
         android:layout_height="fill_parent" />
 
     <ImageView
         android:id="@+id/icon"
         android:scaleType="fitCenter"
-        android:layout_width="24dip"
-        android:layout_height="24dip"
-        android:layout_marginLeft="8dip"
-        android:layout_marginRight="7dip"
+        android:layout_width="@dimen/contact_filter_icon_size"
+        android:layout_height="@dimen/contact_filter_icon_size"
         android:layout_gravity="center_vertical" />
 
     <TextView
         android:id="@+id/label"
         android:layout_width="wrap_content"
-        android:layout_height="fill_parent"
+        android:layout_height="match_parent"
+        android:layout_marginLeft="8dip"
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:gravity="center_vertical"
         android:ellipsize="end" />
diff --git a/res/layout/contacts_list_content.xml b/res/layout/contacts_list_content.xml
index 490499c..92841b6 100644
--- a/res/layout/contacts_list_content.xml
+++ b/res/layout/contacts_list_content.xml
@@ -14,10 +14,14 @@
      limitations under the License.
 -->
 
+<!-- android:paddingTop is used instead of android:layout_marginTop. It looks
+     android:layout_marginTop is ignored when used with <fragment></fragment>, which
+     only happens in Tablet UI since we rely on ViewPager in Phone UI.
+     Instead, android:layout_marginTop inside <fragment /> is effective. -->
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/pinned_header_list_layout"
-    android:layout_marginTop="@dimen/contact_browser_list_top_margin"
+    android:paddingTop="@dimen/contact_browser_list_top_margin"
     android:layout_width="match_parent"
     android:layout_height="match_parent" >
     <LinearLayout
@@ -25,24 +29,38 @@
         android:layout_height="match_parent"
         android:orientation="vertical">
 
-        <TextView
-            android:id="@+id/account_filter_header"
+        <!-- Shown only when an Account filter is set. -->
+        <LinearLayout
+            android:id="@+id/account_filter_header_container"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:singleLine="true"
-            android:ellipsize="end"
-            android:gravity="center"
-            android:padding="5dip"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textColor="@android:color/white"
-            android:background="@android:color/black"
-            android:visibility="gone" />
+            android:orientation="vertical"
+            android:layout_marginLeft="@dimen/contact_browser_list_header_left_margin"
+            android:layout_marginRight="@dimen/contact_browser_list_header_right_margin"
+            android:visibility="gone">
+            <TextView
+                android:id="@+id/account_filter_header"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:minHeight="@dimen/contact_filter_header_min_height"
+                android:layout_marginLeft="8dip"
+                android:singleLine="true"
+                android:ellipsize="end"
+                android:gravity="left"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textColor="?android:attr/textColorSecondary" />
+            <View
+                android:id="@+id/account_filter_header_bottom_divider"
+                style="@style/SectionDivider" />
+        </LinearLayout>
 
         <view
             class="com.android.contacts.list.ContactEntryListView"
             android:id="@android:id/list"
             android:layout_width="match_parent"
             android:layout_height="0dip"
+            android:layout_marginLeft="@dimen/contact_browser_list_left_margin"
+            android:layout_marginRight="@dimen/contact_browser_list_right_margin"
             android:fastScrollEnabled="true"
             android:layout_weight="1" />
 
@@ -61,7 +79,7 @@
         android:ellipsize="end"
         android:gravity="right"
         android:layout_gravity="top|right"
-        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textAppearance="?android:attr/textAppearanceSmall"
         android:textColor="@color/contact_count_text_color"
         android:background="@color/contact_browser_list_bk_color" />
 </FrameLayout>
diff --git a/res/layout/custom_contact_list_filter_account.xml b/res/layout/custom_contact_list_filter_account.xml
index b19ae2d..8c1b6c1 100644
--- a/res/layout/custom_contact_list_filter_account.xml
+++ b/res/layout/custom_contact_list_filter_account.xml
@@ -37,7 +37,7 @@
             android:layout_height="wrap_content"
             android:singleLine="true"
             android:ellipsize="marquee"
-            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:textAppearance="?android:attr/textAppearanceMedium"
             android:duplicateParentState="true" />
 
         <TextView
@@ -46,8 +46,9 @@
             android:layout_height="wrap_content"
             android:layout_below="@android:id/text1"
             android:layout_alignLeft="@android:id/text1"
-            android:maxLines="2"
+            android:maxLines="1"
             android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="?android:attr/textColorTertiary"
             android:duplicateParentState="true" />
 
     </RelativeLayout>
diff --git a/res/layout/directory_header.xml b/res/layout/directory_header.xml
index 2748923..af0b5bd 100644
--- a/res/layout/directory_header.xml
+++ b/res/layout/directory_header.xml
@@ -19,42 +19,40 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     style="@style/DirectoryHeader"
     android:layout_width="match_parent"
-    android:layout_height="@dimen/directory_header_height"
-    >
-    <TextView
-        android:id="@+id/count"
-        android:layout_height="wrap_content"
-        android:layout_width="wrap_content"
-        android:layout_centerVertical="true"
-        android:layout_alignParentRight="true"
-        android:layout_marginRight="8dip"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textColor="?android:attr/textColorTertiary"
-        android:textStyle="bold"
-    />
-    <TextView
-        android:id="@+id/label"
-        android:layout_height="wrap_content"
-        android:layout_width="wrap_content"
-        android:layout_alignParentLeft="true"
-        android:layout_alignBaseline="@id/count"
-        android:layout_marginLeft="8dip"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textColor="?android:attr/textColorTertiary"
-        android:textStyle="bold"
-    />
+    android:layout_height="wrap_content">
     <TextView
         android:id="@+id/display_name"
-        android:layout_height="wrap_content"
         android:layout_width="wrap_content"
-        android:layout_toRightOf="@id/label"
-        android:layout_toLeftOf="@id/count"
-        android:layout_alignBaseline="@id/count"
-        android:layout_marginLeft="6dip"
-        android:layout_marginRight="6dip"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/directory_header_height"
+        android:layout_toRightOf="@+id/label"
+        android:layout_toLeftOf="@+id/count"
+        android:layout_centerVertical="true"
+        android:layout_marginLeft="8dip"
+        android:layout_marginRight="8dip"
         android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textColor="?android:attr/textColorTertiary"
-        android:singleLine="true"
-        android:ellipsize="end"
-    />
+        android:textColor="?android:attr/textColorSecondary"
+        android:singleLine="true" />
+    <TextView
+        android:id="@+id/label"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignBaseline="@id/display_name"
+        android:layout_marginLeft="8dip"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:textColor="?android:attr/textColorSecondary" />
+    <TextView
+        android:id="@+id/count"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_marginRight="8dip"
+        android:layout_alignBaseline="@id/display_name"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:textColor="?android:attr/textColorSecondary" />
+    <View
+        android:id="@+id/contact_filter_header_bottom_divider"
+        style="@style/SectionDivider"
+        android:layout_below="@id/display_name" />
 </RelativeLayout>
diff --git a/res/layout/edit_add_field.xml b/res/layout/edit_add_field.xml
index 31ea05d..b17185d 100644
--- a/res/layout/edit_add_field.xml
+++ b/res/layout/edit_add_field.xml
@@ -17,7 +17,8 @@
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:paddingLeft="13dip"
+    android:minHeight="48dip"
+    android:paddingLeft="16dip"
     android:background="?android:attr/selectableItemBackground">
     <TextView
         android:id="@+id/add_text"
@@ -26,6 +27,6 @@
         android:layout_height="wrap_content"
         android:duplicateParentState="true"
         android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textColor="?android:attr/textColorTertiary"
+        android:textColor="?android:attr/textColorSecondary"
         android:text="@string/add_new_entry_for_section" />
 </FrameLayout>
\ No newline at end of file
diff --git a/res/layout/edit_date_picker.xml b/res/layout/edit_date_picker.xml
index c18d607..5122bbe 100644
--- a/res/layout/edit_date_picker.xml
+++ b/res/layout/edit_date_picker.xml
@@ -19,10 +19,11 @@
 <Button
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/date_view"
+    style="?android:attr/spinnerStyle"
     android:layout_width="0dip"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:layout_marginLeft="@dimen/editor_field_left_padding"
     android:layout_marginRight="@dimen/editor_field_right_padding"
     android:textAppearance="?android:attr/textAppearanceMedium"
-    style="@android:style/Widget.Holo.Light.Spinner" />
\ No newline at end of file
+    android:paddingLeft="16dip" />
\ No newline at end of file
diff --git a/res/layout/edit_expansion_view.xml b/res/layout/edit_expansion_view.xml
index 96fe8de..267593d 100644
--- a/res/layout/edit_expansion_view.xml
+++ b/res/layout/edit_expansion_view.xml
@@ -19,12 +19,12 @@
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_gravity="top">
+    android:layout_height="match_parent">
     <ImageView
         android:id="@+id/expansion_view"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_gravity="top"
         android:duplicateParentState="true"
         android:background="?android:attr/selectableItemBackground"
         android:paddingLeft="@dimen/editor_round_button_padding_left"
diff --git a/res/layout/edit_kind_title.xml b/res/layout/edit_kind_title.xml
index 619ba49..0f755ee 100644
--- a/res/layout/edit_kind_title.xml
+++ b/res/layout/edit_kind_title.xml
@@ -21,22 +21,23 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:paddingLeft="@dimen/editor_field_left_padding"
-    android:paddingRight="@dimen/editor_field_right_padding"
+    android:minHeight="24dip"
+    android:paddingLeft="8dip"
+    android:paddingRight="8dip"
     android:orientation="vertical">
 
     <TextView
         android:id="@+id/kind_title"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:paddingLeft="@dimen/editor_field_left_padding"
+        android:paddingLeft="8dip"
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:textColor="@color/people_app_theme_color"
         android:textStyle="bold"
+        android:textAllCaps="true"
         android:singleLine="true"
         android:ellipsize="end"
-        android:paddingTop="5dip"
-        android:paddingBottom="2dip" />
+        android:layout_gravity="center_vertical" />
 
     <ImageView
         android:id="@+id/divider"
diff --git a/res/layout/edit_spinner.xml b/res/layout/edit_spinner.xml
index 325eb50..37edcbd 100644
--- a/res/layout/edit_spinner.xml
+++ b/res/layout/edit_spinner.xml
@@ -20,8 +20,8 @@
 <Spinner
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/spinner"
+    android:layout_gravity="top"
     android:layout_width="@dimen/editor_type_label_width"
     android:layout_height="wrap_content"
     android:paddingLeft="5dip"
-    android:paddingRight="20dip"
-    android:textAppearance="?android:attr/textAppearanceSmall"/>
\ No newline at end of file
+    android:paddingRight="20dip"/>
\ No newline at end of file
diff --git a/res/layout/editor_account_header.xml b/res/layout/editor_account_header.xml
index fbce1f9..5181708 100644
--- a/res/layout/editor_account_header.xml
+++ b/res/layout/editor_account_header.xml
@@ -16,11 +16,16 @@
 
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/account_container"
     android:layout_height="wrap_content"
     android:layout_width="match_parent"
+    android:minHeight="48dip"
+    android:background="#EEEEEE"
     android:orientation="horizontal"
-    android:paddingLeft="10dip"
-    android:paddingRight="10dip">
+    android:paddingTop="8dip"
+    android:paddingBottom="8dip"
+    android:paddingLeft="16dip"
+    android:paddingRight="16dip">
 
     <LinearLayout
         android:id="@+id/account"
@@ -53,8 +58,8 @@
 
         <ImageView
              android:id="@+id/account_icon"
-             android:layout_width="45dip"
-             android:layout_height="45dip"
+             android:layout_width="32dip"
+             android:layout_height="32dip"
              android:layout_gravity="center_vertical" />
 
     </FrameLayout>
diff --git a/res/layout/editor_custom_action_bar.xml b/res/layout/editor_custom_action_bar.xml
index 0f42213..c22b089 100644
--- a/res/layout/editor_custom_action_bar.xml
+++ b/res/layout/editor_custom_action_bar.xml
@@ -40,7 +40,7 @@
                 android:layout_height="wrap_content"
                 android:layout_gravity="center_vertical"
                 android:layout_marginRight="8dip"
-                android:src="@drawable/ic_menu_done_holo_light"
+                android:src="@drawable/ic_menu_done_holo_dark"
                 android:description="@string/menu_done" />
 
             <TextView
@@ -49,7 +49,7 @@
                 android:layout_gravity="center_vertical"
                 android:layout_marginRight="20dip"
                 android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textColor="@android:color/white"
+                android:textColor="@color/action_bar_button_text_color"
                 android:text="@string/menu_done"
                 style="@android:style/Widget.Holo.ActionBar.TabText" />
 
diff --git a/res/layout/event_field_editor_view.xml b/res/layout/event_field_editor_view.xml
index 0dceafc..6903772 100644
--- a/res/layout/event_field_editor_view.xml
+++ b/res/layout/event_field_editor_view.xml
@@ -35,10 +35,14 @@
             android:id="@+id/date_view"
             layout="@layout/edit_date_picker" />
 
-        <include
+        <Spinner
             android:id="@+id/spinner"
-            layout="@layout/edit_spinner"
-            android:visibility="gone" />
+            android:layout_width="@dimen/editor_type_label_width"
+            android:layout_height="wrap_content"
+            android:paddingLeft="5dip"
+            android:paddingRight="20dip"
+            android:layout_gravity="bottom"
+            android:visibility="gone"/>
 
         <include
             android:id="@+id/delete_button_container"
diff --git a/res/layout/external_raw_contact_editor_view.xml b/res/layout/external_raw_contact_editor_view.xml
index 661371d..6f39b34 100644
--- a/res/layout/external_raw_contact_editor_view.xml
+++ b/res/layout/external_raw_contact_editor_view.xml
@@ -19,90 +19,54 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="horizontal"
-    android:paddingBottom="10dip">
+    android:orientation="vertical">
 
-    <!-- Left side color bar -->
-    <ImageView
-        android:id="@+id/color_bar"
-        android:layout_width="4dip"
-        android:layout_height="match_parent"
-        android:visibility="gone"/>
+    <include
+        layout="@layout/editor_account_header" />
 
-    <!-- The content -->
     <LinearLayout
-        android:layout_width="0dip"
         android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:orientation="vertical">
+        android:layout_width="match_parent"
+        android:orientation="horizontal"
+        android:paddingLeft="16dip"
+        android:paddingRight="16dip">
 
-        <!-- Account info header -->
-        <ImageView android:id="@+id/header_color_bar"
-            android:layout_width="match_parent"
-            android:layout_height="4dip"
-            android:layout_marginBottom="5dip"
-            android:background="@color/edit_divider"/>
+        <TextView android:id="@+id/read_only_name"
+            android:layout_width="0dip"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center_vertical"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textColor="?android:attr/textColorSecondary"
+            android:textStyle="bold"/>
 
-        <TextView
-            android:id="@+id/read_only_warning"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="10dip"
-            android:paddingLeft="10dip"
-            android:paddingRight="10dip"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textColor="?android:attr/textColorTertiary"/>
+        <FrameLayout
+            android:id="@+id/stub_photo"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content">
 
-        <include
-            android:id="@+id/account_header"
-            layout="@layout/editor_account_header" />
+            <include
+                android:id="@+id/edit_photo"
+                layout="@layout/item_photo_editor" />
 
-        <LinearLayout
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:orientation="horizontal"
-            android:paddingTop="20dip"
-            android:paddingLeft="10dip"
-            android:paddingRight="10dip">
-
-            <TextView android:id="@+id/read_only_name"
-                android:layout_width="0dip"
-                android:layout_height="match_parent"
-                android:layout_weight="1"
-                android:gravity="center_vertical"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textColor="?android:attr/textColorTertiary"
-                android:textStyle="bold"/>
-
-            <FrameLayout
-                android:id="@+id/stub_photo"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content">
-
-                <include
-                    android:id="@+id/edit_photo"
-                    layout="@layout/item_photo_editor" />
-
-            </FrameLayout>
-
-        </LinearLayout>
-
-        <Button
-            android:id="@+id/button_edit_externally"
-            android:text="@string/edit_contact"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="13dip"
-            android:layout_marginBottom="13dip"
-            android:layout_marginLeft="13dip"/>
-
-        <LinearLayout android:id="@+id/sect_general"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"/>
+        </FrameLayout>
 
     </LinearLayout>
 
+    <Button
+        android:id="@+id/button_edit_externally"
+        android:text="@string/edit_contact"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="13dip"
+        android:layout_marginBottom="13dip"
+        android:layout_marginLeft="13dip"/>
+
+    <LinearLayout android:id="@+id/sect_general"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"/>
+
 </com.android.contacts.editor.ExternalRawContactEditorView>
diff --git a/res/layout/group_browse_list_item.xml b/res/layout/group_browse_list_item.xml
index b9b272c..6f5fcef 100644
--- a/res/layout/group_browse_list_item.xml
+++ b/res/layout/group_browse_list_item.xml
@@ -86,26 +86,22 @@
                     android:id="@+id/icon_1"
                     android:layout_width="@dimen/group_list_icon_size"
                     android:layout_height="@dimen/group_list_icon_size"
-                    android:layout_marginRight="1dip"
-                    android:src="@drawable/ic_contact_picture" />
+                    android:layout_marginRight="1dip" />
                 <ImageView
                     android:id="@+id/icon_2"
                     android:layout_width="@dimen/group_list_icon_size"
-                    android:layout_height="@dimen/group_list_icon_size"
-                    android:src="@drawable/ic_contact_picture" />
+                    android:layout_height="@dimen/group_list_icon_size" />
             </TableRow>
             <TableRow>
                 <ImageView
                     android:id="@+id/icon_3"
                     android:layout_width="@dimen/group_list_icon_size"
                     android:layout_height="@dimen/group_list_icon_size"
-                    android:layout_marginRight="1dip"
-                    android:src="@drawable/ic_contact_picture" />
+                    android:layout_marginRight="1dip" />
                 <ImageView
                     android:id="@+id/icon_4"
                     android:layout_width="@dimen/group_list_icon_size"
-                    android:layout_height="@dimen/group_list_icon_size"
-                    android:src="@drawable/ic_contact_picture" />
+                    android:layout_height="@dimen/group_list_icon_size" />
             </TableRow>
 
         </TableLayout>
diff --git a/res/layout/item_group_membership.xml b/res/layout/item_group_membership.xml
index 62d06ea..b6d11f2 100644
--- a/res/layout/item_group_membership.xml
+++ b/res/layout/item_group_membership.xml
@@ -34,6 +34,6 @@
         android:gravity="left|center_vertical"
         android:ellipsize="end"
         android:focusable="true"
-        android:paddingLeft="@dimen/editor_field_left_padding" />
+        android:paddingLeft="16dip" />
 
 </com.android.contacts.editor.GroupMembershipView>
diff --git a/res/layout/item_kind_section.xml b/res/layout/item_kind_section.xml
index 0b6017c..157ca1c 100644
--- a/res/layout/item_kind_section.xml
+++ b/res/layout/item_kind_section.xml
@@ -20,7 +20,6 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:paddingBottom="@dimen/editor_field_bottom_padding"
     android:orientation="vertical">
 
     <include
diff --git a/res/layout/item_photo_editor.xml b/res/layout/item_photo_editor.xml
index 3590963..2e73cb2 100644
--- a/res/layout/item_photo_editor.xml
+++ b/res/layout/item_photo_editor.xml
@@ -36,6 +36,6 @@
         android:clickable="true"
         android:focusable="true"
         android:contentDescription="@string/description_contact_photo"
-        android:background="@drawable/change_photo_box_holo_light"
+        android:background="?android:attr/selectableItemBackground"
     />
 </view>
diff --git a/res/layout/item_read_only_field.xml b/res/layout/item_read_only_field.xml
index 9e0967e..03778cc 100644
--- a/res/layout/item_read_only_field.xml
+++ b/res/layout/item_read_only_field.xml
@@ -16,37 +16,20 @@
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="?android:attr/listPreferredItemHeight"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
 
-    android:orientation="vertical"
->
-
-    <TextView android:id="@+id/label"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginLeft="10dip"
-        android:layout_marginTop="2dip"
-
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:singleLine="true"
-    />
+    <include
+        android:id="@+id/kind_title_layout"
+        layout="@layout/edit_kind_title" />
 
     <TextView android:id="@+id/data"
         android:layout_width="wrap_content"
         android:layout_height="0px"
         android:layout_weight="1"
-        android:layout_marginLeft="10dip"
-        android:layout_marginBottom="4dip"
-
+        android:layout_marginLeft="16dip"
         android:textAppearance="?android:attr/textAppearanceMedium"
-        android:singleLine="true"
-    />
-
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1px"
-
-        android:background="?android:attr/listDivider"
-    />
+        android:textColor="?android:attr/textColorSecondary"
+        android:singleLine="true"/>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/organization_editor_view_switcher.xml b/res/layout/organization_editor_view_switcher.xml
index c6e16ae..fb21626 100644
--- a/res/layout/organization_editor_view_switcher.xml
+++ b/res/layout/organization_editor_view_switcher.xml
@@ -23,19 +23,22 @@
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:paddingLeft="@dimen/editor_field_left_padding"
-    android:paddingRight="@dimen/editor_field_right_padding"
+    android:minHeight="48dip"
     android:background="?android:attr/selectableItemBackground">
 
     <TextView
         android:id="@+id/add_organization_button"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingLeft="@dimen/editor_field_left_padding"
+        android:paddingLeft="16dip"
+        android:paddingRight="16dip"
+        android:layout_gravity="center_vertical"
+        android:duplicateParentState="true"
         android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/organizationLabelsGroup"
-        android:duplicateParentState="true"/>
+        android:textColor="?android:attr/textColorSecondary"
+        android:text="@string/add_organization"/>
 
+    <!-- This is later populated with the actual editable text fields for "organization" -->
     <FrameLayout
         android:id="@+id/container"
         android:layout_width="match_parent"
diff --git a/res/layout/phonetic_name_editor_view.xml b/res/layout/phonetic_name_editor_view.xml
index 832ca2c..6084d3f 100644
--- a/res/layout/phonetic_name_editor_view.xml
+++ b/res/layout/phonetic_name_editor_view.xml
@@ -18,7 +18,6 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:paddingBottom="@dimen/editor_field_bottom_padding"
     android:orientation="vertical">
 
     <include
@@ -29,7 +28,6 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_weight="1"
         android:orientation="horizontal"
         android:gravity="center_vertical"
         android:focusable="true"
diff --git a/res/layout/raw_contact_editor_view.xml b/res/layout/raw_contact_editor_view.xml
index 79183cd..b4aa766 100644
--- a/res/layout/raw_contact_editor_view.xml
+++ b/res/layout/raw_contact_editor_view.xml
@@ -20,58 +20,8 @@
     android:layout_height="wrap_content"
     android:orientation="vertical">
 
-    <LinearLayout
-        android:id="@+id/anchor_for_account_switcher"
-        android:layout_height="wrap_content"
-        android:layout_width="match_parent"
-        android:padding="@dimen/account_header_padding"
-        android:orientation="horizontal">
-
-        <!--
-          TODO: Make this "?android:attr/spinnerStyle" but disable the style if this is not a new
-          contact. Since styles aren't easily toggled dynamically, it's easier to just create a
-          drawable with the spinner triangle as a background asset and just toggle the background.
-        -->
-        <LinearLayout
-            android:id="@+id/account"
-            android:layout_height="wrap_content"
-            android:layout_width="0dip"
-            android:layout_weight="1"
-            android:orientation="vertical"
-            android:background="?android:attr/selectableItemBackground">
-
-            <TextView
-                android:id="@+id/account_type"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:singleLine="true" />
-
-            <TextView
-                 android:id="@+id/account_name"
-                 android:layout_width="wrap_content"
-                 android:layout_height="wrap_content"
-                 android:textAppearance="?android:attr/textAppearanceSmall"
-                 android:textColor="?android:attr/textColorTertiary"
-                 android:singleLine="true" />
-
-        </LinearLayout>
-
-        <FrameLayout
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent">
-
-            <ImageView
-                 android:id="@+id/account_icon"
-                 android:layout_width="32dip"
-                 android:layout_height="32dip"
-                 android:layout_marginLeft="24dip"
-                 android:layout_marginRight="24dip"
-                 android:layout_gravity="center_vertical" />
-
-        </FrameLayout>
-
-    </LinearLayout>
+    <include
+        layout="@layout/editor_account_header" />
 
     <LinearLayout
         android:id="@+id/body"
@@ -82,18 +32,30 @@
         <LinearLayout
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
-            android:layout_marginRight="4dip"
-            android:orientation="horizontal">
+            android:orientation="horizontal"
+            android:paddingTop="8dip">
 
-            <include
-                android:id="@+id/edit_name"
-                layout="@layout/structured_name_editor_view" />
+            <LinearLayout
+                android:layout_height="wrap_content"
+                android:layout_width="0dip"
+                android:layout_weight="1"
+                android:orientation="vertical">
+
+                <include
+                    android:id="@+id/edit_name"
+                    layout="@layout/structured_name_editor_view" />
+
+                <include
+                    android:id="@+id/edit_phonetic_name"
+                    layout="@layout/phonetic_name_editor_view" />
+
+            </LinearLayout>
 
             <FrameLayout
                 android:id="@+id/stub_photo"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginRight="16dip">
+                android:layout_marginRight="8dip">
 
                 <include
                     android:id="@+id/edit_photo"
@@ -103,10 +65,6 @@
 
         </LinearLayout>
 
-        <include
-            android:id="@+id/edit_phonetic_name"
-            layout="@layout/phonetic_name_editor_view" />
-
         <ViewStub android:id="@+id/aggregation_suggestion_stub"
             android:inflatedId="@+id/aggregation_suggestion"
             android:layout="@layout/aggregation_suggestions"
@@ -126,8 +84,8 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center"
-            android:layout_marginTop="10dip"
-            android:layout_marginBottom="10dip"/>
+            android:layout_marginTop="16dip"
+            android:layout_marginBottom="32dip"/>
 
     </LinearLayout>
 </com.android.contacts.editor.RawContactEditorView>
diff --git a/res/layout/search_header.xml b/res/layout/search_header.xml
index ab8ec53..b1ba00f 100644
--- a/res/layout/search_header.xml
+++ b/res/layout/search_header.xml
@@ -17,18 +17,17 @@
 <RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="28dip"
-    android:background="@drawable/infobar_dark">
+    android:layout_height="wrap_content"
+    android:minHeight="@dimen/contact_filter_header_min_height"
+    android:background="@android:color/transparent">
     <TextView
         android:id="@+id/totalContactsText"
-        android:layout_height="wrap_content"
         android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
         android:layout_centerVertical="true"
         android:layout_alignParentLeft="true"
-        android:layout_marginLeft="8dip"
-        android:textColor="#ffbfbfbf"
-        android:textSize="14sp"
-        android:textStyle="normal" />
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:textColor="?android:attr/textColorSecondary" />
 
     <ProgressBar
         android:id="@+id/progress"
@@ -37,7 +36,6 @@
         android:layout_toRightOf="@id/totalContactsText"
         style="?android:attr/progressBarStyleSmall"
         android:layout_alignParentRight="true"
-        android:layout_centerVertical="true"
-        android:layout_marginRight="10dip" />
+        android:layout_centerVertical="true" />
 
 </RelativeLayout>
diff --git a/res/layout/structured_name_editor_view.xml b/res/layout/structured_name_editor_view.xml
index 3a66d5e..979a0f3 100644
--- a/res/layout/structured_name_editor_view.xml
+++ b/res/layout/structured_name_editor_view.xml
@@ -16,9 +16,8 @@
 
 <com.android.contacts.editor.StructuredNameEditorView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="0dip"
+    android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_weight="1"
     android:orientation="vertical">
 
     <include
@@ -29,7 +28,6 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_weight="1"
         android:orientation="horizontal"
         android:focusable="true"
         android:clickable="true">
diff --git a/res/layout/text_fields_editor_view.xml b/res/layout/text_fields_editor_view.xml
index c8d35a4..89970c6 100644
--- a/res/layout/text_fields_editor_view.xml
+++ b/res/layout/text_fields_editor_view.xml
@@ -34,13 +34,13 @@
             layout="@layout/edit_field_list" />
 
         <include
-            android:id="@+id/spinner"
-            layout="@layout/edit_spinner"
+            android:id="@+id/expansion_view_container"
+            layout="@layout/edit_expansion_view"
             android:visibility="gone" />
 
         <include
-            android:id="@+id/expansion_view_container"
-            layout="@layout/edit_expansion_view"
+            android:id="@+id/spinner"
+            layout="@layout/edit_spinner"
             android:visibility="gone" />
 
         <include
diff --git a/res/menu-sw580dp-w720dp/actions.xml b/res/menu-sw580dp-w720dp/actions.xml
index 534332c..4f0da2c 100644
--- a/res/menu-sw580dp-w720dp/actions.xml
+++ b/res/menu-sw580dp-w720dp/actions.xml
@@ -22,13 +22,13 @@
 
     <item
         android:id="@+id/menu_add_contact"
-        android:icon="@drawable/ic_menu_add_contact_holo_light"
+        android:icon="@drawable/ic_menu_add_contact_holo_dark"
         android:title="@string/menu_new_contact_action_bar"
         android:showAsAction="withText|always" />
 
     <item
         android:id="@+id/menu_custom_add_group"
-        android:icon="@drawable/ic_menu_display_all_holo_light"
+        android:icon="@drawable/ic_menu_add_group_holo_dark"
         android:title="@string/menu_new_group_action_bar"
         android:showAsAction="withText|always" />
 
diff --git a/res/menu-sw580dp-w720dp/view_contact.xml b/res/menu-sw580dp-w720dp/view_contact.xml
index 0fc918b..24b8ac1 100644
--- a/res/menu-sw580dp-w720dp/view_contact.xml
+++ b/res/menu-sw580dp-w720dp/view_contact.xml
@@ -17,7 +17,7 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
         android:id="@+id/menu_edit"
-        android:icon="@drawable/ic_menu_compose_holo_light"
+        android:icon="@drawable/ic_menu_compose_holo_dark"
         android:title="@string/menu_editContact"
         android:alphabeticShortcut="e"
         android:showAsAction="always" />
diff --git a/res/menu-sw580dp-w720dp/view_group.xml b/res/menu-sw580dp-w720dp/view_group.xml
index 8f7b7d6..1348d84 100644
--- a/res/menu-sw580dp-w720dp/view_group.xml
+++ b/res/menu-sw580dp-w720dp/view_group.xml
@@ -17,7 +17,7 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
         android:id="@+id/menu_edit_group"
-        android:icon="@drawable/ic_menu_compose_holo_light"
+        android:icon="@drawable/ic_menu_compose_holo_dark"
         android:title="@string/menu_editGroup"
         android:alphabeticShortcut="e"
         android:showAsAction="always" />
diff --git a/res/menu-sw580dp/actions.xml b/res/menu-sw580dp/actions.xml
index 593d693..b6cdfbf 100644
--- a/res/menu-sw580dp/actions.xml
+++ b/res/menu-sw580dp/actions.xml
@@ -22,13 +22,13 @@
 
     <item
         android:id="@+id/menu_add_contact"
-        android:icon="@drawable/ic_menu_add_contact_holo_light"
+        android:icon="@drawable/ic_menu_add_contact_holo_dark"
         android:title="@string/menu_new_contact_action_bar"
         android:showAsAction="withText" />
 
     <item
         android:id="@+id/menu_add_group"
-        android:icon="@drawable/ic_menu_display_all_holo_light"
+        android:icon="@drawable/ic_menu_add_group_holo_dark"
         android:title="@string/menu_new_group_action_bar"
         android:showAsAction="withText" />
 
diff --git a/res/menu-sw580dp/view_contact.xml b/res/menu-sw580dp/view_contact.xml
index e4b4b37..807bfc9 100644
--- a/res/menu-sw580dp/view_contact.xml
+++ b/res/menu-sw580dp/view_contact.xml
@@ -17,7 +17,7 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
         android:id="@+id/menu_edit"
-        android:icon="@drawable/ic_menu_compose_holo_light"
+        android:icon="@drawable/ic_menu_compose_holo_dark"
         android:title="@string/menu_editContact"
         android:alphabeticShortcut="e" />
 
diff --git a/res/menu-sw580dp/view_group.xml b/res/menu-sw580dp/view_group.xml
index 5e5cf9f..cd52030 100644
--- a/res/menu-sw580dp/view_group.xml
+++ b/res/menu-sw580dp/view_group.xml
@@ -17,7 +17,7 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
         android:id="@+id/menu_edit_group"
-        android:icon="@drawable/ic_menu_compose_holo_light"
+        android:icon="@drawable/ic_menu_compose_holo_dark"
         android:title="@string/menu_editGroup"
         android:alphabeticShortcut="e" />
 
diff --git a/res/menu/actions.xml b/res/menu/actions.xml
index 346875b..2af9e92 100644
--- a/res/menu/actions.xml
+++ b/res/menu/actions.xml
@@ -22,13 +22,13 @@
 
     <item
         android:id="@+id/menu_add_contact"
-        android:icon="@drawable/ic_menu_add_contact_holo_light"
+        android:icon="@drawable/ic_menu_add_contact_holo_dark"
         android:title="@string/menu_new_contact_action_bar"
         android:showAsAction="ifRoom" />
 
     <item
         android:id="@+id/menu_add_group"
-        android:icon="@drawable/ic_menu_display_all_holo_light"
+        android:icon="@drawable/ic_menu_add_group_holo_dark"
         android:title="@string/menu_new_group_action_bar"
         android:showAsAction="ifRoom" />
 
diff --git a/res/menu/dialtacts_options.xml b/res/menu/dialtacts_options.xml
index aa3af3f..99f87ff 100644
--- a/res/menu/dialtacts_options.xml
+++ b/res/menu/dialtacts_options.xml
@@ -18,4 +18,9 @@
         android:id="@+id/search_on_action_bar"
         android:icon="@android:drawable/ic_menu_search"
         android:showAsAction="always" />
+
+    <item
+        android:id="@+id/filter_option"
+        android:title="@string/menu_contacts_filter"
+        android:showAsAction="withText" />
 </menu>
diff --git a/res/menu/view_contact.xml b/res/menu/view_contact.xml
index 17ed7c6..2ae4806 100644
--- a/res/menu/view_contact.xml
+++ b/res/menu/view_contact.xml
@@ -17,7 +17,7 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
         android:id="@+id/menu_edit"
-        android:icon="@drawable/ic_menu_compose_holo_light"
+        android:icon="@drawable/ic_menu_compose_holo_dark"
         android:title="@string/menu_editContact"
         android:alphabeticShortcut="e" />
 
diff --git a/res/menu/view_group.xml b/res/menu/view_group.xml
index 5e5cf9f..cd52030 100644
--- a/res/menu/view_group.xml
+++ b/res/menu/view_group.xml
@@ -17,7 +17,7 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
         android:id="@+id/menu_edit_group"
-        android:icon="@drawable/ic_menu_compose_holo_light"
+        android:icon="@drawable/ic_menu_compose_holo_dark"
         android:title="@string/menu_editGroup"
         android:alphabeticShortcut="e" />
 
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 02246ea..577e933 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android-kernprogramme"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Foon"</string>
     <!-- no translation found for people (1048457247435785074) -->
     <skip />
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index a439aa3..f9e98ec 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android ኮር ትግበራ"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"ስልክ"</string>
     <!-- no translation found for people (1048457247435785074) -->
     <skip />
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 7e8bd7c..3c690ec 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"تطبيقات Android المركزية"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"الهاتف"</string>
     <string name="people" msgid="1048457247435785074">"أشخاص"</string>
     <string name="contactsList" msgid="8661624236494819731">"جهات الاتصال"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 445d4bf..98ca370 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Основни приложения на Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Телефон"</string>
     <string name="people" msgid="1048457247435785074">"Хора"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакти"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 87179d8..6bd1768 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Aplicacions bàsiques d\'Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telèfon"</string>
     <string name="people" msgid="1048457247435785074">"Persones"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactes"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 097b093..a949e4c 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Lidé"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakty"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index d7c9249..c7bba00 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android-kerneprogrammer"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Personer"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 4a580a9..5bc6fdc 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Kontakte"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakte"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 6a1d856..7c7f619 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Βασικές εφαρμογές Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Τηλέφωνο"</string>
     <string name="people" msgid="1048457247435785074">"Άτομα"</string>
     <string name="contactsList" msgid="8661624236494819731">"Επαφές"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 6e0d9b6..c0452c4 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Phone"</string>
     <string name="people" msgid="1048457247435785074">"People"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacts"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 121d64e..61c39cd 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Aplicaciones del núcleo de Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Teléfono"</string>
     <string name="people" msgid="1048457247435785074">"Personas"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 9ff7139..cc10d1e 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Aplicaciones básicas"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Teléfono"</string>
     <string name="people" msgid="1048457247435785074">"Contactos"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index d498cb6..da4b404 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"برنامه های Android Core"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"تلفن"</string>
     <string name="people" msgid="1048457247435785074">"افراد"</string>
     <string name="contactsList" msgid="8661624236494819731">"مخاطبین"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index bfd0fc2..899e394 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Androidin ydinsovellukset"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Puhelin"</string>
     <string name="people" msgid="1048457247435785074">"Henkilöt"</string>
     <string name="contactsList" msgid="8661624236494819731">"Yhteystiedot"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index e77604d..ae55c7a 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Applications de base Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Téléphone"</string>
     <string name="people" msgid="1048457247435785074">"Contacts"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacts"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 0880d6a..8c170d9 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Matične aplikacije za Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Osobe"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakti"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 822e926..600e893 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Alap Android-alkalmazások"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Személyek"</string>
     <string name="contactsList" msgid="8661624236494819731">"Címtár"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 46f2939..9d9683c 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Aplikasi Inti Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telepon"</string>
     <string name="people" msgid="1048457247435785074">"Orang"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kenalan"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 5ed9401..bcb810a 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefono"</string>
     <string name="people" msgid="1048457247435785074">"Persone"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contatti"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index e4d9610..3889f14 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"טלפון"</string>
     <string name="people" msgid="1048457247435785074">"אנשים"</string>
     <string name="contactsList" msgid="8661624236494819731">"אנשי קשר"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index c809e43..0c372cd 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"電話"</string>
     <string name="people" msgid="1048457247435785074">"ユーザー"</string>
     <string name="contactsList" msgid="8661624236494819731">"連絡先"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index dfabf75..ebdea4a 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core 애플리케이션"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"휴대전화"</string>
     <string name="people" msgid="1048457247435785074">"인물"</string>
     <string name="contactsList" msgid="8661624236494819731">"주소록"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 626e9de..0bad711 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Pagrindinės „Android“ programos"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefonas"</string>
     <string name="people" msgid="1048457247435785074">"Žmonės"</string>
     <string name="contactsList" msgid="8661624236494819731">"Adresinė"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 8132389..d6bdd52 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Tālrunis"</string>
     <string name="people" msgid="1048457247435785074">"People"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontaktpersonas"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index ecac3ec..1508a1a 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Apl Teras Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Orang"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kenalan"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 6c23418..9fc6205 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Kjerneprogrammer for Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Personer"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index be644e3..8222c2d 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android-kerntoepassingen"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefoon"</string>
     <string name="people" msgid="1048457247435785074">"Personen"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacten"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 665ab3e..ffaa9a6 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Aplikacje główne systemu Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Osoby"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakty"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 342b8e2..6a71e93 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Principais aplicativos do Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefone"</string>
     <string name="people" msgid="1048457247435785074">"Pessoas"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contatos"</string>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index 52f907a..477c4de 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Applicaziuns da basa dad Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <!-- no translation found for people (1048457247435785074) -->
     <skip />
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 8c00e5d..a7da905 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Persoane"</string>
     <string name="contactsList" msgid="8661624236494819731">"Agendă"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 90184f7..e590dc3 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Основные приложения Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Телефон"</string>
     <string name="people" msgid="1048457247435785074">"Люди"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакты"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 29cfafa..4deca50 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefón"</string>
     <string name="people" msgid="1048457247435785074">"Ľudia"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakty"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 174601f..2de3255 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Osnovni programi Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Ljudje"</string>
     <string name="contactsList" msgid="8661624236494819731">"Stiki"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 0d9f415..74efc4a 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core апликације"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Телефон"</string>
     <string name="people" msgid="1048457247435785074">"Особе"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакти"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 1bbc85e..e04ac17 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Personer"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index ddb776c..5506f31 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Programu Msingi za Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Simu"</string>
     <!-- no translation found for people (1048457247435785074) -->
     <skip />
diff --git a/res/values-sw580dp-w1000dp/dimens.xml b/res/values-sw580dp-w1000dp/dimens.xml
index d8503d9..d5f5e58 100644
--- a/res/values-sw580dp-w1000dp/dimens.xml
+++ b/res/values-sw580dp-w1000dp/dimens.xml
@@ -21,6 +21,4 @@
     <dimen name="detail_header_view_margin">16dip</dimen>
     <dimen name="detail_header_attribution_height">56dip</dimen>
     <dimen name="detail_update_section_top_padding">48dip</dimen>
-    <dimen name="contact_browser_list_left_margin">0dip</dimen>
-    <dimen name="contacts_count_right_margin">24dip</dimen>
 </resources>
diff --git a/res/values-sw580dp-w720dp/dimens.xml b/res/values-sw580dp-w720dp/dimens.xml
index c072a95..399c26c 100644
--- a/res/values-sw580dp-w720dp/dimens.xml
+++ b/res/values-sw580dp-w720dp/dimens.xml
@@ -21,6 +21,4 @@
     <dimen name="editor_title_label_width">150dip</dimen>
     <dimen name="editor_interpolator_narrow_width">800dip</dimen>
     <dimen name="editor_name_text_field_right_margin">10dip</dimen>
-    <dimen name="contact_browser_list_left_margin">0dip</dimen>
-    <dimen name="contacts_count_right_margin">24dip</dimen>
-</resources>
\ No newline at end of file
+</resources>
diff --git a/res/values-sw580dp/dimens.xml b/res/values-sw580dp/dimens.xml
index ab630d2..ed845be 100644
--- a/res/values-sw580dp/dimens.xml
+++ b/res/values-sw580dp/dimens.xml
@@ -32,11 +32,17 @@
     <dimen name="action_bar_search_spacing">12dip</dimen>
     <dimen name="shortcut_icon_size">64dip</dimen>
     <dimen name="list_section_height">37dip</dimen>
-    <dimen name="directory_header_height">56dip</dimen>
     <dimen name="detail_update_section_item_vertical_padding">32dip</dimen>
     <dimen name="search_view_width">400dip</dimen>
-    <dimen name="contact_browser_list_left_margin">0dip</dimen>
-    <dimen name="contacts_count_right_margin">24dip</dimen>
     <!-- Center vertically -->
     <dimen name="quick_contact_top_position">-1px</dimen>
+    <!-- Contact list (vertical scroll bar comes left) -->
+    <dimen name="directory_header_height">24dip</dimen>
+    <dimen name="contacts_count_right_margin">24dip</dimen>
+    <dimen name="contact_browser_list_top_margin">16dip</dimen>
+    <dimen name="contact_browser_list_header_left_margin">@dimen/list_visible_scrollbar_padding</dimen>
+    <dimen name="contact_browser_list_header_right_margin">24dip</dimen>
+    <dimen name="contact_browser_list_left_margin">0dip</dimen>
+    <dimen name="contact_browser_list_right_margin">0dip</dimen>
+    <dimen name="list_visible_scrollbar_padding">48dip</dimen>
 </resources>
diff --git a/res/values-sw580dp/styles.xml b/res/values-sw580dp/styles.xml
index 0c4c8ba..b9b87cf 100644
--- a/res/values-sw580dp/styles.xml
+++ b/res/values-sw580dp/styles.xml
@@ -84,6 +84,8 @@
     </style>
 
     <style name="DirectoryHeader" parent="PeopleTheme">
+        <item name="android:paddingTop">0dip</item>
+        <item name="android:paddingBottom">0dip</item>
         <item name="android:background">@drawable/directory_bg_holo</item>
     </style>
 
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 14035ff..690e42e 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"แอปพลิเคชันหลักของ Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"โทรศัพท์"</string>
     <string name="people" msgid="1048457247435785074">"บุคคล"</string>
     <string name="contactsList" msgid="8661624236494819731">"รายชื่อในสมุดโทรศัพท์"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 2f65b74..46b1d1d 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telepono"</string>
     <string name="people" msgid="1048457247435785074">"Mga Tao"</string>
     <string name="contactsList" msgid="8661624236494819731">"Mga Contact"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 29b3107..7e3e623 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="people" msgid="1048457247435785074">"Kişiler"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kişiler"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 1a90340..01b4919 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Служби Android Core"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Телеф."</string>
     <string name="people" msgid="1048457247435785074">"Люди"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакти"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 63e83fc..92a8a97 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Ứng dụng Lõi Android"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Điện thoại"</string>
     <string name="people" msgid="1048457247435785074">"Mọi người"</string>
     <string name="contactsList" msgid="8661624236494819731">"Danh bạ"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index ef0b222..c496165 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android 核心应用程序"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"拨号"</string>
     <string name="people" msgid="1048457247435785074">"用户"</string>
     <string name="contactsList" msgid="8661624236494819731">"通讯录"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 92aeef5..e13e5b6 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Android 核心應用程式"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"電話"</string>
     <string name="people" msgid="1048457247435785074">"使用者"</string>
     <string name="contactsList" msgid="8661624236494819731">"聯絡人"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 9bb4ff8..b369466 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -16,7 +16,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="sharedUserLabel" msgid="7965035505237135241">"Izinhlelo Zokusebenza ze-Android Core"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Ifoni"</string>
     <!-- no translation found for people (1048457247435785074) -->
     <skip />
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 552d47b..a9d745f 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -90,6 +90,7 @@
 
     <!-- Secondary text color in the People app -->
     <color name="secondary_text_color">#777777</color>
+    <color name="dialtacts_secondary_text_color">#888888</color>
 
     <!-- Colors in the contact browser list -->
     <color name="contact_browser_list_bk_color">#EEEEEE</color>
@@ -97,4 +98,7 @@
 
     <!-- Color of the text of the tab carousel in the contact details  -->
     <color name="detail_tab_carousel_tab_label_color">#EEEEEE</color>
+
+    <!-- Color of the text for buttons in the action bar  -->
+    <color name="action_bar_button_text_color">#FFFFFF</color>
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index a4a6112..1b737bc 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -25,7 +25,6 @@
 
     <dimen name="aggregation_suggestion_icon_size">40dip</dimen>
 
-    <dimen name="account_header_padding">10dip</dimen>
     <dimen name="account_selector_popup_width">400dip</dimen>
 
     <dimen name="photo_action_popup_width">400dip</dimen>
@@ -37,17 +36,17 @@
     <!-- Padding of the rounded plus/minus/expand/collapse buttons in the editor  -->
     <dimen name="editor_round_button_padding_left">2dip</dimen>
     <dimen name="editor_round_button_padding_right">2dip</dimen>
-    <dimen name="editor_round_button_padding_top">8dip</dimen>
-    <dimen name="editor_round_button_padding_bottom">8dip</dimen>
+    <dimen name="editor_round_button_padding_top">4dip</dimen>
+    <dimen name="editor_round_button_padding_bottom">4dip</dimen>
 
     <!-- Width of the Type-Label in the Editor -->
     <dimen name="editor_type_label_width">100dip</dimen>
 
     <!-- Left padding of a field in the Editor -->
-    <dimen name="editor_field_left_padding">5dip</dimen>
+    <dimen name="editor_field_left_padding">4dip</dimen>
 
     <!-- Right padding of a field in the Editor -->
-    <dimen name="editor_field_right_padding">5dip</dimen>
+    <dimen name="editor_field_right_padding">4dip</dimen>
 
     <!-- Top padding of a field in the Editor -->
     <dimen name="editor_field_top_padding">10dip</dimen>
@@ -144,7 +143,7 @@
     <dimen name="detail_vertical_divider_vertical_margin">16dip</dimen>
 
     <!-- Padding to be used between a visible scrollbar and the contact list -->
-    <dimen name="list_visible_scrollbar_padding">40dip</dimen>
+    <dimen name="list_visible_scrollbar_padding">32dip</dimen>
 
     <!-- Font size used for the contact name in the widget -->
     <dimen name="widget_text_size_name">14sp</dimen>
@@ -188,9 +187,6 @@
     <!-- Height of the member list in the group editor -->
     <dimen name="group_editor_member_list_height">550dip</dimen>
 
-    <!-- Height for directory headers in contact lists -->
-    <dimen name="directory_header_height">28dip</dimen>
-
     <!-- Height of edit text in dialpad fragment -->
     <dimen name="dialpad_digits_height">67dip</dimen>
     <dimen name="dialpad_digits_text_size">33sp</dimen>
@@ -205,8 +201,12 @@
     <dimen name="search_view_width">0dip</dimen>
 
     <!-- contact browser list margins -->
-    <dimen name="contact_browser_list_left_margin">24dip</dimen>
-    <dimen name="contact_browser_list_top_margin">8dip</dimen>
+    <dimen name="contact_browser_list_header_left_margin">16dip</dimen>
+    <dimen name="contact_browser_list_header_right_margin">@dimen/list_visible_scrollbar_padding</dimen>
+    <dimen name="contact_browser_list_left_margin">16dip</dimen>
+    <dimen name="contact_browser_list_right_margin">0dip</dimen>
+
+    <dimen name="contact_browser_list_top_margin">0dip</dimen>
     <dimen name="contacts_count_right_margin">40dip</dimen>
 
     <!--  ContactTile Layouts -->
@@ -230,4 +230,14 @@
     <dimen name="no_accounts_message_margin">15dip</dimen>
     <dimen name="add_account_button_left_margin">50dip</dimen>
     <dimen name="add_account_button_right_margin">50dip</dimen>
+
+    <!-- For contact filter setting screens -->
+    <dimen name="contact_filter_left_margin">16dip</dimen>
+    <dimen name="contact_filter_right_margin">16dip</dimen>
+    <dimen name="contact_filter_item_min_height">48dip</dimen>
+    <dimen name="contact_filter_icon_size">32dip</dimen>
+    <dimen name="contact_filter_header_min_height">24dip</dimen>
+
+    <!-- Height for directory headers in contact lists -->
+    <dimen name="directory_header_height">24dip</dimen>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5bb6c2b..0c9893b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -14,10 +14,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Label for this app's shared user ID (and thus for all other
-         apps sharing the uid). -->
-    <string name="sharedUserLabel">Android Core Apps</string>
-
     <!-- Title for the activity that dials the phone.  This is the name
          used in the Launcher icon. -->
     <string name="launcherDialer">Phone</string>
@@ -1292,8 +1288,8 @@
     <!-- Checkbox asking the user if they want to display a particular photo for a contact -->
     <string name="use_photo_as_primary">Use this photo</string>
 
-    <!-- Text used to explain that a contact cannot be edited since the data is read only [CHAR LIMIT=40] -->
-    <string name="contact_read_only">Not editable on this device</string>
+    <!-- Text used to explain that a contact cannot be edited from the People application since the data is read only [CHAR LIMIT=40] -->
+    <string name="contact_read_only">Not editable from this application</string>
 
     <!-- Text describing that a contact has no information available other than name and photo -->
     <string name="no_contact_details">No additional information for this contact</string>
@@ -1386,6 +1382,9 @@
     <!-- The button to add another entry of a specific data type (i.e. email, phone, address) to a contact in the Raw Contact Editor [CHAR LIMIT=22] -->
     <string name="add_new_entry_for_section">Add new</string>
 
+    <!-- The button to add an organization field to a contact in the Raw Contact Editor [CHAR LIMIT=22] -->
+    <string name="add_organization">Add organization</string>
+
     <!-- Attbution of a contact status update, when the time of update is unknown -->
     <string name="contact_status_update_attribution">via <xliff:g id="source" example="Google Talk">%1$s</xliff:g></string>
 
diff --git a/res/values/styles.xml b/res/values/styles.xml
index c125698..b25f0af 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -16,6 +16,7 @@
 <resources>
     <style name="DialtactsTheme"
            parent="android:Theme.Holo">
+        <item name="android:textColorSecondary">@color/dialtacts_secondary_text_color</item>
         <item name="android:windowActionBarOverlay">true</item>
         <item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
         <item name="android:windowContentOverlay">@null</item>
@@ -27,7 +28,7 @@
         <item name="list_item_padding_top">0dip</item>
         <item name="list_item_padding_right">0dip</item>
         <item name="list_item_padding_bottom">0dip</item>
-        <item name="list_item_padding_left">24dip</item>
+        <item name="list_item_padding_left">0dip</item>
         <item name="list_item_gap_between_image_and_text">8dip</item>
         <item name="list_item_gap_between_label_and_data">5dip</item>
         <item name="list_item_call_button_padding">14dip</item>
@@ -79,9 +80,12 @@
         <item name="android:textColorPrimary">@color/primary_text_color</item>
         <item name="android:textColorSecondary">@color/secondary_text_color</item>
     </style>
-    <style name="ContactEditorActivityTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
+
+    <style name="EditorActivityTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
         <item name="android:actionBarStyle">@style/ContactsActionBarStyle</item>
         <item name="android:windowContentOverlay">@null</item>
+        <item name="android:textColorPrimary">@color/primary_text_color</item>
+        <item name="android:textColorSecondary">@color/secondary_text_color</item>
     </style>
 
     <style name="BackgroundOnly">
@@ -129,7 +133,7 @@
         <item name="list_item_padding_top">0dip</item>
         <item name="list_item_padding_right">0dip</item>
         <item name="list_item_padding_bottom">0dip</item>
-        <item name="list_item_padding_left">24dip</item>
+        <item name="list_item_padding_left">0dip</item>
         <item name="list_item_gap_between_image_and_text">8dip</item>
         <item name="list_item_gap_between_label_and_data">5dip</item>
         <item name="list_item_call_button_padding">14dip</item>
@@ -151,8 +155,8 @@
     </style>
 
     <style name="ContactsActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
-        <item name="android:background">@color/people_app_theme_color</item>
-        <item name="android:backgroundStacked">@color/people_app_theme_color</item>
+        <item name="android:background">@drawable/ab_solid_custom_blue_inverse_holo</item>
+        <item name="android:backgroundStacked">@drawable/ab_solid_custom_blue_inverse_holo</item>
     </style>
 
     <!-- TODO: Clean up this file so themes aren't copied. -->
@@ -223,7 +227,7 @@
     </style>
 
     <style name="DirectoryHeader" parent="PeopleTheme">
-        <item name="android:background">@drawable/directory_bg</item>
+        <item name="android:background">@android:color/transparent</item>
     </style>
 
     <style name="NonPhoneActivityTheme" parent="@android:Theme.Translucent">
diff --git a/src/com/android/contacts/ContactPhotoManager.java b/src/com/android/contacts/ContactPhotoManager.java
index d8f4e65..0f7065d 100644
--- a/src/com/android/contacts/ContactPhotoManager.java
+++ b/src/com/android/contacts/ContactPhotoManager.java
@@ -97,6 +97,12 @@
     public abstract void loadPhoto(ImageView view, Uri photoUri);
 
     /**
+     * Remove photo from the supplied image view. This also cancels current pending load request
+     * inside this photo manager.
+     */
+    public abstract void removePhoto(ImageView view);
+
+    /**
      * Temporarily stops loading photos from the database.
      */
     public abstract void pause();
@@ -261,6 +267,12 @@
     }
 
     @Override
+    public void removePhoto(ImageView view) {
+        view.setImageDrawable(null);
+        mPendingRequests.remove(view);
+    }
+
+    @Override
     public void refreshCache() {
         for (BitmapHolder holder : mBitmapHolderCache.snapshot().values()) {
             holder.fresh = false;
diff --git a/src/com/android/contacts/activities/ContactDetailActivity.java b/src/com/android/contacts/activities/ContactDetailActivity.java
index 53c7f5e..3cd07ca 100644
--- a/src/com/android/contacts/activities/ContactDetailActivity.java
+++ b/src/com/android/contacts/activities/ContactDetailActivity.java
@@ -28,6 +28,7 @@
 import com.android.contacts.detail.ContactDetailViewPagerAdapter;
 import com.android.contacts.detail.ContactLoaderFragment;
 import com.android.contacts.detail.ContactLoaderFragment.ContactLoaderFragmentListener;
+import com.android.contacts.detail.TabCarouselScrollManager;
 import com.android.contacts.interactions.ContactDeletionInteraction;
 import com.android.contacts.model.AccountWithDataSet;
 import com.android.contacts.util.PhoneCapabilityTester;
@@ -55,8 +56,6 @@
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.AbsListView.OnScrollListener;
 import android.widget.CheckBox;
 import android.widget.Toast;
 
@@ -153,8 +152,7 @@
         }
 
         mDetailFragment.setListener(mFragmentListener);
-        mDetailFragment.setVerticalScrollListener(mVerticalScrollListener);
-        mUpdatesFragment.setVerticalScrollListener(mVerticalScrollListener);
+        TabCarouselScrollManager.bind(mTabCarousel, mDetailFragment, mUpdatesFragment);
         mDetailFragment.setData(mLookupUri, mContactData);
         mUpdatesFragment.setData(mLookupUri, mContactData);
 
@@ -435,6 +433,7 @@
             mRootView.addView(mContentView);
             mDetailFragment = (ContactDetailFragment) getFragmentManager().findFragmentById(
                     R.id.contact_detail_fragment);
+            mDetailFragment.setListener(mFragmentListener);
         }
         // Reset contact data
         if (mDetailFragment != null) {
@@ -555,34 +554,6 @@
         }
     };
 
-    private OnScrollListener mVerticalScrollListener = new OnScrollListener() {
-
-        @Override
-        public void onScroll(
-                AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
-            if (mTabCarousel == null) {
-                return;
-            }
-            // If the FIRST item is not visible on the screen, then the carousel must be pinned
-            // at the top of the screen.
-            if (firstVisibleItem != 0) {
-                mTabCarousel.setY(-mTabCarousel.getAllowedVerticalScrollLength());
-                return;
-            }
-            View topView = view.getChildAt(firstVisibleItem);
-            if (topView == null) {
-                return;
-            }
-            int amtToScroll = Math.max((int) view.getChildAt(firstVisibleItem).getY(),
-                    - mTabCarousel.getAllowedVerticalScrollLength());
-            mTabCarousel.setY(amtToScroll);
-        }
-
-        @Override
-        public void onScrollStateChanged(AbsListView view, int scrollState) {}
-
-    };
-
     /**
      * This interface should be implemented by {@link Fragment}s within this
      * activity so that the activity can determine whether the currently
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index 9daa9af..a943130 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -20,10 +20,14 @@
 import com.android.contacts.calllog.CallLogFragment;
 import com.android.contacts.dialpad.DialpadFragment;
 import com.android.contacts.interactions.PhoneNumberInteraction;
+import com.android.contacts.list.AccountFilterActivity;
+import com.android.contacts.list.ContactListFilter;
+import com.android.contacts.list.ContactListFilterController;
+import com.android.contacts.list.ContactListFilterController.ContactListFilterListener;
 import com.android.contacts.list.ContactTileAdapter.DisplayType;
+import com.android.contacts.list.ContactTileListFragment;
 import com.android.contacts.list.OnPhoneNumberPickerActionListener;
 import com.android.contacts.list.PhoneNumberPickerFragment;
-import com.android.contacts.list.ContactTileListFragment;
 import com.android.internal.telephony.ITelephony;
 
 import android.app.ActionBar;
@@ -81,6 +85,8 @@
 
     private static final int TAB_INDEX_COUNT = 3;
 
+    private static final int SUBACTIVITY_ACCOUNT_FILTER = 0;
+
     /** Name of the dialtacts shared preferences */
     static final String PREFS_DIALTACTS = "dialtacts";
     static final boolean PREF_FAVORITES_AS_CONTACTS_DEFAULT = false;
@@ -225,6 +231,28 @@
      */
     private int mLastManuallySelectedFragment;
 
+    private ContactListFilterController mContactListFilterController;
+    private OnMenuItemClickListener mFilterOptionsMenuItemClickListener =
+            new OnMenuItemClickListener() {
+        @Override
+        public boolean onMenuItemClick(MenuItem item) {
+            final Intent intent =
+                    new Intent(DialtactsActivity.this, AccountFilterActivity.class);
+            ContactListFilter filter = mContactListFilterController.getFilter();
+            startActivityForResult(intent, SUBACTIVITY_ACCOUNT_FILTER);
+            return true;
+        }
+    };
+
+    private OnMenuItemClickListener mSearchMenuItemClickListener =
+            new OnMenuItemClickListener() {
+        @Override
+        public boolean onMenuItemClick(MenuItem item) {
+            enterSearchUi();
+            return true;
+        }
+    };
+
     /**
      * Listener used when one of phone numbers in search UI is selected. This will initiate a
      * phone call using the phone number.
@@ -299,6 +327,20 @@
 
         setContentView(R.layout.dialtacts_activity);
 
+        mContactListFilterController = new ContactListFilterController(this);
+        mContactListFilterController.addListener(new ContactListFilterListener() {
+            @Override
+            public void onContactListFilterChanged() {
+                if (mSearchFragment == null || !mSearchFragment.isAdded()) {
+                    Log.w(TAG, "Search Fragment isn't available when ContactListFilter is changed");
+                    return;
+                }
+                mSearchFragment .setFilter(mContactListFilterController.getFilter());
+
+                invalidateOptionsMenu();
+            }
+        });
+
         mViewPager = (ViewPager) findViewById(R.id.pager);
         mViewPager.setAdapter(new ViewPagerAdapter(getFragmentManager()));
         mViewPager.setOnPageChangeListener(mPageChangeListener);
@@ -583,17 +625,20 @@
     @Override
     public boolean onPrepareOptionsMenu(Menu menu) {
         final MenuItem searchMenuItem = menu.findItem(R.id.search_on_action_bar);
-        if (mInSearchUi || getActionBar().getSelectedTab().getPosition() == TAB_INDEX_DIALER) {
+        final MenuItem filterOptionMenuItem = menu.findItem(R.id.filter_option);
+        Tab tab = getActionBar().getSelectedTab();
+        if (mInSearchUi) {
             searchMenuItem.setVisible(false);
+            filterOptionMenuItem.setVisible(true);
+            filterOptionMenuItem.setOnMenuItemClickListener(
+                    mFilterOptionsMenuItemClickListener);
+        } else if (tab == null || tab.getPosition() == TAB_INDEX_DIALER) {
+            searchMenuItem.setVisible(false);
+            filterOptionMenuItem.setVisible(false);
         } else {
+            filterOptionMenuItem.setVisible(false);
             searchMenuItem.setVisible(true);
-            searchMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
-                @Override
-                public boolean onMenuItemClick(MenuItem item) {
-                    enterSearchUi();
-                    return true;
-                }
-            });
+            searchMenuItem.setOnMenuItemClickListener(mSearchMenuItemClickListener);
         }
 
         return true;
@@ -753,4 +798,26 @@
         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
         return intent;
     }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (resultCode != Activity.RESULT_OK) {
+            return;
+        }
+        switch (requestCode) {
+            case SUBACTIVITY_ACCOUNT_FILTER: {
+                ContactListFilter filter = (ContactListFilter) data.getParcelableExtra(
+                        AccountFilterActivity.KEY_EXTRA_CONTACT_LIST_FILTER);
+                if (filter == null) {
+                    return;
+                }
+                if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
+                    mContactListFilterController.selectCustomFilter();
+                } else {
+                    mContactListFilterController.setContactListFilter(filter, true);
+                }
+            }
+            break;
+        }
+    }
 }
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 282e0b3..4da032e 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -42,7 +42,6 @@
 import com.android.contacts.list.ContactsIntentResolver;
 import com.android.contacts.list.ContactsRequest;
 import com.android.contacts.list.ContactsUnavailableFragment;
-import com.android.contacts.list.CustomContactListFilterActivity;
 import com.android.contacts.list.DefaultContactBrowseListFragment;
 import com.android.contacts.list.DirectoryListLoader;
 import com.android.contacts.list.OnContactBrowserActionListener;
@@ -109,7 +108,6 @@
     private static final int SUBACTIVITY_NEW_GROUP = 2;
     private static final int SUBACTIVITY_EDIT_GROUP = 3;
     private static final int SUBACTIVITY_ACCOUNT_FILTER = 4;
-    private static final int SUBACTIVITY_CUSTOMIZE_FILTER = 5;
 
     private static final String KEY_SEARCH_MODE = "searchMode";
 
@@ -1443,23 +1441,14 @@
                     if (filter == null) {
                         return;
                     }
-                    // If this is a custom filter, launch the activity to customize the display list
                     if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
-                        final Intent intent = new Intent(this,
-                                CustomContactListFilterActivity.class);
-                        startActivityForResult(intent, SUBACTIVITY_CUSTOMIZE_FILTER);
+                        mContactListFilterController.selectCustomFilter();
                     } else {
                         mContactListFilterController.setContactListFilter(filter, true);
                     }
                 }
                 break;
             }
-            case SUBACTIVITY_CUSTOMIZE_FILTER: {
-                if (resultCode == Activity.RESULT_OK) {
-                    mContactListFilterController.selectCustomFilter();
-                }
-                break;
-            }
 
             case SUBACTIVITY_NEW_GROUP:
             case SUBACTIVITY_EDIT_GROUP: {
diff --git a/src/com/android/contacts/detail/ContactDetailLayoutController.java b/src/com/android/contacts/detail/ContactDetailLayoutController.java
index 7abe76e..f3cc016 100644
--- a/src/com/android/contacts/detail/ContactDetailLayoutController.java
+++ b/src/com/android/contacts/detail/ContactDetailLayoutController.java
@@ -29,8 +29,6 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.AbsListView.OnScrollListener;
 
 /**
  * Determines the layout of the contact card.
@@ -115,8 +113,6 @@
         }
 
         mDetailFragment.setListener(mContactDetailFragmentListener);
-        mDetailFragment.setVerticalScrollListener(mVerticalScrollListener);
-        mUpdatesFragment.setVerticalScrollListener(mVerticalScrollListener);
 
         switch (mLayoutMode) {
             case VIEW_PAGER_AND_CAROUSEL: {
@@ -151,6 +147,7 @@
                 }
                 transaction.commit();
                 mFragmentManager.executePendingTransactions();
+                TabCarouselScrollManager.bind(mTabCarousel, mDetailFragment, mUpdatesFragment);
                 break;
             }
             case TWO_COLUMN: {
@@ -306,32 +303,4 @@
             mViewPager.setCurrentItem(position);
         }
     };
-
-    private OnScrollListener mVerticalScrollListener = new OnScrollListener() {
-
-        @Override
-        public void onScroll(
-                AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
-            if (mTabCarousel == null) {
-                return;
-            }
-            // If the FIRST item is not visible on the screen, then the carousel must be pinned
-            // at the top of the screen.
-            if (firstVisibleItem != 0) {
-                mTabCarousel.setY(-mTabCarousel.getAllowedVerticalScrollLength());
-                return;
-            }
-            View topView = view.getChildAt(firstVisibleItem);
-            if (topView == null) {
-                return;
-            }
-            int amtToScroll = Math.max((int) view.getChildAt(firstVisibleItem).getY(),
-                    -mTabCarousel.getAllowedVerticalScrollLength());
-            mTabCarousel.setY(amtToScroll);
-        }
-
-        @Override
-        public void onScrollStateChanged(AbsListView view, int scrollState) {}
-
-    };
 }
diff --git a/src/com/android/contacts/detail/TabCarouselScrollManager.java b/src/com/android/contacts/detail/TabCarouselScrollManager.java
new file mode 100644
index 0000000..2415b50
--- /dev/null
+++ b/src/com/android/contacts/detail/TabCarouselScrollManager.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2011 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.contacts.detail;
+
+import android.view.View;
+import android.widget.AbsListView;
+import android.widget.AbsListView.OnScrollListener;
+
+/**
+ * Takes care of managing scrolling for the side-by-side views using the tab carousel.
+ */
+public class TabCarouselScrollManager {
+    private final ContactDetailTabCarousel mTabCarousel;
+    private final ContactDetailFragment mAboutFragment;
+    private final ContactDetailUpdatesFragment mUpdatesFragment;
+    private final OnScrollListener mVerticalScrollListener = new OnScrollListener() {
+        @Override
+        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
+                int totalItemCount) {
+            if (mTabCarousel == null) {
+                return;
+            }
+            // If the FIRST item is not visible on the screen, then the carousel must be pinned
+            // at the top of the screen.
+            if (firstVisibleItem != 0) {
+                mTabCarousel.setY(-mTabCarousel.getAllowedVerticalScrollLength());
+                return;
+            }
+            View topView = view.getChildAt(firstVisibleItem);
+            if (topView == null) {
+                return;
+            }
+            int amtToScroll = Math.max((int) view.getChildAt(firstVisibleItem).getY(),
+                    -mTabCarousel.getAllowedVerticalScrollLength());
+            mTabCarousel.setY(amtToScroll);
+        }
+
+        @Override
+        public void onScrollStateChanged(AbsListView view, int scrollState) {}
+    };
+
+    private TabCarouselScrollManager(ContactDetailTabCarousel tabCarousel,
+            ContactDetailFragment aboutFragment, ContactDetailUpdatesFragment updatesFragment) {
+        mTabCarousel = tabCarousel;
+        mAboutFragment = aboutFragment;
+        mUpdatesFragment = updatesFragment;
+    }
+
+    public void bind() {
+        mAboutFragment.setVerticalScrollListener(mVerticalScrollListener);
+        mUpdatesFragment.setVerticalScrollListener(mVerticalScrollListener);
+    }
+
+    public static void bind(ContactDetailTabCarousel tabCarousel,
+            ContactDetailFragment aboutFragment, ContactDetailUpdatesFragment updatesFragment) {
+        TabCarouselScrollManager scrollManager =
+                new TabCarouselScrollManager(tabCarousel, aboutFragment, updatesFragment);
+        scrollManager.bind();
+    }
+}
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index e0f99ce..0227b13 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -600,14 +600,8 @@
                         R.layout.external_raw_contact_editor_view, mContent, false);
                 ((ExternalRawContactEditorView) editor).setListener(this);
             } else {
-                final RawContactEditorView rawContactEditor = (RawContactEditorView)
-                        inflater.inflate(R.layout.raw_contact_editor_view, mContent, false);
-                // For existing contacts, only show the account header if there is more than 1 raw
-                // contact in the aggregate contact.
-                if (Intent.ACTION_EDIT.equals(mAction)) {
-                    rawContactEditor.setAccountHeaderVisible(numRawContacts > 1);
-                }
-                editor = rawContactEditor;
+                editor = (RawContactEditorView) inflater.inflate(R.layout.raw_contact_editor_view,
+                        mContent, false);
             }
             if (Intent.ACTION_INSERT.equals(mAction) && numRawContacts == 1) {
                 final List<AccountWithDataSet> accounts =
@@ -695,7 +689,7 @@
                 values.getAsString(RawContacts.ACCOUNT_TYPE),
                 values.getAsString(RawContacts.DATA_SET));
         final View accountView = editor.findViewById(R.id.account);
-        final View anchorView = editor.findViewById(R.id.anchor_for_account_switcher);
+        final View anchorView = editor.findViewById(R.id.account_container);
         accountView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
diff --git a/src/com/android/contacts/editor/EventFieldEditorView.java b/src/com/android/contacts/editor/EventFieldEditorView.java
index 4c5affd..e7da6c1 100644
--- a/src/com/android/contacts/editor/EventFieldEditorView.java
+++ b/src/com/android/contacts/editor/EventFieldEditorView.java
@@ -29,6 +29,8 @@
 
 import android.app.Dialog;
 import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.AttributeSet;
@@ -49,6 +51,13 @@
      */
     private final static int DEFAULT_HOUR = 8;
 
+    /**
+     * Default string to show when there is no date selected yet.
+     */
+    private String mNoDateString;
+    private int mPrimaryTextColor;
+    private int mSecondaryTextColor;
+
     private Button mDateView;
 
     public EventFieldEditorView(Context context) {
@@ -68,6 +77,11 @@
     protected void onFinishInflate() {
         super.onFinishInflate();
 
+        Resources resources = mContext.getResources();
+        mPrimaryTextColor = resources.getColor(R.color.primary_text_color);
+        mSecondaryTextColor = resources.getColor(R.color.secondary_text_color);
+        mNoDateString = mContext.getString(R.string.add_new_entry_for_section);
+
         mDateView = (Button) findViewById(R.id.date_view);
         mDateView.setOnClickListener(new OnClickListener() {
             @Override
@@ -105,12 +119,14 @@
         final String column = editField.column;
         String data = DateUtils.formatDate(getContext(), getEntry().getAsString(column));
         if (TextUtils.isEmpty(data)) {
-            data = " ";
+            mDateView.setText(mNoDateString);
+            mDateView.setTextColor(mSecondaryTextColor);
             setDeleteButtonVisible(false);
         } else {
+            mDateView.setText(data);
+            mDateView.setTextColor(mPrimaryTextColor);
             setDeleteButtonVisible(true);
         }
-        mDateView.setText(data);
     }
 
     @Override
@@ -246,7 +262,8 @@
     @Override
     public void clearAllFields() {
         // Update UI
-        mDateView.setText("");
+        mDateView.setText(mNoDateString);
+        mDateView.setTextColor(mSecondaryTextColor);
 
         // Update state
         final String column = getKind().fieldList.get(0).column;
diff --git a/src/com/android/contacts/editor/ExternalRawContactEditorView.java b/src/com/android/contacts/editor/ExternalRawContactEditorView.java
index 734f013..04f4140 100644
--- a/src/com/android/contacts/editor/ExternalRawContactEditorView.java
+++ b/src/com/android/contacts/editor/ExternalRawContactEditorView.java
@@ -43,6 +43,7 @@
 import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import java.util.ArrayList;
 
@@ -55,10 +56,10 @@
 
     private View mPhotoStub;
     private TextView mName;
-    private TextView mReadOnlyWarning;
     private Button mEditExternallyButton;
     private ViewGroup mGeneral;
 
+    private View mAccountContainer;
     private ImageView mAccountIcon;
     private TextView mAccountTypeTextView;
     private TextView mAccountNameTextView;
@@ -97,11 +98,11 @@
         mPhotoStub = findViewById(R.id.stub_photo);
 
         mName = (TextView) findViewById(R.id.read_only_name);
-        mReadOnlyWarning = (TextView) findViewById(R.id.read_only_warning);
         mEditExternallyButton = (Button) findViewById(R.id.button_edit_externally);
         mEditExternallyButton.setOnClickListener(this);
         mGeneral = (ViewGroup)findViewById(R.id.sect_general);
 
+        mAccountContainer = findViewById(R.id.account_container);
         mAccountIcon = (ImageView) findViewById(R.id.account_icon);
         mAccountTypeTextView = (TextView) findViewById(R.id.account_type);
         mAccountNameTextView = (TextView) findViewById(R.id.account_name);
@@ -168,11 +169,17 @@
         mName.setText(primary.getAsString(StructuredName.DISPLAY_NAME));
 
         if (type.readOnly) {
-            mReadOnlyWarning.setText(mContext.getString(R.string.contact_read_only));
-            mReadOnlyWarning.setVisibility(View.VISIBLE);
+            mAccountContainer.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    Toast.makeText(mContext, mContext.getString(R.string.contact_read_only),
+                            Toast.LENGTH_SHORT).show();
+                }
+            });
             mEditExternallyButton.setVisibility(View.GONE);
         } else {
-            mReadOnlyWarning.setVisibility(View.GONE);
+            mAccountContainer.setBackgroundDrawable(null);
+            mAccountContainer.setEnabled(false);
             mEditExternallyButton.setVisibility(View.VISIBLE);
         }
 
@@ -183,7 +190,7 @@
                 View field = mInflater.inflate(
                         R.layout.item_read_only_field, mGeneral, false);
                 TextView v;
-                v = (TextView) field.findViewById(R.id.label);
+                v = (TextView) field.findViewById(R.id.kind_title);
                 v.setText(mContext.getText(R.string.phoneLabelsGroup));
                 v = (TextView) field.findViewById(R.id.data);
                 v.setText(PhoneNumberUtils.formatNumber(phone.getAsString(Phone.NUMBER),
@@ -200,7 +207,7 @@
                 View field = mInflater.inflate(
                         R.layout.item_read_only_field, mGeneral, false);
                 TextView v;
-                v = (TextView) field.findViewById(R.id.label);
+                v = (TextView) field.findViewById(R.id.kind_title);
                 v.setText(mContext.getText(R.string.emailLabelsGroup));
                 v = (TextView) field.findViewById(R.id.data);
                 v.setText(email.getAsString(Email.DATA));
diff --git a/src/com/android/contacts/editor/GroupMembershipView.java b/src/com/android/contacts/editor/GroupMembershipView.java
index 9693915..042b80a 100644
--- a/src/com/android/contacts/editor/GroupMembershipView.java
+++ b/src/com/android/contacts/editor/GroupMembershipView.java
@@ -27,6 +27,8 @@
 
 import android.app.Activity;
 import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.Resources;
 import android.database.Cursor;
 import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
 import android.provider.ContactsContract.RawContacts;
@@ -95,6 +97,10 @@
     private boolean mDefaultGroupVisibilityKnown;
     private boolean mDefaultGroupVisible;
 
+    private String mNoGroupString;
+    private int mPrimaryTextColor;
+    private int mSecondaryTextColor;
+
     public GroupMembershipView(Context context) {
         super(context);
     }
@@ -104,6 +110,15 @@
     }
 
     @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        Resources resources = mContext.getResources();
+        mPrimaryTextColor = resources.getColor(R.color.primary_text_color);
+        mSecondaryTextColor = resources.getColor(R.color.secondary_text_color);
+        mNoGroupString = mContext.getString(R.string.add_new_entry_for_section);
+    }
+
+    @Override
     public void setEnabled(boolean enabled) {
         super.setEnabled(enabled);
         if (mGroupList != null) {
@@ -187,9 +202,11 @@
 
         mGroupList.setEnabled(isEnabled());
         if (sb.length() == 0) {
-            mGroupList.setText(" ");
+            mGroupList.setText(mNoGroupString);
+            mGroupList.setTextColor(mSecondaryTextColor);
         } else {
             mGroupList.setText(sb);
+            mGroupList.setTextColor(mPrimaryTextColor);
         }
         setVisibility(VISIBLE);
 
diff --git a/src/com/android/contacts/editor/KindSectionView.java b/src/com/android/contacts/editor/KindSectionView.java
index 3b46307..686939c 100644
--- a/src/com/android/contacts/editor/KindSectionView.java
+++ b/src/com/android/contacts/editor/KindSectionView.java
@@ -140,7 +140,7 @@
         mTitleString = (kind.titleRes == -1 || kind.titleRes == 0)
                 ? ""
                 : getResources().getString(kind.titleRes);
-        mTitle.setText(mTitleString.toUpperCase());
+        mTitle.setText(mTitleString);
 
         rebuildFromState();
         updateAddFooterVisible();
diff --git a/src/com/android/contacts/editor/LabeledEditorView.java b/src/com/android/contacts/editor/LabeledEditorView.java
index 5bba2c4..bb25ea0 100644
--- a/src/com/android/contacts/editor/LabeledEditorView.java
+++ b/src/com/android/contacts/editor/LabeledEditorView.java
@@ -465,10 +465,12 @@
     private class EditTypeAdapter extends ArrayAdapter<EditType> {
         private final LayoutInflater mInflater;
         private boolean mHasCustomSelection;
+        private int mTextColor;
 
         public EditTypeAdapter(Context context) {
             super(context, 0);
             mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+            mTextColor = context.getResources().getColor(R.color.secondary_text_color);
 
             if (mType != null && mType.customColumn != null) {
 
@@ -501,17 +503,18 @@
 
         private View createViewFromResource(int position, View convertView, ViewGroup parent,
                 int resource) {
-            View view;
             TextView textView;
 
             if (convertView == null) {
-                view = mInflater.inflate(resource, parent, false);
+                textView = (TextView) mInflater.inflate(resource, parent, false);
+                textView.setAllCaps(true);
+                textView.setGravity(Gravity.RIGHT);
+                textView.setTextAppearance(mContext, android.R.style.TextAppearance_Small);
+                textView.setTextColor(mTextColor);
             } else {
-                view = convertView;
+                textView = (TextView) convertView;
             }
 
-            textView = (TextView) view;
-
             EditType type = getItem(position);
             String text;
             if (type == CUSTOM_SELECTION) {
@@ -519,10 +522,8 @@
             } else {
                 text = getContext().getString(type.labelRes);
             }
-            textView.setText(text.toUpperCase());
-            textView.setGravity(Gravity.RIGHT);
-            textView.setTextColor(Color.GRAY);
-            return view;
+            textView.setText(text);
+            return textView;
         }
     }
 }
diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java
index 41f2ebd..6335cb6 100644
--- a/src/com/android/contacts/editor/RawContactEditorView.java
+++ b/src/com/android/contacts/editor/RawContactEditorView.java
@@ -70,7 +70,6 @@
 
     private ViewGroup mFields;
 
-    private View mAccountContainer;
     private ImageView mAccountIcon;
     private TextView mAccountTypeTextView;
     private TextView mAccountNameTextView;
@@ -139,7 +138,6 @@
 
         mFields = (ViewGroup)findViewById(R.id.sect_fields);
 
-        mAccountContainer = findViewById(R.id.anchor_for_account_switcher);
         mAccountIcon = (ImageView) findViewById(R.id.account_icon);
         mAccountTypeTextView = (TextView) findViewById(R.id.account_type);
         mAccountNameTextView = (TextView) findViewById(R.id.account_name);
@@ -153,10 +151,6 @@
         });
     }
 
-    public void setAccountHeaderVisible(boolean visible) {
-        mAccountContainer.setVisibility(visible ? View.VISIBLE : View.GONE);
-    }
-
     /**
      * Set the internal state for this view, given a current
      * {@link EntityDelta} state and the {@link AccountType} that
diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java
index 0d8aba6..d3fa3b7 100644
--- a/src/com/android/contacts/editor/TextFieldsEditorView.java
+++ b/src/com/android/contacts/editor/TextFieldsEditorView.java
@@ -60,6 +60,7 @@
     private ImageView mExpansionView;
     private boolean mHideOptional = true;
     private boolean mHasShortAndLongForms;
+    private int mHintTextColor;
 
     public TextFieldsEditorView(Context context) {
         super(context);
@@ -81,6 +82,7 @@
         setDrawingCacheEnabled(true);
         setAlwaysDrawnWithCacheEnabled(true);
 
+        mHintTextColor = getContext().getResources().getColor(R.color.secondary_text_color);
         mFields = (ViewGroup) findViewById(R.id.editors);
         mExpansionView = (ImageView) findViewById(R.id.expansion_view);
         mExpansionViewContainer = findViewById(R.id.expansion_view_container);
@@ -173,6 +175,7 @@
             fieldView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
                     LayoutParams.WRAP_CONTENT));
             fieldView.setTextAppearance(getContext(), kind.textAppearanceResourceId);
+            fieldView.setHintTextColor(mHintTextColor);
             fieldView.setGravity(Gravity.TOP);
             mFieldEditTexts[index] = fieldView;
             fieldView.setId(vig.getId(state, kind, entry, index));
diff --git a/src/com/android/contacts/group/GroupBrowseListAdapter.java b/src/com/android/contacts/group/GroupBrowseListAdapter.java
index 1f06029..6571b99 100644
--- a/src/com/android/contacts/group/GroupBrowseListAdapter.java
+++ b/src/com/android/contacts/group/GroupBrowseListAdapter.java
@@ -153,8 +153,11 @@
             if (currentGroupId == mGroupId) {
                 final ImageView[] children = getIconViewsSordedByFillOrder(icons);
                 for (int i = 0; i < children.length; i++) {
-                    final long photoId = i < photoIds.size() ? photoIds.get(i) : 0;
-                    mContactPhotoManager.loadPhoto(children[i], photoId);
+                    if (i < photoIds.size()) {
+                        mContactPhotoManager.loadPhoto(children[i], photoIds.get(i));
+                    } else {
+                        mContactPhotoManager.removePhoto(children[i]);
+                    }
                 }
             }
         }
@@ -318,13 +321,16 @@
         if (photoIds != null) {
             // Cache is available. Let the photo manager load those IDs.
             for (int i = 0; i < children.length; i++) {
-                final long photoId = i < photoIds.size() ? photoIds.get(i) : 0;
-                mContactPhotoManager.loadPhoto(children[i], photoId);
+                if (i < photoIds.size()) {
+                    mContactPhotoManager.loadPhoto(children[i], photoIds.get(i));
+                } else {
+                    mContactPhotoManager.removePhoto(children[i]);
+                }
             }
         } else {
             // Cache is not available. Load photo IDs asynchronously.
             for (ImageView child : children) {
-                mContactPhotoManager.loadPhoto(child, 0);
+                mContactPhotoManager.removePhoto(child);
             }
             new AsyncPhotoIdLoadTask().execute(
                     new AsyncPhotoIdLoadArg(icons, entry.getGroupId(),
diff --git a/src/com/android/contacts/list/AccountFilterActivity.java b/src/com/android/contacts/list/AccountFilterActivity.java
index f99b14e..9d872da 100644
--- a/src/com/android/contacts/list/AccountFilterActivity.java
+++ b/src/com/android/contacts/list/AccountFilterActivity.java
@@ -19,7 +19,6 @@
 import com.android.contacts.ContactsActivity;
 import com.android.contacts.ContactsSearchManager;
 import com.android.contacts.R;
-import com.android.contacts.activities.PeopleActivity;
 import com.android.contacts.model.AccountType;
 import com.android.contacts.model.AccountTypeManager;
 import com.android.contacts.model.AccountWithDataSet;
@@ -35,7 +34,6 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
 import android.widget.BaseAdapter;
 import android.widget.ListView;
 
@@ -51,6 +49,8 @@
 
     private static final String TAG = AccountFilterActivity.class.getSimpleName();
 
+    private static final int SUBACTIVITY_CUSTOMIZE_FILTER = 0;
+
     public static final String KEY_EXTRA_CONTACT_LIST_FILTER = "contactListFilter";
 
     private ListView mListView;
@@ -63,14 +63,9 @@
         setContentView(R.layout.contact_list_filter);
 
         mListView = (ListView) findViewById(com.android.internal.R.id.list);
-        mListView.setOnItemClickListener(new OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                finishAndSetResult(mFilters.get(position));
-            }
-        });
+        mListView.setOnItemClickListener(this);
 
-        ActionBar actionBar =  getActionBar();
+        ActionBar actionBar = getActionBar();
         if (actionBar != null) {
             actionBar.setDisplayHomeAsUpEnabled(true);
         }
@@ -104,15 +99,38 @@
         mListView.setAdapter(new FilterListAdapter(this));
     }
 
+    @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-        finishAndSetResult(mFilters.get(position));
+        ContactListFilter filter = mFilters.get(position);
+        if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
+            final Intent intent = new Intent(this,
+                    CustomContactListFilterActivity.class);
+            startActivityForResult(intent, SUBACTIVITY_CUSTOMIZE_FILTER);
+        } else {
+            final Intent intent = new Intent();
+            intent.putExtra(KEY_EXTRA_CONTACT_LIST_FILTER, filter);
+            setResult(Activity.RESULT_OK, intent);
+            finish();
+        }
     }
 
-    private void finishAndSetResult(ContactListFilter filter) {
-        final Intent intent = new Intent();
-        intent.putExtra(KEY_EXTRA_CONTACT_LIST_FILTER, filter);
-        setResult(Activity.RESULT_OK, intent);
-        finish();
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (resultCode != Activity.RESULT_OK) {
+            return;
+        }
+
+        switch (requestCode) {
+            case SUBACTIVITY_CUSTOMIZE_FILTER: {
+                final Intent intent = new Intent();
+                ContactListFilter filter = ContactListFilter.createFilterWithType(
+                        ContactListFilter.FILTER_TYPE_CUSTOM);
+                intent.putExtra(KEY_EXTRA_CONTACT_LIST_FILTER, filter);
+                setResult(Activity.RESULT_OK, intent);
+                finish();
+                break;
+            }
+        }
     }
 
     @Override
@@ -154,7 +172,7 @@
                 view = (ContactListFilterView) convertView;
             } else {
                 view = (ContactListFilterView) mLayoutInflater.inflate(
-                        R.layout.filter_spinner_item, parent, false);
+                        R.layout.contact_list_filter_item, parent, false);
             }
             view.setSingleAccount(mFilters.size() == 1);
             ContactListFilter filter = mFilters.get(position);
@@ -168,10 +186,10 @@
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case android.R.id.home:
-                Intent intent = new Intent(this, PeopleActivity.class);
-                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-                startActivity(intent);
-                finish();
+                // We have two logical "up" Activities: People and Phone.
+                // Instead of having one static "up" direction, behave like back as an
+                // exceptional case.
+                onBackPressed();
                 return true;
             default:
                 break;
diff --git a/src/com/android/contacts/list/ContactEntryListAdapter.java b/src/com/android/contacts/list/ContactEntryListAdapter.java
index cd3a7ed..f95dea3 100644
--- a/src/com/android/contacts/list/ContactEntryListAdapter.java
+++ b/src/com/android/contacts/list/ContactEntryListAdapter.java
@@ -77,6 +77,8 @@
 
     private boolean mSelectionVisible;
 
+    private ContactListFilter mFilter;
+
     public ContactEntryListAdapter(Context context) {
         super(context);
         addPartitions();
@@ -558,6 +560,17 @@
         return true;
     }
 
+    /**
+     * Returns the currently selected filter.
+     */
+    public ContactListFilter getFilter() {
+        return mFilter;
+    }
+
+    public void setFilter(ContactListFilter filter) {
+        mFilter = filter;
+    }
+
     @Override
     public Placement getItemPlacementInSection(int position) {
         // Special case code to prevent a section header from being displayed above the user's
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index e32e131..73d0859 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -544,13 +544,13 @@
             mListView.setFastScrollEnabled(hasScrollbar);
             mListView.setFastScrollAlwaysVisible(hasScrollbar);
             mListView.setVerticalScrollbarPosition(mVerticalScrollbarPosition);
+            mListView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
             int leftPadding = 0;
             int rightPadding = 0;
             if (mVerticalScrollbarPosition == View.SCROLLBAR_POSITION_LEFT) {
                 leftPadding = mContext.getResources().getDimensionPixelOffset(
                         R.dimen.list_visible_scrollbar_padding);
-                mListView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
-            } else if (hasScrollbar){
+            } else {
                 rightPadding = mContext.getResources().getDimensionPixelOffset(
                         R.dimen.list_visible_scrollbar_padding);
             }
diff --git a/src/com/android/contacts/list/ContactListAdapter.java b/src/com/android/contacts/list/ContactListAdapter.java
index 467dcc3..48fd342 100644
--- a/src/com/android/contacts/list/ContactListAdapter.java
+++ b/src/com/android/contacts/list/ContactListAdapter.java
@@ -113,12 +113,9 @@
     private String mSelectedContactLookupKey;
     private long mSelectedContactId;
 
-    private ContactListFilter mFilter;
-
     // View types for entries in the list view.
     private final int mViewTypeProfileEntry;
 
-
     public ContactListAdapter(Context context) {
         super(context);
 
@@ -130,17 +127,6 @@
         return mUnknownNameText;
     }
 
-    /**
-     * Returns the currently selected filter.
-     */
-    public ContactListFilter getFilter() {
-        return mFilter;
-    }
-
-    public void setFilter(ContactListFilter filter) {
-        mFilter = filter;
-    }
-
     public long getSelectedContactDirectoryId() {
         return mSelectedContactDirectoryId;
     }
diff --git a/src/com/android/contacts/list/CustomContactListFilterActivity.java b/src/com/android/contacts/list/CustomContactListFilterActivity.java
index e0965cc..26610dc 100644
--- a/src/com/android/contacts/list/CustomContactListFilterActivity.java
+++ b/src/com/android/contacts/list/CustomContactListFilterActivity.java
@@ -29,6 +29,7 @@
 import com.android.contacts.util.WeakAsyncTask;
 import com.google.android.collect.Lists;
 
+import android.app.ActionBar;
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.LoaderManager.LoaderCallbacks;
@@ -107,6 +108,12 @@
         mList.setOnCreateContextMenuListener(this);
 
         mList.setAdapter(mAdapter);
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            // android.R.id.home will be triggered in onOptionsItemSelected()
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
     }
 
     public static class CustomFilterConfigurationLoader extends AsyncTaskLoader<AccountSet> {
@@ -801,12 +808,6 @@
         }
     }
 
-    /** {@inheritDoc} */
-    @Override
-    public void onBackPressed() {
-        doSaveAction();
-    }
-
     @SuppressWarnings("unchecked")
     private void doSaveAction() {
         if (mAdapter == null || mAdapter.mAccounts == null) {
@@ -897,4 +898,18 @@
             ContactsSearchManager.startSearch(this, initialQuery);
         }
     }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case android.R.id.home:
+                // Pretend cancel.
+                setResult(Activity.RESULT_CANCELED);
+                finish();
+                return true;
+            default:
+                break;
+        }
+        return super.onOptionsItemSelected(item);
+    }
 }
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index ded35a4..b6a5be0 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -35,6 +35,7 @@
     private TextView mCounterHeaderView;
     private View mSearchHeaderView;
     private TextView mAccountFilterHeaderView;
+    private View mAccountFilterHeaderContainer;
 
     public DefaultContactBrowseListFragment() {
         setPhotoLoaderEnabled(true);
@@ -65,6 +66,8 @@
         super.onCreateView(inflater, container);
 
         mAccountFilterHeaderView = (TextView) getView().findViewById(R.id.account_filter_header);
+        mAccountFilterHeaderContainer =
+                getView().findViewById(R.id.account_filter_header_container);
         mCounterHeaderView = (TextView) getView().findViewById(R.id.contacts_count);
 
         // Putting the header view inside a container will allow us to make
@@ -107,11 +110,11 @@
         }
         if (filter != null && filter.filterType != ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS &&
                 !isSearchMode() && filter.filterType != ContactListFilter.FILTER_TYPE_CUSTOM) {
+            mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
             mAccountFilterHeaderView.setText(getContext().getString(
                     R.string.listAllContactsInAccount, filter.accountName));
-            mAccountFilterHeaderView.setVisibility(View.VISIBLE);
         } else {
-            mAccountFilterHeaderView.setVisibility(View.GONE);
+            mAccountFilterHeaderContainer.setVisibility(View.GONE);
         }
     }
 
diff --git a/src/com/android/contacts/list/PhoneNumberListAdapter.java b/src/com/android/contacts/list/PhoneNumberListAdapter.java
index 21a7846..87fb60f 100644
--- a/src/com/android/contacts/list/PhoneNumberListAdapter.java
+++ b/src/com/android/contacts/list/PhoneNumberListAdapter.java
@@ -22,15 +22,21 @@
 import android.net.Uri;
 import android.net.Uri.Builder;
 import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.ContactCounts;
+import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.Directory;
+import android.provider.ContactsContract.RawContacts;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * A cursor adapter for the {@link Phone#CONTENT_TYPE} content type.
  */
@@ -79,6 +85,20 @@
     public void configureLoader(CursorLoader loader, long directoryId) {
         Uri uri;
 
+        if (directoryId != Directory.DEFAULT) {
+            Log.w(TAG, "PhoneNumberListAdapter is not ready for non-default directory ID ("
+                    + "directoryId: " + directoryId + ")");
+        }
+
+        final ContactListFilter filter = getFilter();
+        if (filter != null &&
+                (filter.filterType != ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS &&
+                filter.filterType != ContactListFilter.FILTER_TYPE_ACCOUNT &&
+                filter.filterType != ContactListFilter.FILTER_TYPE_CUSTOM)) {
+            throw new IllegalArgumentException("Unexpected filter type came " +
+                    "(type: " + filter.filterType + ", toString: " + filter + ")");
+        }
+
         if (isSearchMode()) {
             String query = getQueryString();
             Builder builder = Phone.CONTENT_FILTER_URI.buildUpon();
@@ -102,6 +122,7 @@
             }
 
             loader.setProjection(PHONES_PROJECTION);
+            configureSelection(loader, directoryId, filter);
         }
 
         loader.setUri(uri);
@@ -114,6 +135,59 @@
         }
     }
 
+    private void configureSelection(
+            CursorLoader loader, long directoryId, ContactListFilter filter) {
+        if (filter == null || directoryId != Directory.DEFAULT) {
+            return;
+        }
+
+        final StringBuilder selection = new StringBuilder();
+        final List<String> selectionArgs = new ArrayList<String>();
+
+        switch (filter.filterType) {
+            case ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS: {
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_CUSTOM: {
+                selection.append(Contacts.IN_VISIBLE_GROUP + "=1");
+                selection.append(" AND " + Contacts.HAS_PHONE_NUMBER + "=1");
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_ACCOUNT: {
+                selection.append("(");
+
+                selection.append(RawContacts.ACCOUNT_TYPE + "=?"
+                        + " AND " + RawContacts.ACCOUNT_NAME + "=?");
+                selectionArgs.add(filter.accountType);
+                selectionArgs.add(filter.accountName);
+                if (filter.dataSet != null) {
+                    selection.append(" AND " + RawContacts.DATA_SET + "=?");
+                    selectionArgs.add(filter.dataSet);
+                } else {
+                    selection.append(" AND " + RawContacts.DATA_SET + " IS NULL");
+                }
+                selection.append(")");
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_GROUP: {
+                selection.append(Data.MIMETYPE + "=?"
+                        + " AND " + GroupMembership.GROUP_ROW_ID + "=?");
+                selectionArgs.add(GroupMembership.CONTENT_ITEM_TYPE);
+                selectionArgs.add(String.valueOf(filter.groupId));
+                break;
+            }
+
+            case ContactListFilter.FILTER_TYPE_SINGLE_CONTACT:
+            case ContactListFilter.FILTER_TYPE_STARRED:
+            case ContactListFilter.FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY:
+            default:
+                throw new IllegalArgumentException("Unexpected filter type came " +
+                        "(type: " + filter.filterType + ", toString: " + filter + ")");
+        }
+        loader.setSelection(selection.toString());
+        loader.setSelectionArgs(selectionArgs.toArray(new String[0]));
+    }
+
     protected static Uri buildSectionIndexerUri(Uri uri) {
         return uri.buildUpon()
                 .appendQueryParameter(ContactCounts.ADDRESS_BOOK_INDEX_EXTRAS, "true").build();
diff --git a/src/com/android/contacts/list/PhoneNumberPickerFragment.java b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
index 1866ea0..306efbd 100644
--- a/src/com/android/contacts/list/PhoneNumberPickerFragment.java
+++ b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
@@ -19,14 +19,19 @@
 import com.android.contacts.R;
 import com.android.contacts.list.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
 
+import android.app.Activity;
 import android.content.Intent;
+import android.content.SharedPreferences;
 import android.net.Uri;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.Adapter;
+import android.widget.TextView;
 
 /**
  * Fragment containing a phone number list for picking.
@@ -38,6 +43,14 @@
     private OnPhoneNumberPickerActionListener mListener;
     private String mShortcutAction;
 
+    private SharedPreferences mPrefs;
+    private ContactListFilter mFilter;
+
+    private TextView mAccountFilterHeaderView;
+    private View mAccountFilterHeaderContainer;
+
+    private static final String KEY_FILTER = "filter";
+
     /**
      * Used to remember the result of {@link #setNameHighlightingEnabled(boolean)} when it is called
      * before this Fragment is attached to its parent Activity. The value will be used after
@@ -64,6 +77,66 @@
     }
 
     @Override
+    protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
+        super.onCreateView(inflater, container);
+
+        mAccountFilterHeaderView = (TextView) getView().findViewById(R.id.account_filter_header);
+        mAccountFilterHeaderContainer =
+                getView().findViewById(R.id.account_filter_header_container);
+        updateFilterHeaderView();
+    }
+
+    @Override
+    public void setSearchMode(boolean flag) {
+        super.setSearchMode(flag);
+        updateFilterHeaderView();
+    }
+
+    private void updateFilterHeaderView() {
+        if (mAccountFilterHeaderView != null) {
+            ContactListFilter filter = getFilter();
+            if (filter != null
+                    && !isSearchMode()
+                    && filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
+                mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
+                mAccountFilterHeaderView.setText(getContext().getString(
+                        R.string.listAllContactsInAccount, filter.accountName));
+            } else {
+                mAccountFilterHeaderContainer.setVisibility(View.GONE);
+            }
+        }
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        mPrefs = PreferenceManager.getDefaultSharedPreferences(activity);
+    }
+
+    @Override
+    public void onDetach() {
+        super.onDetach();
+        mPrefs = null;
+    }
+
+    @Override
+    public void restoreSavedState(Bundle savedState) {
+        super.restoreSavedState(savedState);
+
+        if (savedState == null) {
+            return;
+        }
+
+        mFilter = savedState.getParcelable(KEY_FILTER);
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putParcelable(KEY_FILTER, mFilter);
+    }
+
+    @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         final int itemId = item.getItemId();
         if (itemId == android.R.id.home) {  // See ActionBar#setDisplayHomeAsUpEnabled()
@@ -122,6 +195,20 @@
     }
 
     @Override
+    protected void configureAdapter() {
+        super.configureAdapter();
+
+        ContactEntryListAdapter adapter = getAdapter();
+        if (adapter == null) {
+            return;
+        }
+
+        if (!isSearchMode() && mFilter != null) {
+            adapter.setFilter(mFilter);
+        }
+    }
+
+    @Override
     protected View inflateView(LayoutInflater inflater, ViewGroup container) {
         return inflater.inflate(R.layout.contacts_list_content, null);
     }
@@ -171,4 +258,24 @@
             mDelayedNameHighlightingEnabled = null;
         }
     }
+
+    public ContactListFilter getFilter() {
+        return mFilter;
+    }
+
+    public void setFilter(ContactListFilter filter) {
+        if ((mFilter == null && filter == null) ||
+                (mFilter != null && mFilter.equals(filter))) {
+            return;
+        }
+
+        mFilter = filter;
+        if (mPrefs != null) {
+            // Save the preference now.
+            ContactListFilter.storeToPreferences(mPrefs, mFilter);
+        }
+
+        reloadData();
+        updateFilterHeaderView();
+    }
 }
diff --git a/src/com/android/contacts/model/BaseAccountType.java b/src/com/android/contacts/model/BaseAccountType.java
index aca2d3c..0846197 100644
--- a/src/com/android/contacts/model/BaseAccountType.java
+++ b/src/com/android/contacts/model/BaseAccountType.java
@@ -205,7 +205,7 @@
         DataKind kind = addKind(new DataKind(Phone.CONTENT_ITEM_TYPE, R.string.phoneLabelsGroup,
                 android.R.drawable.sym_action_call, 10, true,
                 R.layout.text_fields_editor_view, android.R.style.TextAppearance_Medium));
-        kind.iconAltRes = R.drawable.sym_action_sms;
+        kind.iconAltRes = R.drawable.ic_text_holo_light;
         kind.iconAltResDark = R.drawable.ic_text_holo_dark;
         kind.actionHeader = new PhoneActionInflater();
         kind.actionAltHeader = new PhoneActionAltInflater();
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index d8f9c2c..af18917 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -21,7 +21,6 @@
 import com.android.contacts.R;
 import com.android.contacts.model.AccountTypeManager;
 import com.android.contacts.model.DataKind;
-import com.android.contacts.util.Constants;
 import com.android.contacts.util.ContactBadgeUtil;
 import com.android.contacts.util.DataStatus;
 import com.android.contacts.util.NotifyingAsyncQueryHandler;
@@ -83,10 +82,6 @@
 import java.util.Set;
 
 // TODO: Save selected tab index during rotation
-// TODO: Handle GTalk Audio/Videochat secondary actions
-// TODO: Don't do a query in QuickContactBadge
-// TODO: Fix bug when QuickContact is dismissed using HOME or task switching
-//        (it will relaunch with the previous contact)
 
 // Missing assets and specs:
 //   Pushed states for list items
diff --git a/tests/src/com/android/contacts/tests/mocks/MockContactPhotoManager.java b/tests/src/com/android/contacts/tests/mocks/MockContactPhotoManager.java
index 6da205b..416b841 100644
--- a/tests/src/com/android/contacts/tests/mocks/MockContactPhotoManager.java
+++ b/tests/src/com/android/contacts/tests/mocks/MockContactPhotoManager.java
@@ -37,6 +37,11 @@
     }
 
     @Override
+    public void removePhoto(ImageView view) {
+        view.setImageDrawable(null);
+    }
+
+    @Override
     public void pause() {
     }