Merge "Remove CallLogActivity."
diff --git a/res/layout-sw580dp-w1000dp/detail_header_contact_with_updates.xml b/res/layout-sw580dp-w1000dp/detail_header_contact_with_updates.xml
index 6ce811f..b9a9dbd 100644
--- a/res/layout-sw580dp-w1000dp/detail_header_contact_with_updates.xml
+++ b/res/layout-sw580dp-w1000dp/detail_header_contact_with_updates.xml
@@ -33,11 +33,12 @@
         android:layout_height="@dimen/detail_contact_photo_size" />
 
     <LinearLayout
-        android:layout_width="match_parent"
+        android:layout_width="0dip"
         android:layout_height="match_parent"
+        android:layout_weight="1"
         android:orientation="vertical"
         android:paddingLeft="16dip"
-        android:paddingRight="16dip">
+        android:paddingRight="4dip">
 
         <TextView
             android:id="@+id/name"
@@ -55,14 +56,9 @@
             android:textAppearance="?android:attr/textAppearanceMedium"
             android:textColor="?android:attr/textColorSecondary" />
 
-        <CheckBox
-            android:id="@+id/star"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:gravity="center_vertical"
-            android:contentDescription="@string/description_star"
-            style="?android:attr/starStyle" />
-
     </LinearLayout>
 
+    <include
+        layout="@layout/favorites_star" />
+
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout-sw580dp-w1000dp/detail_header_contact_without_updates.xml b/res/layout-sw580dp-w1000dp/detail_header_contact_without_updates.xml
index be82d88..6ef4651 100644
--- a/res/layout-sw580dp-w1000dp/detail_header_contact_without_updates.xml
+++ b/res/layout-sw580dp-w1000dp/detail_header_contact_without_updates.xml
@@ -25,12 +25,24 @@
     android:layout_height="wrap_content"
     android:orientation="vertical">
 
-    <TextView
-        android:id="@+id/name"
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:textSize="@dimen/detail_header_name_text_size" />
+        android:paddingRight="16dip">
+
+        <TextView
+            android:id="@+id/name"
+            android:layout_width="0dip"
+            android:layout_weight="1"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:textSize="@dimen/detail_header_name_text_size"
+            android:paddingRight="16dip" />
+
+        <include
+            layout="@layout/favorites_star" />
+
+    </LinearLayout>
 
     <TextView
         android:id="@+id/company"
@@ -39,12 +51,4 @@
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:textColor="?android:attr/textColorSecondary" />
 
-    <CheckBox
-        android:id="@+id/star"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="top"
-        android:contentDescription="@string/description_star"
-        style="?android:attr/starStyle" />
-
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout-sw580dp-w1000dp/group_detail_fragment.xml b/res/layout-sw580dp-w1000dp/group_detail_fragment.xml
deleted file mode 100644
index 3011d69..0000000
--- a/res/layout-sw580dp-w1000dp/group_detail_fragment.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/group_detail"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@drawable/panel_content">
-
-    <!-- Static header containing the group title, size, and group source (if applicable) -->
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal" >
-
-        <LinearLayout
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:paddingLeft="@dimen/group_detail_border_padding"
-            android:orientation="vertical" >
-
-            <TextView
-                android:id="@+id/group_title"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:paddingTop="12dip"
-                android:paddingLeft="8dip"
-                android:textAppearance="?android:attr/textAppearanceLarge"
-                android:textStyle="bold" />
-
-            <TextView
-                android:id="@+id/group_size"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:paddingBottom="12dip"
-                android:paddingLeft="8dip"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textColor="?android:attr/textColorSecondary" />
-
-        </LinearLayout>
-
-        <FrameLayout
-            android:id="@+id/group_source_view_container"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:paddingRight="@dimen/group_detail_border_padding" />
-
-    </LinearLayout>
-
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1dip"
-        android:background="@color/people_app_theme_color"
-        android:layout_marginLeft="@dimen/group_detail_border_padding"
-        android:layout_marginRight="@dimen/group_detail_border_padding" />
-
-    <!-- List of group members -->
-    <ListView android:id="@android:id/list"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_marginLeft="@dimen/group_detail_border_padding"
-        android:layout_marginRight="@dimen/group_detail_border_padding"
-        android:cacheColorHint="#00000000"
-        android:fadingEdge="none"
-        android:divider="@null" />
-
-    <include
-        layout="@layout/group_detail_fragment_empty_view"/>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-sw580dp-w1000dp/updates_header_contact.xml b/res/layout-sw580dp-w1000dp/updates_header_contact.xml
index da63d20..fc4471b 100644
--- a/res/layout-sw580dp-w1000dp/updates_header_contact.xml
+++ b/res/layout-sw580dp-w1000dp/updates_header_contact.xml
@@ -16,9 +16,23 @@
 
 <!--
   This is a header entry in the contact updates list.
-  This is empty because there is no header in this case.
 -->
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="0dip"/>
+    android:layout_height="wrap_content"
+    android:focusable="false">
+
+    <TextView
+        style="?android:attr/listSeparatorTextViewStyle"
+        android:layout_height="32dip"
+        android:paddingLeft="8dip"
+        android:paddingRight="8dip"
+        android:background="@drawable/list_section_divider_holo_custom"
+        android:text="@string/recent_updates"
+        android:textColor="@color/people_app_theme_color"
+        android:textAllCaps="true"
+        android:singleLine="true"
+        android:ellipsize="end" />
+
+</FrameLayout>
diff --git a/res/layout-sw580dp/detail_header_contact_with_updates.xml b/res/layout-sw580dp/detail_header_contact_with_updates.xml
index 6b6f02b..fa6f301 100644
--- a/res/layout-sw580dp/detail_header_contact_with_updates.xml
+++ b/res/layout-sw580dp/detail_header_contact_with_updates.xml
@@ -26,7 +26,8 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical"
-    android:layout_marginTop="30dip">
+    android:layout_marginTop="30dip"
+    android:paddingBottom="8dip">
 
     <!-- Add a first item that gives us enough space to show the carousel -->
     <view
@@ -43,12 +44,26 @@
 
     </view>
 
-    <TextView
-        android:id="@+id/name"
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:textSize="@dimen/detail_header_name_text_size" />
+        android:orientation="horizontal"
+        android:paddingTop="8dip"
+        android:paddingRight="8dip">
+
+        <TextView
+            android:id="@+id/name"
+            android:layout_width="0dip"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:paddingRight="24dip"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:textSize="@dimen/detail_header_name_text_size" />
+
+        <include
+            layout="@layout/favorites_star" />
+
+    </LinearLayout>
 
     <TextView
         android:id="@+id/company"
@@ -57,12 +72,4 @@
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:textColor="?android:attr/textColorSecondary" />
 
-    <CheckBox
-        android:id="@+id/star"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="top"
-        android:contentDescription="@string/description_star"
-        style="?android:attr/starStyle" />
-
 </LinearLayout>
diff --git a/res/layout-sw580dp/detail_header_contact_without_updates.xml b/res/layout-sw580dp/detail_header_contact_without_updates.xml
index 995e8f7..a55764d 100644
--- a/res/layout-sw580dp/detail_header_contact_without_updates.xml
+++ b/res/layout-sw580dp/detail_header_contact_without_updates.xml
@@ -23,7 +23,8 @@
     xmlns:ex="http://schemas.android.com/apk/res/com.android.contacts"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="vertical">
+    android:orientation="vertical"
+    android:paddingBottom="8dip">
 
     <!-- Ensure that the contact photo for a contact WITHOUT social updates is the same width and
     height as a contact WITH social updates (where the photo is 2/3 of the screen width). -->
@@ -57,12 +58,26 @@
 
     </view>
 
-    <TextView
-        android:id="@+id/name"
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:textSize="@dimen/detail_header_name_text_size" />
+        android:orientation="horizontal"
+        android:paddingTop="8dip"
+        android:paddingRight="8dip">
+
+        <TextView
+            android:id="@+id/name"
+            android:layout_width="0dip"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:paddingRight="24dip"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:textSize="@dimen/detail_header_name_text_size" />
+
+        <include
+            layout="@layout/favorites_star" />
+
+    </LinearLayout>
 
     <TextView
         android:id="@+id/company"
@@ -71,12 +86,4 @@
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:textColor="?android:attr/textColorSecondary" />
 
-    <CheckBox
-        android:id="@+id/star"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="top"
-        android:contentDescription="@string/description_star"
-        style="?android:attr/starStyle" />
-
 </LinearLayout>
diff --git a/res/layout-sw580dp/favorites_star.xml b/res/layout-sw580dp/favorites_star.xml
new file mode 100644
index 0000000..7959df3
--- /dev/null
+++ b/res/layout-sw580dp/favorites_star.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:minHeight="50dip">
+
+    <CheckBox
+        android:id="@+id/star"
+        android:duplicateParentState="true"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="center_vertical"
+        android:contentDescription="@string/description_star"
+        style="?android:attr/starStyle"/>
+
+</FrameLayout>
diff --git a/res/layout-sw580dp/group_detail_fragment.xml b/res/layout-sw580dp/group_detail_fragment.xml
index ec65582..8a4ce86 100644
--- a/res/layout-sw580dp/group_detail_fragment.xml
+++ b/res/layout-sw580dp/group_detail_fragment.xml
@@ -21,43 +21,62 @@
     android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/background_primary"
+    android:background="@drawable/panel_content"
     android:paddingLeft="@dimen/group_detail_border_padding"
     android:paddingRight="@dimen/group_detail_border_padding">
 
-    <TextView
-        android:id="@+id/group_title"
+    <!-- Static header containing the group title, size, and group source (if applicable) -->
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingLeft="8dip"
-        android:paddingTop="12dip"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:textStyle="bold" />
+        android:orientation="horizontal" >
 
-    <TextView
-        android:id="@+id/group_size"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingLeft="8dip"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textColor="?android:attr/textColorTertiary" />
+        <LinearLayout
+            android:layout_width="0dip"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:paddingLeft="8dip"
+            android:orientation="vertical" >
+
+            <TextView
+                android:id="@+id/group_title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:singleLine="true"
+                android:ellipsize="end"
+                android:paddingTop="12dip"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textStyle="bold" />
+
+            <TextView
+                android:id="@+id/group_size"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:singleLine="true"
+                android:ellipsize="end"
+                android:paddingBottom="12dip"
+                android:textAppearance="@style/GroupMembershipSizeTextAppearance"
+                android:textColor="?android:attr/textColorSecondary" />
+
+        </LinearLayout>
+
+        <FrameLayout
+            android:id="@+id/group_source_view_container"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent" />
+
+    </LinearLayout>
 
     <View
         android:layout_width="match_parent"
         android:layout_height="1dip"
-        android:background="@color/people_app_theme_color"
-        android:layout_marginTop="12dip" />
+        android:background="@color/people_app_theme_color" />
 
-    <FrameLayout
-        android:id="@+id/group_source_view_container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical" />
-
+    <!-- List of group members -->
     <ListView android:id="@android:id/list"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:cacheColorHint="#00000000"
+        android:cacheColorHint="@android:color/black"
         android:fadingEdge="none"
         android:divider="@null" />
 
diff --git a/res/layout-sw580dp/group_source_button.xml b/res/layout-sw580dp/group_source_button.xml
index e0fe4a9..43c85e9 100644
--- a/res/layout-sw580dp/group_source_button.xml
+++ b/res/layout-sw580dp/group_source_button.xml
@@ -34,7 +34,8 @@
         android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
         android:duplicateParentState="true"
-        android:textAppearance="?android:attr/textAppearanceMedium"/>
+        android:textSize="14sp"
+        style="@android:style/Widget.Holo.ActionBar.TabText"/>
 
     <ImageView
         android:id="@android:id/icon"
diff --git a/res/layout-sw580dp/list_separator.xml b/res/layout-sw580dp/list_separator.xml
index a53bd6b..34e8d79 100644
--- a/res/layout-sw580dp/list_separator.xml
+++ b/res/layout-sw580dp/list_separator.xml
@@ -17,12 +17,6 @@
 <TextView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/title"
-    style="?android:attr/listSeparatorTextViewStyle"
-    android:layout_height="32dip"
+    style="@style/ContactListSeparatorTextViewStyle"
     android:paddingLeft="8dip"
-    android:paddingRight="8dip"
-    android:background="@drawable/list_section_divider_holo_custom"
-    android:textColor="@color/people_app_theme_color"
-    android:textAllCaps="true"
-    android:singleLine="true"
-    android:ellipsize="end" />
\ No newline at end of file
+    android:paddingRight="8dip" />
diff --git a/res/layout-sw580dp/updates_header_contact.xml b/res/layout-sw580dp/updates_header_contact.xml
index 5192134..00e3d1b 100644
--- a/res/layout-sw580dp/updates_header_contact.xml
+++ b/res/layout-sw580dp/updates_header_contact.xml
@@ -16,21 +16,41 @@
 
 <!--
   This is a header entry in the contact updates list.
-  Add a first item that gives us enough space to show the carousel
 -->
-<view
+<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:ex="http://schemas.android.com/apk/res/com.android.contacts"
-    class="com.android.contacts.widget.ProportionalLayout"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:paddingBottom="8dip"
-    ex:ratio="0.66"
-    ex:direction="widthToHeight">
+    android:orientation="vertical">
 
-    <!-- Put a dummy view here because the ProportionalLayout requires one -->
-    <FrameLayout
+    <!-- This blank view pushes the other content down because of the tab carousel -->
+    <view
+        class="com.android.contacts.widget.ProportionalLayout"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"/>
+        android:layout_height="wrap_content"
+        android:paddingBottom="8dip"
+        ex:ratio="0.66"
+        ex:direction="widthToHeight">
 
-</view>
+        <!-- Put a dummy view here because the ProportionalLayout requires one -->
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"/>
+
+    </view>
+
+    <!-- "Recent updates" header text -->
+    <TextView
+        style="?android:attr/listSeparatorTextViewStyle"
+        android:layout_height="32dip"
+        android:paddingLeft="8dip"
+        android:paddingRight="8dip"
+        android:background="@drawable/list_section_divider_holo_custom"
+        android:text="@string/recent"
+        android:textColor="@color/people_app_theme_color"
+        android:textAllCaps="true"
+        android:singleLine="true"
+        android:ellipsize="end" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-w470dp/updates_header_contact.xml b/res/layout-w470dp/updates_header_contact.xml
index da63d20..5b068cd 100644
--- a/res/layout-w470dp/updates_header_contact.xml
+++ b/res/layout-w470dp/updates_header_contact.xml
@@ -16,9 +16,24 @@
 
 <!--
   This is a header entry in the contact updates list.
-  This is empty because there is no header in this case.
 -->
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="0dip"/>
+    android:layout_height="32dip"
+    android:paddingLeft="16dip"
+    android:paddingRight="16dip"
+    android:focusable="false">
+
+    <TextView
+        style="?android:attr/listSeparatorTextViewStyle"
+        android:paddingLeft="8dip"
+        android:paddingRight="8dip"
+        android:background="@drawable/list_section_divider_holo_custom"
+        android:text="@string/recent_updates"
+        android:textColor="@color/people_app_theme_color"
+        android:textAllCaps="true"
+        android:singleLine="true"
+        android:ellipsize="end" />
+
+</FrameLayout>
diff --git a/res/layout/account_filter_header.xml b/res/layout/account_filter_header.xml
index 4d45d25..26207f0 100644
--- a/res/layout/account_filter_header.xml
+++ b/res/layout/account_filter_header.xml
@@ -22,7 +22,6 @@
     android:id="@+id/account_filter_header_container"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:minHeight="?attr/list_item_header_height"
     android:orientation="vertical"
     android:paddingTop="@dimen/contact_browser_list_top_margin"
     android:layout_marginLeft="@dimen/contact_browser_list_header_left_margin"
@@ -31,17 +30,6 @@
     android:visibility="gone">
     <TextView
         android:id="@+id/account_filter_header"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:singleLine="true"
-        android:ellipsize="end"
-        android:textStyle="bold"
-        android:textAllCaps="true"
-        android:paddingLeft="@dimen/contact_browser_list_item_text_indent"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textColor="?android:attr/textColorSecondary" />
-    <View
-        android:id="@+id/account_filter_header_bottom_divider"
-        android:layout_height="1dip"
-        style="@style/SectionDivider" />
+        style="@style/ContactListSeparatorTextViewStyle"
+        android:paddingLeft="@dimen/contact_browser_list_item_text_indent" />
 </LinearLayout>
diff --git a/res/layout/call_log_list_item.xml b/res/layout/call_log_list_item.xml
index 4768bf6..777c7af 100644
--- a/res/layout/call_log_list_item.xml
+++ b/res/layout/call_log_list_item.xml
@@ -129,20 +129,11 @@
 
     <TextView
         android:id="@+id/call_log_header"
-        style="?android:attr/listSeparatorTextViewStyle"
+        style="@style/ContactListSeparatorTextViewStyle"
         android:layout_marginLeft="@dimen/call_log_outer_margin"
         android:layout_marginRight="@dimen/call_log_outer_margin"
         android:paddingTop="@dimen/call_log_inner_margin"
-        android:paddingBottom="@dimen/call_log_inner_margin"
-        android:background="@drawable/list_section_divider_holo_custom"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textStyle="bold"
-        android:textColor="?attr/call_log_header_color"
-        android:textAllCaps="true"
-        android:singleLine="true"
-        android:ellipsize="end"
-        android:focusable="true"
-    />
+        android:paddingBottom="@dimen/call_log_inner_margin" />
 
     <View
         android:id="@+id/call_log_divider"
diff --git a/res/layout/carousel_updates_tab.xml b/res/layout/carousel_updates_tab.xml
index 91a72d3..d471d93 100644
--- a/res/layout/carousel_updates_tab.xml
+++ b/res/layout/carousel_updates_tab.xml
@@ -56,7 +56,7 @@
         android:textAppearance="?android:attr/textAppearanceLarge"
         android:textColor="@color/detail_update_tab_text_color"
         android:textStyle="bold"
-        android:maxLines="3"/>
+        android:maxLines="@integer/updates_tab_snippet_max_lines"/>
 
     <View
         android:id="@+id/alpha_overlay"
diff --git a/res/layout/contacts_list_content.xml b/res/layout/contact_list_content.xml
similarity index 100%
rename from res/layout/contacts_list_content.xml
rename to res/layout/contact_list_content.xml
diff --git a/res/layout/contact_list_filter_custom.xml b/res/layout/contact_list_filter_custom.xml
index a4fe48e..40d9c78 100644
--- a/res/layout/contact_list_filter_custom.xml
+++ b/res/layout/contact_list_filter_custom.xml
@@ -26,7 +26,8 @@
         android:layout_height="0dip"
         android:layout_weight="1"
         android:layout_marginLeft="@dimen/contact_filter_left_margin"
-        android:layout_marginRight="@dimen/contact_filter_right_margin" />
+        android:layout_marginRight="@dimen/contact_filter_right_margin"
+        android:overScrollMode="always" />
 
     <View
         android:layout_width="match_parent"
diff --git a/res/layout/directory_header.xml b/res/layout/directory_header.xml
index a1516ef..a2adf48 100644
--- a/res/layout/directory_header.xml
+++ b/res/layout/directory_header.xml
@@ -20,7 +20,9 @@
     style="@style/DirectoryHeader"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:minHeight="?attr/list_item_header_height"
+    android:minHeight="@dimen/list_section_divider_min_height"
+    android:background="@drawable/list_section_divider_holo_custom"
+    android:paddingTop="@dimen/contact_browser_list_top_margin"
     android:paddingLeft="?attr/list_item_padding_left"
     android:paddingRight="?attr/list_item_padding_right">
     <TextView
@@ -32,7 +34,7 @@
         android:layout_centerVertical="true"
         android:layout_marginLeft="8dip"
         android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textColor="?android:attr/textColorSecondary"
+        android:textColor="@color/people_app_theme_color"
         android:singleLine="true"
         android:textStyle="bold"
         android:textAllCaps="true" />
@@ -55,12 +57,8 @@
         android:layout_marginLeft="8dip"
         android:layout_marginRight="8dip"
         android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textColor="?android:attr/textColorSecondary"
+        android:textColor="@color/people_app_theme_color"
         android:singleLine="true"
         android:textStyle="bold"
         android:textAllCaps="true" />
-    <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_kind_title.xml b/res/layout/edit_kind_title.xml
index f178876..1cd6833 100644
--- a/res/layout/edit_kind_title.xml
+++ b/res/layout/edit_kind_title.xml
@@ -20,20 +20,13 @@
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="32dip"
+    android:layout_height="wrap_content"
     android:paddingLeft="8dip"
     android:paddingRight="8dip"
     android:focusable="false">
-
     <TextView
         android:id="@+id/kind_title"
-        style="?android:attr/listSeparatorTextViewStyle"
+        style="@style/ContactListSeparatorTextViewStyle"
         android:paddingLeft="8dip"
-        android:paddingRight="8dip"
-        android:background="@drawable/list_section_divider_holo_custom"
-        android:textColor="@color/people_app_theme_color"
-        android:textAllCaps="true"
-        android:singleLine="true"
-        android:ellipsize="end" />
-
-</FrameLayout>
\ No newline at end of file
+        android:paddingRight="8dip" />
+</FrameLayout>
diff --git a/res/layout/list_separator.xml b/res/layout/list_separator.xml
index 3ffaca7..d94e18c 100644
--- a/res/layout/list_separator.xml
+++ b/res/layout/list_separator.xml
@@ -17,20 +17,13 @@
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="32dip"
+    android:layout_height="wrap_content"
     android:paddingLeft="16dip"
     android:paddingRight="16dip"
     android:focusable="false">
-
     <TextView
         android:id="@+id/title"
-        style="?android:attr/listSeparatorTextViewStyle"
+        style="@style/ContactListSeparatorTextViewStyle"
         android:paddingLeft="8dip"
-        android:paddingRight="8dip"
-        android:background="@drawable/list_section_divider_holo_custom"
-        android:textColor="@color/people_app_theme_color"
-        android:textAllCaps="true"
-        android:singleLine="true"
-        android:ellipsize="end" />
-
+        android:paddingRight="8dip" />
 </FrameLayout>
diff --git a/res/layout/phone_favorite_account_filter_header.xml b/res/layout/phone_favorite_account_filter_header.xml
deleted file mode 100644
index d63382a..0000000
--- a/res/layout/phone_favorite_account_filter_header.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<!-- Layout showing the type of account filter in phone favorite screen.
-
-     Note: This xml is based on account_filter_header.xml and list_separator.xml.
-     Some configurations (e.g. padding) are from account_filter_header.xml, while
-     some other configurations (e.g. background, height, text style) are from
-     list_separator.xml. See also bug 5432231. -->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/account_filter_header_container"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:minHeight="32dip"
-    android:paddingTop="@dimen/contact_browser_list_top_margin"
-    android:layout_marginLeft="@dimen/contact_browser_list_header_left_margin"
-    android:layout_marginRight="@dimen/contact_browser_list_header_right_margin"
-    android:background="?android:attr/selectableItemBackground"
-    android:visibility="gone">
-    <TextView
-        android:id="@+id/account_filter_header"
-        style="?android:attr/listSeparatorTextViewStyle"
-        android:singleLine="true"
-        android:ellipsize="end"
-        android:textStyle="bold"
-        android:textAllCaps="true"
-        android:textColor="@color/people_app_theme_color"
-        android:paddingLeft="@dimen/contact_browser_list_item_text_indent"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:background="@drawable/list_section_divider_holo_custom" />
-</FrameLayout>
diff --git a/res/layout/updates_header_contact.xml b/res/layout/updates_header_contact.xml
index d401f05..774fa7b 100644
--- a/res/layout/updates_header_contact.xml
+++ b/res/layout/updates_header_contact.xml
@@ -16,20 +16,48 @@
 
 <!--
   This is a header entry in the contact updates list.
-  Add a first item that gives us enough space to show the carousel
 -->
-<view
+<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:ex="http://schemas.android.com/apk/res/com.android.contacts"
-    class="com.android.contacts.widget.ProportionalLayout"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    ex:ratio="0.5"
-    ex:direction="widthToHeight">
+    android:orientation="vertical">
 
-    <!-- Put a dummy view here because the ProportionalLayout requires one -->
+    <!-- This blank view pushes the other content down because of the tab carousel -->
+    <view
+        class="com.android.contacts.widget.ProportionalLayout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        ex:ratio="0.5"
+        ex:direction="widthToHeight">
+
+        <!-- Put a dummy view here because the ProportionalLayout requires one -->
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"/>
+
+    </view>
+
+    <!-- "Recent" header text -->
     <FrameLayout
         android:layout_width="match_parent"
-        android:layout_height="match_parent"/>
+        android:layout_height="32dip"
+        android:paddingLeft="16dip"
+        android:paddingRight="16dip"
+        android:focusable="false">
 
-</view>
+        <TextView
+            style="?android:attr/listSeparatorTextViewStyle"
+            android:paddingLeft="8dip"
+            android:paddingRight="8dip"
+            android:background="@drawable/list_section_divider_holo_custom"
+            android:text="@string/recent"
+            android:textColor="@color/people_app_theme_color"
+            android:textAllCaps="true"
+            android:singleLine="true"
+            android:ellipsize="end" />
+
+    </FrameLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/values-af-w470dp/strings.xml b/res/values-af-w470dp/strings.xml
deleted file mode 100644
index be3a350..0000000
--- a/res/values-af-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Onlangse opdaterings"</string>
-</resources>
diff --git a/res/values-am-w470dp/strings.xml b/res/values-am-w470dp/strings.xml
deleted file mode 100644
index f15a298..0000000
--- a/res/values-am-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"የቅርብ ጊዜ አዘምን"</string>
-</resources>
diff --git a/res/values-ar-w470dp/strings.xml b/res/values-ar-w470dp/strings.xml
deleted file mode 100644
index dcb653d..0000000
--- a/res/values-ar-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"التحديثات الأخيرة"</string>
-</resources>
diff --git a/res/values-bg-w470dp/strings.xml b/res/values-bg-w470dp/strings.xml
deleted file mode 100644
index 42340bf..0000000
--- a/res/values-bg-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Скорошни актуализации"</string>
-</resources>
diff --git a/res/values-ca-w470dp/strings.xml b/res/values-ca-w470dp/strings.xml
deleted file mode 100644
index de22b9d..0000000
--- a/res/values-ca-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Actualitzacions recents"</string>
-</resources>
diff --git a/res/values-cs-w470dp/strings.xml b/res/values-cs-w470dp/strings.xml
deleted file mode 100644
index e7012d7..0000000
--- a/res/values-cs-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Poslední aktualizace"</string>
-</resources>
diff --git a/res/values-da-w470dp/strings.xml b/res/values-da-w470dp/strings.xml
deleted file mode 100644
index 192334c..0000000
--- a/res/values-da-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Seneste opdateringer"</string>
-</resources>
diff --git a/res/values-de-w470dp/strings.xml b/res/values-de-w470dp/strings.xml
deleted file mode 100644
index 98fbc22..0000000
--- a/res/values-de-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Neueste Aktualisierungen"</string>
-</resources>
diff --git a/res/values-el-w470dp/strings.xml b/res/values-el-w470dp/strings.xml
deleted file mode 100644
index defd3a8..0000000
--- a/res/values-el-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Πρόσφατες ενημερώσεις"</string>
-</resources>
diff --git a/res/values-en-rGB-w470dp/strings.xml b/res/values-en-rGB-w470dp/strings.xml
deleted file mode 100644
index 0666e45..0000000
--- a/res/values-en-rGB-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Recent updates"</string>
-</resources>
diff --git a/res/values-es-rUS-w470dp/strings.xml b/res/values-es-rUS-w470dp/strings.xml
deleted file mode 100644
index f8263d4..0000000
--- a/res/values-es-rUS-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Actualizaciones recientes"</string>
-</resources>
diff --git a/res/values-es-w470dp/strings.xml b/res/values-es-w470dp/strings.xml
deleted file mode 100644
index f8263d4..0000000
--- a/res/values-es-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Actualizaciones recientes"</string>
-</resources>
diff --git a/res/values-fa-w470dp/strings.xml b/res/values-fa-w470dp/strings.xml
deleted file mode 100644
index 3aba993..0000000
--- a/res/values-fa-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"به‌روزرسانی‌های اخیر"</string>
-</resources>
diff --git a/res/values-fi-w470dp/strings.xml b/res/values-fi-w470dp/strings.xml
deleted file mode 100644
index 2516eb5..0000000
--- a/res/values-fi-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Uusimmat päivitykset"</string>
-</resources>
diff --git a/res/values-fr-w470dp/strings.xml b/res/values-fr-w470dp/strings.xml
deleted file mode 100644
index 8308393..0000000
--- a/res/values-fr-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Mises à jour récentes"</string>
-</resources>
diff --git a/res/values-hi-w470dp/strings.xml b/res/values-hi-w470dp/strings.xml
deleted file mode 100644
index bf258c6..0000000
--- a/res/values-hi-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"हाल ही के अपडेट"</string>
-</resources>
diff --git a/res/values-hr-w470dp/strings.xml b/res/values-hr-w470dp/strings.xml
deleted file mode 100644
index 86486e7..0000000
--- a/res/values-hr-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Nedavna ažuriranja"</string>
-</resources>
diff --git a/res/values-hu-w470dp/strings.xml b/res/values-hu-w470dp/strings.xml
deleted file mode 100644
index f9446b3..0000000
--- a/res/values-hu-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Legújabb frissítések"</string>
-</resources>
diff --git a/res/values-in-w470dp/strings.xml b/res/values-in-w470dp/strings.xml
deleted file mode 100644
index 3ef1ea3..0000000
--- a/res/values-in-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Pembaruan terkini"</string>
-</resources>
diff --git a/res/values-it-w470dp/strings.xml b/res/values-it-w470dp/strings.xml
deleted file mode 100644
index af85aff..0000000
--- a/res/values-it-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Aggiornamenti recenti"</string>
-</resources>
diff --git a/res/values-iw-w470dp/strings.xml b/res/values-iw-w470dp/strings.xml
deleted file mode 100644
index 274d45c..0000000
--- a/res/values-iw-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"עדכונים אחרונים"</string>
-</resources>
diff --git a/res/values-ja-w470dp/strings.xml b/res/values-ja-w470dp/strings.xml
deleted file mode 100644
index 7e215c9..0000000
--- a/res/values-ja-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"最近の更新"</string>
-</resources>
diff --git a/res/values-ko-w470dp/strings.xml b/res/values-ko-w470dp/strings.xml
deleted file mode 100644
index 738c9cb..0000000
--- a/res/values-ko-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"최근 업데이트"</string>
-</resources>
diff --git a/res/values-lt-w470dp/strings.xml b/res/values-lt-w470dp/strings.xml
deleted file mode 100644
index e9464ca..0000000
--- a/res/values-lt-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Naujausi naujiniai"</string>
-</resources>
diff --git a/res/values-lv-w470dp/strings.xml b/res/values-lv-w470dp/strings.xml
deleted file mode 100644
index 7276263..0000000
--- a/res/values-lv-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Nesen veiktie atjauninājumi"</string>
-</resources>
diff --git a/res/values-ms-w470dp/strings.xml b/res/values-ms-w470dp/strings.xml
deleted file mode 100644
index 0c98649..0000000
--- a/res/values-ms-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Kemas kini terbaru"</string>
-</resources>
diff --git a/res/values-nb-w470dp/strings.xml b/res/values-nb-w470dp/strings.xml
deleted file mode 100644
index 70e22ae..0000000
--- a/res/values-nb-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Nylige oppdateringer"</string>
-</resources>
diff --git a/res/values-nl-w470dp/strings.xml b/res/values-nl-w470dp/strings.xml
deleted file mode 100644
index 198faf3..0000000
--- a/res/values-nl-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Recente updates"</string>
-</resources>
diff --git a/res/values-pl-w470dp/strings.xml b/res/values-pl-w470dp/strings.xml
deleted file mode 100644
index bdab73f..0000000
--- a/res/values-pl-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Najnowsze aktualizacje"</string>
-</resources>
diff --git a/res/values-pt-rPT-w470dp/strings.xml b/res/values-pt-rPT-w470dp/strings.xml
deleted file mode 100644
index d656eb4..0000000
--- a/res/values-pt-rPT-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Atualizações recentes"</string>
-</resources>
diff --git a/res/values-pt-w470dp/strings.xml b/res/values-pt-w470dp/strings.xml
deleted file mode 100644
index d656eb4..0000000
--- a/res/values-pt-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Atualizações recentes"</string>
-</resources>
diff --git a/res/values-ro-w470dp/strings.xml b/res/values-ro-w470dp/strings.xml
deleted file mode 100644
index 0b72d55..0000000
--- a/res/values-ro-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Actualizări recente"</string>
-</resources>
diff --git a/res/values-ru-w470dp/strings.xml b/res/values-ru-w470dp/strings.xml
deleted file mode 100644
index 1b4c787..0000000
--- a/res/values-ru-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Недавние обновления"</string>
-</resources>
diff --git a/res/values-sk-w470dp/strings.xml b/res/values-sk-w470dp/strings.xml
deleted file mode 100644
index 08a3673..0000000
--- a/res/values-sk-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Nedávne aktualizácie"</string>
-</resources>
diff --git a/res/values-sl-w470dp/strings.xml b/res/values-sl-w470dp/strings.xml
deleted file mode 100644
index 930b908..0000000
--- a/res/values-sl-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Nedavne posodobitve"</string>
-</resources>
diff --git a/res/values-sr-w470dp/strings.xml b/res/values-sr-w470dp/strings.xml
deleted file mode 100644
index 57cf13a..0000000
--- a/res/values-sr-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Недавна ажурирања"</string>
-</resources>
diff --git a/res/values-sv-w470dp/strings.xml b/res/values-sv-w470dp/strings.xml
deleted file mode 100644
index 1f690f7..0000000
--- a/res/values-sv-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Nya uppdateringar"</string>
-</resources>
diff --git a/res/values-sw-w470dp/strings.xml b/res/values-sw-w470dp/strings.xml
deleted file mode 100644
index 1c23ab1..0000000
--- a/res/values-sw-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Visasisho vya hivi karibuni"</string>
-</resources>
diff --git a/res/values-sw580dp-w1000dp/dimens.xml b/res/values-sw580dp-w1000dp/dimens.xml
index f1b607c..334cc34 100644
--- a/res/values-sw580dp-w1000dp/dimens.xml
+++ b/res/values-sw580dp-w1000dp/dimens.xml
@@ -15,6 +15,7 @@
 -->
 <resources>
     <dimen name="group_detail_border_padding">32dip</dimen>
+    <dimen name="group_detail_side_margin">32dip</dimen>
     <dimen name="detail_contact_photo_margin">16dip</dimen>
     <dimen name="contact_detail_list_top_padding">32dip</dimen>
 </resources>
diff --git a/res/values-w470dp/strings.xml b/res/values-sw580dp-w1000dp/styles.xml
similarity index 77%
rename from res/values-w470dp/strings.xml
rename to res/values-sw580dp-w1000dp/styles.xml
index 17934d7..9fa3d08 100644
--- a/res/values-w470dp/strings.xml
+++ b/res/values-sw580dp-w1000dp/styles.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2006 The Android Open Source Project
+<!-- 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.
@@ -13,6 +13,6 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates">Recent updates</string>
+<resources>
+    <style name="GroupMembershipSizeTextAppearance" parent="@android:style/TextAppearance.Medium" />
 </resources>
diff --git a/res/values-sw580dp-w720dp/styles.xml b/res/values-sw580dp-w720dp/styles.xml
index 5ad25c6..0d750d7 100644
--- a/res/values-sw580dp-w720dp/styles.xml
+++ b/res/values-sw580dp-w720dp/styles.xml
@@ -21,6 +21,7 @@
         <item name="android:actionBarTabStyle">@style/ContactsActionBarTabView</item>
         <item name="android:textColorPrimary">@color/primary_text_color</item>
         <item name="android:textColorSecondary">@color/secondary_text_color</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
         <item name="list_item_height">66dip</item>
         <item name="activated_background">@drawable/list_item_activated_background</item>
         <item name="section_header_background">@drawable/list_title_holo</item>
diff --git a/res/values-sw580dp/integers.xml b/res/values-sw580dp/integers.xml
index c629f7e..56e837e 100644
--- a/res/values-sw580dp/integers.xml
+++ b/res/values-sw580dp/integers.xml
@@ -15,4 +15,5 @@
 -->
 <resources>
     <integer name="contact_tile_column_count">2</integer>
+    <integer name="updates_tab_snippet_max_lines">5</integer>
 </resources>
diff --git a/res/values-sw580dp/styles.xml b/res/values-sw580dp/styles.xml
index 3551378..3cf50e2 100644
--- a/res/values-sw580dp/styles.xml
+++ b/res/values-sw580dp/styles.xml
@@ -21,6 +21,7 @@
         <item name="android:actionBarTabStyle">@style/ContactsActionBarTabView</item>
         <item name="android:textColorPrimary">@color/primary_text_color</item>
         <item name="android:textColorSecondary">@color/secondary_text_color</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
         <item name="list_item_height">?android:attr/listPreferredItemHeight</item>
         <item name="activated_background">@drawable/list_item_activated_background</item>
         <item name="section_header_background">@drawable/list_title_holo</item>
@@ -56,6 +57,7 @@
     </style>
 
     <style name="ContactPickerTheme" parent="@android:Theme.Holo.Light.Dialog">
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
         <item name="list_item_height">?android:attr/listPreferredItemHeight</item>
         <item name="section_header_background">@drawable/list_title_holo</item>
         <item name="list_item_divider">?android:attr/listDivider</item>
@@ -95,6 +97,7 @@
 
     <style name="ContactListFilterTheme" parent="@android:Theme.Holo.Light.Dialog">
         <item name="android:windowCloseOnTouchOutside">true</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
     </style>
 
     <style name="CustomContactListFilterView" parent="ContactListFilterTheme">
diff --git a/res/values-th-w470dp/strings.xml b/res/values-th-w470dp/strings.xml
deleted file mode 100644
index 83fbebe..0000000
--- a/res/values-th-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"การอัปเดตล่าสุด"</string>
-</resources>
diff --git a/res/values-tl-w470dp/strings.xml b/res/values-tl-w470dp/strings.xml
deleted file mode 100644
index 5a30962..0000000
--- a/res/values-tl-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Kamakailang mga update"</string>
-</resources>
diff --git a/res/values-tr-w470dp/strings.xml b/res/values-tr-w470dp/strings.xml
deleted file mode 100644
index 39e5a03..0000000
--- a/res/values-tr-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Son güncellemeler"</string>
-</resources>
diff --git a/res/values-uk-w470dp/strings.xml b/res/values-uk-w470dp/strings.xml
deleted file mode 100644
index 1f2e5c1..0000000
--- a/res/values-uk-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Останні оновлення"</string>
-</resources>
diff --git a/res/values-vi-w470dp/strings.xml b/res/values-vi-w470dp/strings.xml
deleted file mode 100644
index ef7dde6..0000000
--- a/res/values-vi-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Cập nhật gần đây"</string>
-</resources>
diff --git a/res/values-zh-rCN-w470dp/strings.xml b/res/values-zh-rCN-w470dp/strings.xml
deleted file mode 100644
index dfbaf5a..0000000
--- a/res/values-zh-rCN-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"最新动态"</string>
-</resources>
diff --git a/res/values-zh-rTW-w470dp/strings.xml b/res/values-zh-rTW-w470dp/strings.xml
deleted file mode 100644
index d09f414..0000000
--- a/res/values-zh-rTW-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"最近更新"</string>
-</resources>
diff --git a/res/values-zu-w470dp/strings.xml b/res/values-zu-w470dp/strings.xml
deleted file mode 100644
index 0901dde..0000000
--- a/res/values-zu-w470dp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="recent_updates" msgid="2018245636796411442">"Izibuyekezo zamanje"</string>
-</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 8d6b877..12ae918 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -142,7 +142,10 @@
     <dimen name="group_editor_autocomplete_left_padding">8dip</dimen>
 
     <!-- Border padding for the group detail fragment -->
-    <dimen name="group_detail_border_padding">32dip</dimen>
+    <dimen name="group_detail_border_padding">0dip</dimen>
+
+    <!-- Left and right margin for the divider in the group detail fragment -->
+    <dimen name="group_detail_side_margin">0dip</dimen>
 
     <!-- Height of edit text in dialpad fragment -->
     <dimen name="dialpad_horizontal_margin">0dip</dimen>
@@ -211,4 +214,9 @@
     <integer name="dialpad_layout_weight_digits">20</integer>
     <integer name="dialpad_layout_weight_dialpad">65</integer>
     <integer name="dialpad_layout_weight_additional_buttons">15</integer>
+
+    <!-- Minimum height used with @drawable/list_section_divider_holo_custom.
+         Right now the drawable has implicit 32dip minimal height, which is confusing.
+         This value is for making the hidden configuration explicit in xml. -->
+    <dimen name="list_section_divider_min_height">32dip</dimen>
 </resources>
diff --git a/res/values/integers.xml b/res/values/integers.xml
index 89246f9..3cae01b 100644
--- a/res/values/integers.xml
+++ b/res/values/integers.xml
@@ -23,4 +23,7 @@
 
     <!-- Determines the number of columns in a ContactTileRow -->
     <integer name="contact_tile_column_count">2</integer>
+
+    <!-- Max lines to display of a contact's snippet in the "updates" tab of the contact card tab carousel  -->
+    <integer name="updates_tab_snippet_max_lines">3</integer>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index a5e125d..ae2c680 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1257,8 +1257,11 @@
     <!-- Label of the button to open the "add connection" popup where the user can invite a contact to other social networks or services [CHAR LIMIT=32] -->
     <string name="add_connection_button">Add connection</string>
 
+    <!-- Section title for the page containing the contact's social updates on the contact card (this abbreviated version of "Recent updates" is used when "updates" is already shown as the title of the page) [CHAR LIMIT=20]-->
+    <string name="recent" msgid="2062236709538790412">Recent</string>
+
     <!-- Section title for the page containing the contact's social updates on the contact card [CHAR LIMIT=20]-->
-    <string name="recent_updates">Recent</string>
+    <string name="recent_updates" msgid="2018245636796411442">Recent updates</string>
 
     <!-- String describing which account type a contact came from when editing it -->
     <string name="account_type_format"><xliff:g id="source" example="Gmail">%1$s</xliff:g> contact</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index e5fd752..ece881e 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -21,6 +21,7 @@
         <item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
         <item name="android:windowContentOverlay">@null</item>
         <item name="android:windowBackground">@drawable/background_dial_holo_dark</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
         <item name="activated_background">@drawable/list_item_activated_background</item>
         <item name="section_header_background">@drawable/list_title_holo</item>
         <item name="list_section_header_height">32dip</item>
@@ -68,6 +69,7 @@
     <style name="CallDetailActivityTheme" parent="android:Theme.Holo">
         <item name="android:windowBackground">@android:color/black</item>
         <item name="android:gravity">top</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
         <!-- CallLog -->
         <item name="call_log_primary_text_color">#FFFFFF</item>
         <item name="call_log_primary_background_color">#000000</item>
@@ -87,6 +89,7 @@
         <item name="android:actionBarWidgetTheme">@style/ContactsActionBarTheme</item>
         <item name="android:textColorPrimary">@color/primary_text_color</item>
         <item name="android:textColorSecondary">@color/secondary_text_color</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
     </style>
 
     <style name="EditorActivityTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
@@ -96,6 +99,7 @@
         <item name="android:windowContentOverlay">@null</item>
         <item name="android:textColorPrimary">@color/primary_text_color</item>
         <item name="android:textColorSecondary">@color/secondary_text_color</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
     </style>
 
     <style name="BackgroundOnlyTheme" parent="@android:style/Theme.Holo.Light">
@@ -120,6 +124,7 @@
         <item name="android:backgroundDimEnabled">true</item>
         <item name="android:windowIsTranslucent">true</item>
         <item name="android:windowNoTitle">true</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
     </style>
 
     <style name="PeopleTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
@@ -129,6 +134,7 @@
         <item name="android:actionBarTabStyle">@style/ContactsActionBarTabView</item>
         <item name="android:textColorPrimary">@color/primary_text_color</item>
         <item name="android:textColorSecondary">@color/secondary_text_color</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
         <item name="list_item_height">?android:attr/listPreferredItemHeight</item>
         <item name="activated_background">@drawable/list_item_activated_background</item>
         <item name="section_header_background">@drawable/list_title_holo</item>
@@ -186,6 +192,10 @@
         <item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
     </style>
 
+    <style name="ListViewStyle" parent="@android:style/Widget.Holo.Light.ListView">
+        <item name="android:overScrollMode">always</item>
+    </style>
+
     <style name="ContactPickerTheme" parent="@style/PeopleTheme" />
 
     <style name="ContactPickerLayout" parent="ContactPickerTheme">
@@ -197,9 +207,11 @@
     </style>
 
     <style name="ContactsPreferencesTheme" parent="@android:Theme.Holo.Light">
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
     </style>
 
     <style name="ContactListFilterTheme" parent="@android:Theme.Holo.Light">
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
     </style>
 
     <style name="CustomContactListFilterView" parent="ContactListFilterTheme">
@@ -225,6 +237,7 @@
         <item name="android:windowCloseOnTouchOutside">true</item>
         <item name="android:textColorPrimary">@color/primary_text_color</item>
         <item name="android:textColorSecondary">@color/secondary_text_color</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
     </style>
 
     <style name="SectionDivider">
@@ -300,4 +313,28 @@
         <item name="android:layout_height">2dip</item>
         <item name="android:background">@color/quickcontact_tab_indicator</item>
     </style>
+
+
+    <style name="GroupMembershipSizeTextAppearance" parent="@android:style/TextAppearance.Small"/>
+
+    <!-- TextView style with blue underline. It is most suitable for headers.
+
+         This is similar to ?android:attr/listSeparatorTextView but uses different
+         background and text color. See also android:style/Widget.Holo.TextView.ListSeparator
+         (which is private, so we cannot specify it as a parent style).  -->
+    <style name="ContactListSeparatorTextViewStyle">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <!-- See comments for @dimen/list_section_divider_min_height -->
+        <item name="android:minHeight">@dimen/list_section_divider_min_height</item>
+        <item name="android:background">@drawable/list_section_divider_holo_custom</item>
+        <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:textColor">@color/people_app_theme_color</item>
+        <item name="android:gravity">center_vertical</item>
+        <item name="android:paddingLeft">8dip</item>
+        <item name="android:ellipsize">end</item>
+        <item name="android:singleLine">true</item>
+        <item name="android:textAllCaps">true</item>
+    </style>
 </resources>
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index 15724c1..917d8e0 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -20,14 +20,13 @@
 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.ContactListItemView;
 import com.android.contacts.list.OnPhoneNumberPickerActionListener;
 import com.android.contacts.list.PhoneFavoriteFragment;
 import com.android.contacts.list.PhoneNumberPickerFragment;
+import com.android.contacts.util.AccountFilterUtil;
 import com.android.internal.telephony.ITelephony;
 
 import android.app.ActionBar;
@@ -109,6 +108,8 @@
             "DialtactsActivity_last_manually_selected_tab";
     private static final int PREF_LAST_MANUALLY_SELECTED_TAB_DEFAULT = TAB_INDEX_DIALER;
 
+    private static final int SUBACTIVITY_ACCOUNT_FILTER = 1;
+
     /**
      * Listener interface for Fragments accommodated in {@link ViewPager} enabling them to know
      * when it becomes visible or invisible inside the ViewPager.
@@ -301,10 +302,8 @@
             new OnMenuItemClickListener() {
         @Override
         public boolean onMenuItemClick(MenuItem item) {
-            final Intent intent =
-                    new Intent(DialtactsActivity.this, AccountFilterActivity.class);
-            ContactListFilter filter = mContactListFilterController.getFilter();
-            startActivityForResult(intent, AccountFilterActivity.DEFAULT_REQUEST_CODE);
+            AccountFilterUtil.startAccountFilterActivityForResult(
+                    DialtactsActivity.this, SUBACTIVITY_ACCOUNT_FILTER);
             return true;
         }
     };
@@ -925,17 +924,9 @@
             return;
         }
         switch (requestCode) {
-            case AccountFilterActivity.DEFAULT_REQUEST_CODE: {
-                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);
-                }
+            case SUBACTIVITY_ACCOUNT_FILTER: {
+                AccountFilterUtil.handleAccountFilterResult(
+                        mContactListFilterController, resultCode, data);
             }
             break;
         }
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 6f4089c..772fa54 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -33,7 +33,6 @@
 import com.android.contacts.interactions.ContactDeletionInteraction;
 import com.android.contacts.interactions.ImportExportDialogFragment;
 import com.android.contacts.interactions.PhoneNumberInteraction;
-import com.android.contacts.list.AccountFilterActivity;
 import com.android.contacts.list.ContactBrowseListFragment;
 import com.android.contacts.list.ContactEntryListFragment;
 import com.android.contacts.list.ContactListFilter;
@@ -53,6 +52,7 @@
 import com.android.contacts.model.AccountWithDataSet;
 import com.android.contacts.preference.ContactsPreferenceActivity;
 import com.android.contacts.preference.DisplayOptionsPreferenceFragment;
+import com.android.contacts.util.AccountFilterUtil;
 import com.android.contacts.util.AccountPromptUtils;
 import com.android.contacts.util.AccountSelectionUtil;
 import com.android.contacts.util.AccountsListAdapter;
@@ -61,7 +61,6 @@
 import com.android.contacts.util.DialogManager;
 import com.android.contacts.util.PhoneCapabilityTester;
 
-import android.app.Activity;
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.app.FragmentTransaction;
@@ -110,8 +109,9 @@
 
     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 DialogManager mDialogManager = new DialogManager(this);
+    private final DialogManager mDialogManager = new DialogManager(this);
 
     private ContactsIntentResolver mIntentResolver;
     private ContactsRequest mRequest;
@@ -1355,8 +1355,8 @@
                 return true;
             }
             case R.id.menu_contacts_filter: {
-                final Intent intent = new Intent(this, AccountFilterActivity.class);
-                startActivityForResult(intent, AccountFilterActivity.DEFAULT_REQUEST_CODE);
+                AccountFilterUtil.startAccountFilterActivityForResult(this,
+                        SUBACTIVITY_ACCOUNT_FILTER);
                 return true;
             }
             case R.id.menu_search: {
@@ -1434,19 +1434,9 @@
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         switch (requestCode) {
-            case AccountFilterActivity.DEFAULT_REQUEST_CODE: {
-                if (resultCode == Activity.RESULT_OK) {
-                    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);
-                    }
-                }
+            case SUBACTIVITY_ACCOUNT_FILTER: {
+                AccountFilterUtil.handleAccountFilterResult(
+                        mContactListFilterController, resultCode, data);
                 break;
             }
 
diff --git a/src/com/android/contacts/detail/StreamItemAdapter.java b/src/com/android/contacts/detail/StreamItemAdapter.java
index c923cf8..2d870b4 100644
--- a/src/com/android/contacts/detail/StreamItemAdapter.java
+++ b/src/com/android/contacts/detail/StreamItemAdapter.java
@@ -27,7 +27,6 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
-import android.widget.TextView;
 
 import java.util.List;
 
@@ -37,10 +36,8 @@
 public class StreamItemAdapter extends BaseAdapter {
     /** The header view, hidden under the tab carousel, if present. */
     private static final int ITEM_VIEW_TYPE_HEADER = 0;
-    /** The title shown in the updates stream. */
-    private static final int ITEM_VIEW_TYPE_TITLE = 1;
     /** The updates in the list. */
-    private static final int ITEM_VIEW_TYPE_STREAM_ITEM = 2;
+    private static final int ITEM_VIEW_TYPE_STREAM_ITEM = 1;
 
     private final Context mContext;
     private final View.OnClickListener mItemClickListener;
@@ -60,23 +57,23 @@
 
     @Override
     public int getCount() {
-        // The header and title should only be included as items in the list if there are other
+        // The header should only be included as items in the list if there are other
         // stream items.
         int count = mStreamItems.size();
-        return (count == 0) ? 0 : (count + 2);
+        return (count == 0) ? 0 : (count + 1);
     }
 
     @Override
     public Object getItem(int position) {
-        if (position == 0 || position == 1) {
+        if (position == 0) {
             return null;
         }
-        return mStreamItems.get(position - 2);
+        return mStreamItems.get(position - 1);
     }
 
     @Override
     public long getItemId(int position) {
-        if (position == 0 || position == 1) {
+        if (position == 0) {
             return -1;
         }
         return position - 1;
@@ -101,12 +98,6 @@
         if (position == 0) {
             return mInflater.inflate(R.layout.updates_header_contact, null);
         }
-        if (position == 1) {
-            final View titleView = mInflater.inflate(R.layout.list_separator, null);
-            TextView titleTextView = (TextView) titleView.findViewById(R.id.title);
-            titleTextView.setText(mContext.getString(R.string.recent_updates));
-            return titleView;
-        }
         final StreamItemEntry streamItem = (StreamItemEntry) getItem(position);
         final AccountTypeManager manager = AccountTypeManager.getInstance(mContext);
         final AccountType accountType =
@@ -143,9 +134,6 @@
         if (position == 0) {
             return ITEM_VIEW_TYPE_HEADER;
         }
-        if (position == 1) {
-            return ITEM_VIEW_TYPE_TITLE;
-        }
         return ITEM_VIEW_TYPE_STREAM_ITEM;
     }
 
diff --git a/src/com/android/contacts/editor/GroupMembershipView.java b/src/com/android/contacts/editor/GroupMembershipView.java
index 42d2edd..82acc33 100644
--- a/src/com/android/contacts/editor/GroupMembershipView.java
+++ b/src/com/android/contacts/editor/GroupMembershipView.java
@@ -255,6 +255,7 @@
 
         ListView listView = mPopup.getListView();
         listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
+        listView.setOverScrollMode(OVER_SCROLL_ALWAYS);
         int count = mAdapter.getCount();
         for (int i = 0; i < count; i++) {
             listView.setItemChecked(i, mAdapter.getItem(i).isChecked());
diff --git a/src/com/android/contacts/list/AccountFilterActivity.java b/src/com/android/contacts/list/AccountFilterActivity.java
index aa1fe27..0b4c6e0 100644
--- a/src/com/android/contacts/list/AccountFilterActivity.java
+++ b/src/com/android/contacts/list/AccountFilterActivity.java
@@ -55,15 +55,6 @@
 
     private static final int SUBACTIVITY_CUSTOMIZE_FILTER = 0;
 
-    /**
-     * Request code for this Activity, which will be used with
-     * {@link Activity#startActivityForResult(Intent, int)}.
-     *
-     * This is useful when we want to share one request code among multiple Activities and
-     * Fragments.
-     */
-    public static final int DEFAULT_REQUEST_CODE = 10001;
-
     public static final String KEY_EXTRA_CONTACT_LIST_FILTER = "contactListFilter";
 
     private static final int FILTER_LOADER_ID = 0;
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index a6700b5..0cc211a 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -17,13 +17,14 @@
 
 import com.android.contacts.R;
 import com.android.contacts.editor.ContactEditorFragment;
+import com.android.contacts.util.AccountFilterUtil;
 
-import android.app.Activity;
 import android.content.CursorLoader;
 import android.content.Intent;
 import android.database.Cursor;
 import android.provider.ContactsContract.Contacts;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -40,11 +41,13 @@
  * picking a contact with one of the PICK intents).
  */
 public class DefaultContactBrowseListFragment extends ContactBrowseListFragment {
+    private static final String TAG = DefaultContactBrowseListFragment.class.getSimpleName();
+
+    private static final int REQUEST_CODE_ACCOUNT_FILTER = 1;
 
     private TextView mCounterHeaderView;
     private View mSearchHeaderView;
-    private TextView mAccountFilterHeaderView;
-    private View mAccountFilterHeaderContainer;
+    private View mAccountFilterHeader;
     private FrameLayout mProfileHeaderContainer;
     private View mProfileHeader;
     private Button mProfileMessage;
@@ -56,12 +59,8 @@
     private class FilterHeaderClickListener implements OnClickListener {
         @Override
         public void onClick(View view) {
-            final Activity activity = getActivity();
-            if (activity != null) {
-                final Intent intent = new Intent(activity, AccountFilterActivity.class);
-                activity.startActivityForResult(
-                        intent, AccountFilterActivity.DEFAULT_REQUEST_CODE);
-            }
+            AccountFilterUtil.startAccountFilterActivityForResult(
+                        DefaultContactBrowseListFragment.this, REQUEST_CODE_ACCOUNT_FILTER);
         }
     }
     private OnClickListener mFilterHeaderClickListener = new FilterHeaderClickListener();
@@ -92,17 +91,15 @@
 
     @Override
     protected View inflateView(LayoutInflater inflater, ViewGroup container) {
-        return inflater.inflate(R.layout.contacts_list_content, null);
+        return inflater.inflate(R.layout.contact_list_content, null);
     }
 
     @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);
-        mAccountFilterHeaderContainer.setOnClickListener(mFilterHeaderClickListener);
+        mAccountFilterHeader = getView().findViewById(R.id.account_filter_header_container);
+        mAccountFilterHeader.setOnClickListener(mFilterHeaderClickListener);
         mCounterHeaderView = (TextView) getView().findViewById(R.id.contacts_count);
 
         // Create an empty user profile header and hide it for now (it will be visible if the
@@ -144,29 +141,17 @@
     }
 
     private void updateFilterHeaderView() {
-        ContactListFilter filter = getFilter();
-        if (mAccountFilterHeaderView == null) {
+        if (mAccountFilterHeader == null) {
             return; // Before onCreateView -- just ignore it.
         }
+        final ContactListFilter filter = getFilter();
         if (filter != null && !isSearchMode()) {
-            if (filter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
-                mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
-                mAccountFilterHeaderView.setText(getContext().getString(
-                        R.string.listSingleContact));
-                return;
-            } else if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
-                mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
-                mAccountFilterHeaderView.setText(getContext().getString(
-                        R.string.listCustomView));
-                return;
-            } else if (filter.filterType != ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
-                mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
-                mAccountFilterHeaderView.setText(getContext().getString(
-                        R.string.listAllContactsInAccount, filter.accountName));
-                return;
-            }
+            final boolean shouldShowHeader = AccountFilterUtil.updateAccountFilterTitleForPeople(
+                    mAccountFilterHeader, filter, false, false);
+            mAccountFilterHeader.setVisibility(shouldShowHeader ? View.VISIBLE : View.GONE);
+        } else {
+            mAccountFilterHeader.setVisibility(View.GONE);
         }
-        mAccountFilterHeaderContainer.setVisibility(View.GONE);
     }
 
     @Override
@@ -244,6 +229,18 @@
         showEmptyUserProfile(!mUserProfileExists && !isSearchMode());
     }
 
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == REQUEST_CODE_ACCOUNT_FILTER) {
+            if (getActivity() != null) {
+                AccountFilterUtil.handleAccountFilterResult(
+                        ContactListFilterController.getInstance(getActivity()), resultCode, data);
+            } else {
+                Log.e(TAG, "getActivity() returns null during Fragment#onActivityResult()");
+            }
+        }
+    }
+
     private void showEmptyUserProfile(boolean show) {
         // Changing visibility of just the mProfileHeader doesn't do anything unless
         // you change visibility of its children, hence the call to mCounterHeaderView
diff --git a/src/com/android/contacts/list/EmailAddressPickerFragment.java b/src/com/android/contacts/list/EmailAddressPickerFragment.java
index 168e135..14b6c23 100644
--- a/src/com/android/contacts/list/EmailAddressPickerFragment.java
+++ b/src/com/android/contacts/list/EmailAddressPickerFragment.java
@@ -55,7 +55,7 @@
 
     @Override
     protected View inflateView(LayoutInflater inflater, ViewGroup container) {
-        return inflater.inflate(R.layout.contacts_list_content, null);
+        return inflater.inflate(R.layout.contact_list_content, null);
     }
 
     private void pickEmailAddress(Uri uri) {
diff --git a/src/com/android/contacts/list/PhoneFavoriteFragment.java b/src/com/android/contacts/list/PhoneFavoriteFragment.java
index 17247a4..9ee2d3c 100644
--- a/src/com/android/contacts/list/PhoneFavoriteFragment.java
+++ b/src/com/android/contacts/list/PhoneFavoriteFragment.java
@@ -19,6 +19,7 @@
 import com.android.contacts.ContactTileLoaderFactory;
 import com.android.contacts.R;
 import com.android.contacts.preference.ContactsPreferences;
+import com.android.contacts.util.AccountFilterUtil;
 
 import android.app.Activity;
 import android.app.Fragment;
@@ -39,6 +40,7 @@
 import android.widget.AbsListView;
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemClickListener;
+import android.widget.FrameLayout;
 import android.widget.ListView;
 import android.widget.TextView;
 
@@ -62,6 +64,8 @@
 
     private static final String KEY_FILTER = "filter";
 
+    private static final int REQUEST_CODE_ACCOUNT_FILTER = 1;
+
     public interface Listener {
         public void onContactSelected(Uri contactUri);
     }
@@ -93,7 +97,7 @@
 
             // Show the filter header with "loading" state.
             updateFilterHeaderView();
-            mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
+            mAccountFilterHeader.setVisibility(View.VISIBLE);
         }
 
         @Override
@@ -137,12 +141,8 @@
     private class FilterHeaderClickListener implements OnClickListener {
         @Override
         public void onClick(View view) {
-            final Activity activity = getActivity();
-            if (activity != null) {
-                final Intent intent = new Intent(activity, AccountFilterActivity.class);
-                activity.startActivityForResult(
-                        intent, AccountFilterActivity.DEFAULT_REQUEST_CODE);
-            }
+            AccountFilterUtil.startAccountFilterActivityForResult(
+                    PhoneFavoriteFragment.this, REQUEST_CODE_ACCOUNT_FILTER);
         }
     }
 
@@ -164,6 +164,7 @@
             // FastScroller should be visible only when the user is seeing "all" contacts section.
             final boolean shouldShow = mAdapter.shouldShowFirstScroller(firstVisibleItem);
             if (shouldShow != mShouldShowFastScroller) {
+                mListView.setVerticalScrollBarEnabled(shouldShow);
                 mListView.setFastScrollEnabled(shouldShow);
                 mListView.setFastScrollAlwaysVisible(shouldShow);
                 mShouldShowFastScroller = shouldShow;
@@ -196,8 +197,11 @@
 
     private TextView mEmptyView;
     private ListView mListView;
-    private View mAccountFilterHeaderContainer;
-    private TextView mAccountFilterHeaderView;
+    /**
+     * Layout containing {@link #mAccountFilterHeader}. Used to limit area being "pressed".
+     */
+    private FrameLayout mAccountFilterHeaderContainer;
+    private View mAccountFilterHeader;
 
     private final ContactTileAdapter.Listener mContactTileAdapterListener =
             new ContactTileAdapterListener();
@@ -239,7 +243,7 @@
         mListView = (ListView) listLayout.findViewById(R.id.contact_tile_list);
         mListView.setItemsCanFocus(true);
         mListView.setOnItemClickListener(this);
-        mListView.setVerticalScrollBarEnabled(true);
+        mListView.setVerticalScrollBarEnabled(false);
         mListView.setVerticalScrollbarPosition(View.SCROLLBAR_POSITION_RIGHT);
         mListView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
 
@@ -299,11 +303,10 @@
         }
 
         // Create the account filter header but keep it hidden until "all" contacts are loaded.
-        mAccountFilterHeaderContainer = inflater.inflate(
-                R.layout.phone_favorite_account_filter_header, mListView, false);
-        mAccountFilterHeaderView =
-                (TextView) mAccountFilterHeaderContainer.findViewById(R.id.account_filter_header);
-        mAccountFilterHeaderContainer.setOnClickListener(mFilterHeaderClickListener);
+        mAccountFilterHeaderContainer = new FrameLayout(context, null);
+        mAccountFilterHeader = inflater.inflate(R.layout.account_filter_header, mListView, false);
+        mAccountFilterHeader.setOnClickListener(mFilterHeaderClickListener);
+        mAccountFilterHeaderContainer.addView(mAccountFilterHeader);
         mAccountFilterHeaderContainer.setVisibility(View.GONE);
 
         mAdapter = new PhoneFavoriteMergedAdapter(context,
@@ -355,6 +358,18 @@
         }
     }
 
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == REQUEST_CODE_ACCOUNT_FILTER) {
+            if (getActivity() != null) {
+                AccountFilterUtil.handleAccountFilterResult(
+                        ContactListFilterController.getInstance(getActivity()), resultCode, data);
+            } else {
+                Log.e(TAG, "getActivity() returns null during Fragment#onActivityResult()");
+            }
+        }
+    }
+
     private boolean loadContactsPreferences() {
         if (mContactsPrefs == null || mAllContactsAdapter == null) {
             return false;
@@ -400,27 +415,12 @@
     }
 
     private void updateFilterHeaderView() {
-        if (mAccountFilterHeaderContainer == null || mAllContactsAdapter == null) {
+        final ContactListFilter filter = getFilter();
+        if (mAccountFilterHeader == null || mAllContactsAdapter == null || filter == null) {
             return;
         }
-
-        final ContactListFilter filter = getFilter();
-        if (mAllContactsAdapter.isLoading()) {
-            mAccountFilterHeaderView.setText(R.string.contact_list_loading);
-        } else if (filter != null) {
-            if (filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
-                mAccountFilterHeaderView.setText(R.string.list_filter_phones);
-            } else if (filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
-                mAccountFilterHeaderView.setText(getString(
-                        R.string.listAllContactsInAccount, filter.accountName));
-            } else if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
-                mAccountFilterHeaderView.setText(R.string.listCustomView);
-            } else {
-                Log.w(TAG, "Filter type \"" + filter.filterType + "\" isn't expected.");
-            }
-        } else {
-            Log.w(TAG, "Filter is null.");
-        }
+        AccountFilterUtil.updateAccountFilterTitleForPhone(
+                mAccountFilterHeader, filter, mAllContactsAdapter.isLoading(), true);
     }
 
     public ContactListFilter getFilter() {
diff --git a/src/com/android/contacts/list/PhoneFavoriteMergedAdapter.java b/src/com/android/contacts/list/PhoneFavoriteMergedAdapter.java
index 0df4b3d..205e156 100644
--- a/src/com/android/contacts/list/PhoneFavoriteMergedAdapter.java
+++ b/src/com/android/contacts/list/PhoneFavoriteMergedAdapter.java
@@ -184,7 +184,8 @@
         if (position < contactTileAdapterCount) {
             return mContactTileAdapter.isEnabled(position);
         } else if (position == contactTileAdapterCount) {
-            return mAccountFilterHeaderContainer.isEnabled();
+            // This will be handled by View's onClick event instead of ListView's onItemClick event.
+            return false;
         } else {
             final int localPosition = position - contactTileAdapterCount - 1;
             return mContactEntryListAdapter.isEnabled(localPosition);
diff --git a/src/com/android/contacts/list/PhoneNumberPickerFragment.java b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
index 602b06a..052c32f 100644
--- a/src/com/android/contacts/list/PhoneNumberPickerFragment.java
+++ b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
@@ -17,8 +17,8 @@
 
 import com.android.contacts.R;
 import com.android.contacts.list.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
+import com.android.contacts.util.AccountFilterUtil;
 
-import android.app.Activity;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
@@ -28,7 +28,6 @@
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
-import android.widget.TextView;
 
 /**
  * Fragment containing a phone number list for picking.
@@ -37,15 +36,16 @@
         implements OnShortcutIntentCreatedListener {
     private static final String TAG = PhoneNumberPickerFragment.class.getSimpleName();
 
+    private static final int REQUEST_CODE_ACCOUNT_FILTER = 1;
+
     private OnPhoneNumberPickerActionListener mListener;
     private String mShortcutAction;
 
     private ContactListFilter mFilter;
 
-    private TextView mAccountFilterHeaderView;
-    private View mAccountFilterHeaderContainer;
+    private View mAccountFilterHeader;
     /**
-     * Lives as ListView's header and is shown when {@link #mAccountFilterHeaderContainer} is set
+     * Lives as ListView's header and is shown when {@link #mAccountFilterHeader} is set
      * to View.GONE.
      */
     private View mPaddingView;
@@ -58,17 +58,11 @@
     private ContactListItemView.PhotoPosition mPhotoPosition =
             ContactListItemView.DEFAULT_PHOTO_POSITION;
 
-    // A complete copy from DefaultContactBrowserListFragment
-    // TODO: should be able to share logic around filter header.
     private class FilterHeaderClickListener implements OnClickListener {
         @Override
         public void onClick(View view) {
-            final Activity activity = getActivity();
-            if (activity != null) {
-                final Intent intent = new Intent(activity, AccountFilterActivity.class);
-                activity.startActivityForResult(
-                        intent, AccountFilterActivity.DEFAULT_REQUEST_CODE);
-            }
+            AccountFilterUtil.startAccountFilterActivityForResult(
+                    PhoneNumberPickerFragment.this, REQUEST_CODE_ACCOUNT_FILTER);
         }
     }
     private OnClickListener mFilterHeaderClickListener = new FilterHeaderClickListener();
@@ -96,10 +90,8 @@
         mPaddingView = paddingView.findViewById(R.id.contact_detail_list_padding);
         getListView().addHeaderView(paddingView);
 
-        mAccountFilterHeaderView = (TextView) getView().findViewById(R.id.account_filter_header);
-        mAccountFilterHeaderContainer =
-                getView().findViewById(R.id.account_filter_header_container);
-        mAccountFilterHeaderContainer.setOnClickListener(mFilterHeaderClickListener);
+        mAccountFilterHeader = getView().findViewById(R.id.account_filter_header_container);
+        mAccountFilterHeader.setOnClickListener(mFilterHeaderClickListener);
         updateFilterHeaderView();
     }
 
@@ -110,31 +102,18 @@
     }
 
     private void updateFilterHeaderView() {
-        if (mAccountFilterHeaderView != null) {
-            ContactListFilter filter = getFilter();
-            if (filter != null && !isSearchMode()) {
-                if (filter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
-                    mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
-                    mAccountFilterHeaderView.setText(getContext().getString(
-                            R.string.listSingleContact));
-                    mPaddingView.setVisibility(View.GONE);
-                    return;
-                } else if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
-                    mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
-                    mAccountFilterHeaderView.setText(getContext().getString(
-                            R.string.listCustomView));
-                    mPaddingView.setVisibility(View.GONE);
-                    return;
-                } else if (filter.filterType != ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
-                    mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
-                    mAccountFilterHeaderView.setText(getContext().getString(
-                            R.string.listAllContactsInAccount, filter.accountName));
-                    mPaddingView.setVisibility(View.GONE);
-                    return;
-                }
-            }
-            mAccountFilterHeaderContainer.setVisibility(View.GONE);
+        final ContactListFilter filter = getFilter();
+        if (mAccountFilterHeader == null || filter == null) {
+            return;
+        }
+        final boolean shouldShowHeader = AccountFilterUtil.updateAccountFilterTitleForPhone(
+                mAccountFilterHeader, filter, false, false);
+        if (shouldShowHeader) {
+            mPaddingView.setVisibility(View.GONE);
+            mAccountFilterHeader.setVisibility(View.VISIBLE);
+        } else {
             mPaddingView.setVisibility(View.VISIBLE);
+            mAccountFilterHeader.setVisibility(View.GONE);
         }
     }
 
@@ -233,7 +212,7 @@
 
     @Override
     protected View inflateView(LayoutInflater inflater, ViewGroup container) {
-        return inflater.inflate(R.layout.contacts_list_content, null);
+        return inflater.inflate(R.layout.contact_list_content, null);
     }
 
     public void pickPhoneNumber(Uri uri) {
@@ -257,6 +236,18 @@
         mListener.onPickPhoneNumberAction(data.getData());
     }
 
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == REQUEST_CODE_ACCOUNT_FILTER) {
+            if (getActivity() != null) {
+                AccountFilterUtil.handleAccountFilterResult(
+                        ContactListFilterController.getInstance(getActivity()), resultCode, data);
+            } else {
+                Log.e(TAG, "getActivity() returns null during Fragment#onActivityResult()");
+            }
+        }
+    }
+
     public ContactListFilter getFilter() {
         return mFilter;
     }
diff --git a/src/com/android/contacts/list/PostalAddressPickerFragment.java b/src/com/android/contacts/list/PostalAddressPickerFragment.java
index 5f7ca56..85fc155 100644
--- a/src/com/android/contacts/list/PostalAddressPickerFragment.java
+++ b/src/com/android/contacts/list/PostalAddressPickerFragment.java
@@ -70,7 +70,7 @@
 
     @Override
     protected View inflateView(LayoutInflater inflater, ViewGroup container) {
-        return inflater.inflate(R.layout.contacts_list_content, null);
+        return inflater.inflate(R.layout.contact_list_content, null);
     }
 
     private void pickPostalAddress(Uri uri) {
diff --git a/src/com/android/contacts/util/AccountFilterUtil.java b/src/com/android/contacts/util/AccountFilterUtil.java
new file mode 100644
index 0000000..955c195
--- /dev/null
+++ b/src/com/android/contacts/util/AccountFilterUtil.java
@@ -0,0 +1,165 @@
+/*
+ * 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.util;
+
+import com.android.contacts.R;
+import com.android.contacts.list.AccountFilterActivity;
+import com.android.contacts.list.ContactListFilter;
+import com.android.contacts.list.ContactListFilterController;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+import android.view.View;
+import android.widget.TextView;
+
+/**
+ * Utility class for account filter manipulation.
+ */
+public class AccountFilterUtil {
+    private static final String TAG = AccountFilterUtil.class.getSimpleName();
+
+    /**
+     * Find TextView with the id "account_filter_header" and set correct text for the account
+     * filter header.
+     *
+     * @param filterContainer View containing TextView with id "account_filter_header"
+     * @return true when header text is set in the call. You may use this for conditionally
+     * showing or hiding this entire view.
+     */
+    public static boolean updateAccountFilterTitleForPeople(View filterContainer,
+            ContactListFilter filter, boolean isLoading, boolean showTitleForAllAccounts) {
+        return updateAccountFilterTitle(
+                filterContainer, filter, isLoading, showTitleForAllAccounts, false);
+    }
+
+    /**
+     * Similar to {@link #updateAccountFilterTitleForPeople(View, ContactListFilter, boolean,
+     * boolean)}, but for Phone UI.
+     */
+    public static boolean updateAccountFilterTitleForPhone(View filterContainer,
+            ContactListFilter filter, boolean isLoading, boolean showTitleForAllAccounts) {
+        return updateAccountFilterTitle(
+                filterContainer, filter, isLoading, showTitleForAllAccounts, true);
+    }
+
+    private static boolean updateAccountFilterTitle(View filterContainer,
+            ContactListFilter filter, boolean isLoading, boolean showTitleForAllAccounts,
+            boolean forPhone) {
+        final Context context = filterContainer.getContext();
+        final TextView headerTextView = (TextView)
+                filterContainer.findViewById(R.id.account_filter_header);
+
+        boolean textWasSet = false;
+        if (isLoading) {
+            headerTextView.setText(R.string.contact_list_loading);
+        } else if (filter != null) {
+            if (forPhone) {
+                if (filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
+                    if (showTitleForAllAccounts) {
+                        headerTextView.setText(R.string.list_filter_phones);
+                        textWasSet = true;
+                    }
+                } else if (filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
+                    headerTextView.setText(context.getString(
+                            R.string.listAllContactsInAccount, filter.accountName));
+                    textWasSet = true;
+                } else if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
+                    headerTextView.setText(R.string.listCustomView);
+                    textWasSet = true;
+                } else {
+                    Log.w(TAG, "Filter type \"" + filter.filterType + "\" isn't expected.");
+                }
+            } else {
+                if (filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
+                    if (showTitleForAllAccounts) {
+                        headerTextView.setText(R.string.list_filter_all_accounts);
+                        textWasSet = true;
+                    }
+                } else if (filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
+                    headerTextView.setText(context.getString(
+                            R.string.listAllContactsInAccount, filter.accountName));
+                    textWasSet = true;
+                } else if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
+                    headerTextView.setText(R.string.listCustomView);
+                    textWasSet = true;
+                } else if (filter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
+                    headerTextView.setText(R.string.listSingleContact);
+                    textWasSet = true;
+                } else {
+                    Log.w(TAG, "Filter type \"" + filter.filterType + "\" isn't expected.");
+                }
+            }
+        } else {
+            Log.w(TAG, "Filter is null.");
+        }
+        return textWasSet;
+    }
+
+    /**
+     * Launches account filter setting Activity using
+     * {@link Activity#startActivityForResult(Intent, int)}.
+     *
+     * @param activity
+     * @param requestCode requestCode for {@link Activity#startActivityForResult(Intent, int)}
+     */
+    public static void startAccountFilterActivityForResult(
+            Activity activity, int requestCode) {
+        final Intent intent = new Intent(activity, AccountFilterActivity.class);
+        activity.startActivityForResult(intent, requestCode);
+    }
+
+    /**
+     * Very similar to {@link #startAccountFilterActivityForResult(Activity, int)} but uses
+     * Fragment instead.
+     */
+    public static void startAccountFilterActivityForResult(
+            Fragment fragment, int requestCode) {
+        final Activity activity = fragment.getActivity();
+        if (activity != null) {
+            final Intent intent = new Intent(activity, AccountFilterActivity.class);
+            fragment.startActivityForResult(intent, requestCode);
+        } else {
+            Log.w(TAG, "getActivity() returned null. Ignored");
+        }
+    }
+
+    /**
+     * Useful method to handle onActivityResult() for
+     * {@link #startAccountFilterActivityForResult(Activity, int)} or
+     * {@link #startAccountFilterActivityForResult(Fragment, int)}.
+     *
+     * This will update filter via a given ContactListFilterController.
+     */
+    public static void handleAccountFilterResult(
+            ContactListFilterController filterController, int resultCode, Intent data) {
+        if (resultCode == Activity.RESULT_OK) {
+            final ContactListFilter filter = (ContactListFilter)
+                    data.getParcelableExtra(AccountFilterActivity.KEY_EXTRA_CONTACT_LIST_FILTER);
+            if (filter == null) {
+                return;
+            }
+            if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
+                filterController.selectCustomFilter();
+            } else {
+                filterController.setContactListFilter(filter, true);
+            }
+        }
+    }
+}
\ No newline at end of file