diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0e28ae8..d18515e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -651,6 +651,7 @@
                 <data
                     android:scheme="content"
                     android:host="com.android.voicemail"
+                    android:mimeType="vnd.android.cursor.item/voicemail"
                 />
             </intent-filter>
             <intent-filter android:priority="100">
diff --git a/proguard.flags b/proguard.flags
index 5a08b9f..f4ec4b2 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -24,3 +24,9 @@
 -keep class ** {
   *** *ForTest(...);
 }
+
+# Any class or method annotated with NeededForTesting.
+-keep @com.android.contacts.test.NeededForTesting class *
+-keepclassmembers class * {
+@com.android.contacts.test.NeededForTesting *;
+}
diff --git a/res/layout-sw580dp-w1000dp/contact_detail_container.xml b/res/layout-sw580dp-w1000dp/contact_detail_container.xml
index 1d4ea35..6b1d094 100644
--- a/res/layout-sw580dp-w1000dp/contact_detail_container.xml
+++ b/res/layout-sw580dp-w1000dp/contact_detail_container.xml
@@ -35,7 +35,14 @@
         android:id="@+id/about_fragment_container"
         android:layout_width="0dip"
         android:layout_height="match_parent"
-        android:layout_weight="1" />
+        android:layout_weight="3" />
+
+    <!-- Vertical divider -->
+    <View
+        android:layout_width="2dip"
+        android:layout_height="match_parent"
+        android:background="?android:attr/listDivider"
+        />
 
     <!--
       Container for the "Updates" fragment on the contact card for a contact
@@ -44,7 +51,8 @@
     -->
     <FrameLayout
         android:id="@+id/updates_fragment_container"
-        android:layout_width="306dip"
+        android:layout_width="0dip"
+        android:layout_weight="2"
         android:layout_height="match_parent" />
 
 </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
index 11779cb..31d3ce1 100644
--- a/res/layout-sw580dp-w1000dp/group_detail_fragment.xml
+++ b/res/layout-sw580dp-w1000dp/group_detail_fragment.xml
@@ -27,21 +27,22 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingBottom="@dimen/group_detail_vertical_padding"
+        android:paddingTop="12dip"
+        android:paddingBottom="12dip"
         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:paddingLeft="@dimen/group_detail_border_padding"
-                android:paddingTop="@dimen/group_detail_vertical_padding"
+                android:paddingLeft="8dip"
                 android:textAppearance="?android:attr/textAppearanceLarge"
                 android:textStyle="bold" />
 
@@ -49,7 +50,7 @@
                 android:id="@+id/group_size"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:paddingLeft="@dimen/group_detail_border_padding"
+                android:paddingLeft="8dip"
                 android:textAppearance="?android:attr/textAppearanceMedium"
                 android:textColor="?android:attr/textColorSecondary" />
 
@@ -67,10 +68,9 @@
     <View
         android:layout_width="match_parent"
         android:layout_height="1dip"
-        android:background="?android:attr/listDivider"
-        android:layout_marginBottom="@dimen/group_detail_vertical_padding"
-        android:layout_marginLeft="@dimen/group_detail_divider_margin"
-        android:layout_marginRight="@dimen/group_detail_divider_margin" />
+        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"
diff --git a/res/layout-sw580dp-w1000dp/people_activity.xml b/res/layout-sw580dp-w1000dp/people_activity.xml
new file mode 100644
index 0000000..7d8d064
--- /dev/null
+++ b/res/layout-sw580dp-w1000dp/people_activity.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:ex="http://schemas.android.com/apk/res/com.android.contacts"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <com.android.contacts.widget.InterpolatingLayout
+        android:id="@+id/main_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:splitMotionEvents="true">
+
+        <LinearLayout
+            android:id="@+id/browse_view"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
+            android:minWidth="100dip"
+            ex:layout_narrowParentWidth="1000dip"
+            ex:layout_narrowWidth="276dip"
+            ex:layout_wideParentWidth="1280dip"
+            ex:layout_wideWidth="376dip"
+            android:background="@drawable/list_background_holo"
+            android:visibility="gone">
+
+            <!-- All -->
+            <fragment
+                android:id="@+id/all_fragment"
+                class="com.android.contacts.list.DefaultContactBrowseListFragment"
+                android:layout_height="0dip"
+                android:layout_width="match_parent"
+                android:layout_weight="1" />
+
+            <!-- Groups -->
+            <fragment
+                android:id="@+id/groups_fragment"
+                class="com.android.contacts.group.GroupBrowseListFragment"
+                android:layout_height="match_parent"
+                android:layout_width="match_parent" />
+        </LinearLayout>
+
+        <view
+            class="com.android.contacts.widget.TransitionAnimationView"
+            android:id="@+id/details_view"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            ex:layout_narrowParentWidth="800dip"
+            ex:layout_narrowMarginLeft="0dip"
+            ex:layout_narrowMarginRight="0dip"
+            ex:layout_wideParentWidth="1280dip"
+            ex:layout_wideMarginLeft="0dip"
+            ex:layout_wideMarginRight="0dip"
+            ex:clipMarginLeft="0dip"
+            ex:clipMarginTop="3dip"
+            ex:clipMarginRight="3dip"
+            ex:clipMarginBottom="9dip"
+            ex:enterAnimation="@android:animator/fade_in"
+            ex:exitAnimation="@android:animator/fade_out"
+            ex:animationDuration="200"
+            android:visibility="gone">
+
+            <!-- This layout includes all possible views needed for a contact detail page -->
+            <include
+                android:id="@+id/contact_detail_container"
+                layout="@layout/contact_detail_container"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"/>
+
+            <!-- This invisible worker fragment loads the contact's details -->
+            <fragment
+                android:id="@+id/contact_detail_loader_fragment"
+                class="com.android.contacts.detail.ContactLoaderFragment"
+                android:layout_height="0dip"
+                android:layout_width="0dip"
+                android:visibility="gone"/>
+
+            <!-- This is the group detail page -->
+            <fragment
+                android:id="@+id/group_detail_fragment"
+                class="com.android.contacts.group.GroupDetailFragment"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:visibility="gone" />
+        </view>
+
+        <view
+            class="com.android.contacts.widget.TransitionAnimationView"
+            android:id="@+id/favorites_view"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            ex:clipMarginLeft="0dip"
+            ex:clipMarginTop="3dip"
+            ex:clipMarginRight="3dip"
+            ex:clipMarginBottom="9dip"
+            ex:enterAnimation="@android:animator/fade_in"
+            ex:exitAnimation="@android:animator/fade_out"
+            ex:animationDuration="200">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="@drawable/list_background_holo">
+
+                <!-- Starred -->
+                <fragment
+                    android:id="@+id/favorites_fragment"
+                    class="com.android.contacts.list.ContactTileListFragment"
+                    android:layout_height="match_parent"
+                    style="@style/FavoritesFragmentStyle"
+                    android:layout_marginTop="32dip"
+                    android:layout_marginLeft="32dip"
+                    android:layout_marginRight="32dip" />
+
+                <!-- Most Frequent -->
+                <fragment
+                    android:id="@+id/frequent_fragment"
+                    class="com.android.contacts.list.ContactTileListFragment"
+                    style="@style/FrequentFragmentStyle"
+                    android:layout_height="match_parent"
+                    android:layout_marginTop="32dip"
+                    android:layout_marginRight="32dip"/>
+            </LinearLayout>
+        </view>
+
+    </com.android.contacts.widget.InterpolatingLayout>
+
+    <com.android.contacts.widget.InterpolatingLayout
+        android:id="@+id/contacts_unavailable_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:visibility="gone">
+
+        <FrameLayout
+            android:id="@+id/contacts_unavailable_container"
+            android:layout_height="match_parent"
+            android:layout_width="match_parent"
+            ex:layout_narrowParentWidth="800dip"
+            ex:layout_narrowMarginLeft="80dip"
+            ex:layout_narrowMarginRight="80dip"
+            ex:layout_wideParentWidth="1280dip"
+            ex:layout_wideMarginLeft="200dip"
+            ex:layout_wideMarginRight="200dip"
+            android:paddingBottom="20dip" />
+
+    </com.android.contacts.widget.InterpolatingLayout>
+</FrameLayout>
diff --git a/res/layout-sw580dp/group_detail_fragment.xml b/res/layout-sw580dp/group_detail_fragment.xml
index a7db154..c11337f 100644
--- a/res/layout-sw580dp/group_detail_fragment.xml
+++ b/res/layout-sw580dp/group_detail_fragment.xml
@@ -21,14 +21,16 @@
     android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:paddingLeft="@dimen/group_detail_border_padding"
+    android:paddingRight="@dimen/group_detail_border_padding"
     android:background="@drawable/panel_content">
 
     <TextView
         android:id="@+id/group_title"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingLeft="@dimen/group_detail_border_padding"
-        android:paddingTop="@dimen/group_detail_vertical_padding"
+        android:paddingLeft="8dip"
+        android:paddingTop="12dip"
         android:textAppearance="?android:attr/textAppearanceLarge"
         android:textStyle="bold" />
 
@@ -36,31 +38,25 @@
         android:id="@+id/group_size"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingLeft="@dimen/group_detail_border_padding"
+        android:paddingLeft="8dip"
         android:textAppearance="?android:attr/textAppearanceSmall"
         android:textColor="?android:attr/textColorTertiary" />
 
     <View
         android:layout_width="match_parent"
         android:layout_height="1dip"
-        android:background="?android:attr/listDivider"
-        android:layout_marginTop="@dimen/group_detail_vertical_padding"
-        android:layout_marginBottom="@dimen/group_detail_vertical_padding"
-        android:layout_marginLeft="@dimen/group_detail_divider_margin"
-        android:layout_marginRight="@dimen/group_detail_divider_margin" />
+        android:background="@color/people_app_theme_color"
+        android:layout_marginTop="12dip" />
 
     <FrameLayout
         android:id="@+id/group_source_view_container"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:paddingLeft="@dimen/group_detail_border_padding" />
+        android:layout_gravity="center_vertical" />
 
     <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:divider="@null" />
 
diff --git a/res/layout-sw580dp/people_activity.xml b/res/layout-sw580dp/people_activity.xml
index 8bf627f..35c11b1 100644
--- a/res/layout-sw580dp/people_activity.xml
+++ b/res/layout-sw580dp/people_activity.xml
@@ -20,23 +20,19 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <com.android.contacts.widget.InterpolatingLayout
+    <LinearLayout
         android:id="@+id/main_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_marginLeft="8dip"
+        android:orientation="horizontal"
         android:splitMotionEvents="true">
 
         <LinearLayout
             android:id="@+id/browse_view"
-            android:layout_width="wrap_content"
+            android:layout_width="0dip"
             android:layout_height="match_parent"
+            android:layout_weight="1"
             android:orientation="vertical"
-            android:minWidth="100dip"
-            ex:layout_narrowParentWidth="800dip"
-            ex:layout_narrowWidth="310dip"
-            ex:layout_wideParentWidth="1280dip"
-            ex:layout_wideWidth="430dip"
             android:background="@drawable/list_background_holo"
             android:visibility="gone">
 
@@ -59,14 +55,9 @@
         <view
             class="com.android.contacts.widget.TransitionAnimationView"
             android:id="@+id/details_view"
-            android:layout_width="match_parent"
+            android:layout_width="0dip"
             android:layout_height="match_parent"
-            ex:layout_narrowParentWidth="800dip"
-            ex:layout_narrowMarginLeft="0dip"
-            ex:layout_narrowMarginRight="0dip"
-            ex:layout_wideParentWidth="1280dip"
-            ex:layout_wideMarginLeft="0dip"
-            ex:layout_wideMarginRight="0dip"
+            android:layout_weight="1"
             ex:clipMarginLeft="0dip"
             ex:clipMarginTop="3dip"
             ex:clipMarginRight="3dip"
@@ -105,19 +96,13 @@
             android:id="@+id/favorites_view"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            ex:layout_narrowParentWidth="800dip"
-            ex:layout_narrowMarginRight="0dip"
-            ex:layout_wideParentWidth="1280dip"
-            ex:layout_wideMarginRight="48dip"
             ex:clipMarginLeft="0dip"
             ex:clipMarginTop="3dip"
             ex:clipMarginRight="3dip"
             ex:clipMarginBottom="9dip"
             ex:enterAnimation="@android:animator/fade_in"
             ex:exitAnimation="@android:animator/fade_out"
-            ex:animationDuration="200"
-            android:paddingTop="32dip"
-            android:paddingRight="32dip">
+            ex:animationDuration="200">
 
             <LinearLayout
                 android:layout_width="match_parent"
@@ -129,20 +114,23 @@
                     android:id="@+id/favorites_fragment"
                     class="com.android.contacts.list.ContactTileListFragment"
                     android:layout_height="match_parent"
-                    android:layout_width="0dip"
-                    android:layout_weight="2" />
+                    style="@style/FavoritesFragmentStyle"
+                    android:layout_marginTop="32dip"
+                    android:layout_marginLeft="32dip"
+                    android:layout_marginRight="32dip" />
 
                 <!-- Most Frequent -->
                 <fragment
                     android:id="@+id/frequent_fragment"
                     class="com.android.contacts.list.ContactTileListFragment"
+                    style="@style/FrequentFragmentStyle"
                     android:layout_height="match_parent"
-                    android:layout_width="0dip"
-                    android:layout_weight="1" />
+                    android:layout_marginTop="32dip"
+                    android:layout_marginRight="32dip"/>
             </LinearLayout>
         </view>
 
-    </com.android.contacts.widget.InterpolatingLayout>
+    </LinearLayout>
 
     <com.android.contacts.widget.InterpolatingLayout
         android:id="@+id/contacts_unavailable_view"
diff --git a/res/layout/call_log_list_item.xml b/res/layout/call_log_list_item.xml
index fbb8d41..f28bda1 100644
--- a/res/layout/call_log_list_item.xml
+++ b/res/layout/call_log_list_item.xml
@@ -14,8 +14,9 @@
      limitations under the License.
 -->
 
-<LinearLayout
+<view
     xmlns:android="http://schemas.android.com/apk/res/android"
+    class="com.android.contacts.calllog.CallLogListItemView"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:padding="@dimen/call_log_inner_margin"
@@ -154,4 +155,4 @@
         android:textStyle="bold"
         android:textColor="?attr/call_log_header_color"
     />
-</LinearLayout>
+</view>
diff --git a/res/layout/contact_detail_tab_carousel.xml b/res/layout/contact_detail_tab_carousel.xml
index fe167d1..fb60f17 100644
--- a/res/layout/contact_detail_tab_carousel.xml
+++ b/res/layout/contact_detail_tab_carousel.xml
@@ -28,10 +28,18 @@
         android:layout_height="match_parent"
         android:orientation="horizontal">
 
+        <!-- "About" tab -->
         <include
             android:id="@+id/tab_about"
             layout="@layout/carousel_about_tab" />
 
+        <!-- Vertical divider -->
+        <View
+            android:layout_width="2dip"
+            android:layout_height="match_parent"
+            android:background="@android:color/white"/>
+
+        <!-- "Updates" tab -->
         <include
             android:id="@+id/tab_update"
             layout="@layout/carousel_updates_tab" />
diff --git a/res/layout/playback_layout.xml b/res/layout/playback_layout.xml
index 05b3e43..83b1c01 100644
--- a/res/layout/playback_layout.xml
+++ b/res/layout/playback_layout.xml
@@ -18,28 +18,40 @@
             android:orientation="horizontal"
             android:layout_alignParentTop="true"
         >
-            <ImageButton
-                android:id="@+id/playback_start_stop"
-                android:layout_width="wrap_content"
+            <LinearLayout
+                android:layout_width="match_parent"
                 android:layout_height="58dip"
                 android:layout_marginRight="2dip"
                 android:background="@drawable/dialpad_background"
-                android:src="@drawable/ic_hold_pause_holo_dark"
                 android:layout_weight="1"
-            />
-            <ImageButton
-                android:id="@+id/playback_speakerphone"
-                android:layout_width="wrap_content"
+            >
+                <ImageButton
+                    android:id="@+id/playback_start_stop"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:background="@drawable/btn_dial"
+                    android:src="@drawable/ic_hold_pause_holo_dark"
+                />
+            </LinearLayout>
+            <LinearLayout
+                android:layout_width="match_parent"
                 android:layout_height="58dip"
                 android:layout_marginLeft="2dip"
                 android:background="@drawable/dialpad_background"
-                android:src="@drawable/ic_sound_holo_dark"
                 android:layout_weight="1"
-            />
+            >
+                <ImageButton
+                    android:id="@+id/playback_speakerphone"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:background="@drawable/btn_dial"
+                    android:src="@drawable/ic_sound_holo_dark"
+                />
+            </LinearLayout>
         </LinearLayout>
         <RelativeLayout
             android:id="@+id/seek_container"
-            android:layout_width="fill_parent"
+            android:layout_width="match_parent"
             android:layout_height="80dip"
             android:background="@drawable/dialpad_background"
             android:layout_below="@id/buttons_linear_layout"
@@ -52,7 +64,7 @@
                  difference is currently 10dip. -->
             <SeekBar
                 android:id="@+id/playback_seek"
-                android:layout_width="fill_parent"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:progressDrawable="@drawable/seekbar_drawable"
                 android:thumb="@drawable/seek_bar_thumb"
@@ -90,26 +102,22 @@
             <ImageButton
                 android:id="@+id/rate_decrease_button"
                 android:src="@drawable/ic_minus_holo_dark"
-                android:layout_width="wrap_content"
+                android:layout_width="64dip"
                 android:layout_height="wrap_content"
-                android:background="@android:color/transparent"
-                android:paddingLeft="16dip"
-                android:paddingRight="16dip"
-                android:paddingBottom="16dip"
-                android:paddingTop="26dip"
+                android:background="@drawable/btn_dial"
+                android:paddingBottom="19dip"
+                android:paddingTop="29dip"
                 android:layout_alignParentLeft="true"
                 android:layout_centerVertical="true"
             />
             <ImageButton
                 android:id="@+id/rate_increase_button"
                 android:src="@drawable/ic_plus_holo_dark"
-                android:layout_width="wrap_content"
+                android:layout_width="64dip"
                 android:layout_height="wrap_content"
-                android:background="@android:color/transparent"
-                android:paddingLeft="16dip"
-                android:paddingRight="16dip"
-                android:paddingBottom="16dip"
-                android:paddingTop="26dip"
+                android:background="@drawable/btn_dial"
+                android:paddingBottom="19dip"
+                android:paddingTop="29dip"
                 android:layout_alignParentRight="true"
                 android:layout_centerVertical="true"
             />
diff --git a/res/layout/stream_item_one_column.xml b/res/layout/stream_item_container.xml
similarity index 95%
rename from res/layout/stream_item_one_column.xml
rename to res/layout/stream_item_container.xml
index ecab57c..1f96aad 100644
--- a/res/layout/stream_item_one_column.xml
+++ b/res/layout/stream_item_container.xml
@@ -19,16 +19,16 @@
     android:layout_height="wrap_content"
     android:orientation="vertical">
 
-    <LinearLayout
+    <TableLayout
         android:id="@+id/stream_item_content"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:paddingTop="@dimen/detail_update_section_item_vertical_padding"
-        android:paddingBottom="@dimen/detail_update_section_item_vertical_padding"
+        android:paddingBottom="@dimen/detail_update_section_item_last_row_extra_vertical_padding"
         android:paddingLeft="@dimen/detail_update_section_item_horizontal_padding"
         android:paddingRight="@dimen/detail_update_section_item_horizontal_padding"
         android:background="@drawable/list_selector"
-        android:orientation="vertical" />
+        />
 
     <View
         android:id="@+id/horizontal_divider"
@@ -37,4 +37,5 @@
         android:layout_marginLeft="@dimen/detail_update_section_side_padding"
         android:layout_marginRight="@dimen/detail_update_section_side_padding"
         android:background="?android:attr/dividerHorizontal" />
+
 </LinearLayout>
diff --git a/res/layout/stream_item_pair.xml b/res/layout/stream_item_pair.xml
deleted file mode 100644
index 61b248c..0000000
--- a/res/layout/stream_item_pair.xml
+++ /dev/null
@@ -1,32 +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:orientation="horizontal"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <FrameLayout android:id="@+id/stream_pair_first"
-        android:layout_width="0dip"
-        android:layout_height="wrap_content"
-        android:layout_weight="1" />
-
-    <FrameLayout android:id="@+id/stream_pair_second"
-        android:paddingLeft="@dimen/detail_update_section_internal_padding"
-        android:layout_width="0dip"
-        android:layout_height="wrap_content"
-        android:layout_weight="1" />
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/stream_item_row_image_and_text.xml b/res/layout/stream_item_row_image_and_text.xml
new file mode 100644
index 0000000..b6f6599
--- /dev/null
+++ b/res/layout/stream_item_row_image_and_text.xml
@@ -0,0 +1,77 @@
+<?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.
+-->
+
+<TableRow
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:ex="http://schemas.android.com/apk/res/com.android.contacts"
+    android:paddingBottom="@dimen/detail_update_section_between_items_vertical_padding">
+
+    <view
+        class="com.android.contacts.widget.ProportionalLayout"
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_marginRight="@dimen/detail_update_section_between_items_horizontal_padding"
+        android:layout_weight="1"
+        ex:ratio="1"
+        ex:direction="widthToHeight">
+        <ImageView
+            android:id="@+id/stream_item_first_image"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"/>
+    </view>
+
+    <view
+        class="com.android.contacts.widget.ProportionalLayout"
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        ex:ratio="1"
+        ex:direction="widthToHeight">
+        <LinearLayout
+            android:id="@+id/stream_item_second_text"
+            android:orientation="vertical"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+            <TextView android:id="@+id/stream_item_html"
+                android:layout_width="match_parent"
+                android:layout_height="0dip"
+                android:layout_weight="1"
+                android:textSize="16sp"
+                android:textColor="?android:attr/textColorPrimary" />
+
+            <LinearLayout
+                android:orientation="horizontal"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content">
+                <TextView android:id="@+id/stream_item_attribution"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textAppearance="?android:attr/textAppearanceSmall"
+                    android:textColor="?android:attr/textColorSecondary" />
+
+                <TextView android:id="@+id/stream_item_comments"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/detail_update_section_attribution_comments_padding"
+                    android:textAppearance="?android:attr/textAppearanceSmall"
+                    android:textColor="?android:attr/textColorSecondary" />
+            </LinearLayout>
+
+        </LinearLayout>
+    </view>
+
+</TableRow>
diff --git a/res/layout/stream_item_text.xml b/res/layout/stream_item_row_text_only.xml
similarity index 76%
rename from res/layout/stream_item_text.xml
rename to res/layout/stream_item_row_text_only.xml
index 861d91f..d1d0efd 100644
--- a/res/layout/stream_item_text.xml
+++ b/res/layout/stream_item_row_text_only.xml
@@ -15,15 +15,16 @@
 -->
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:paddingBottom="@dimen/detail_update_section_between_items_vertical_padding">
 
     <TextView android:id="@+id/stream_item_html"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:textSize="16sp"
-        android:textColor="@color/social_update_text_color" />
+        android:textColor="?android:attr/textColorPrimary" />
 
     <LinearLayout
         android:orientation="horizontal"
@@ -33,14 +34,13 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textColor="@color/social_update_attribution_color" />
+            android:textColor="?android:attr/textColorSecondary" />
 
         <TextView android:id="@+id/stream_item_comments"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginLeft="4dip"
+            android:layout_marginLeft="@dimen/detail_update_section_attribution_comments_padding"
             android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textColor="@color/social_update_comments_color" />
+            android:textColor="?android:attr/textColorSecondary" />
     </LinearLayout>
-
 </LinearLayout>
diff --git a/res/layout/stream_item_row_two_images.xml b/res/layout/stream_item_row_two_images.xml
new file mode 100644
index 0000000..6e34b25
--- /dev/null
+++ b/res/layout/stream_item_row_two_images.xml
@@ -0,0 +1,49 @@
+<?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.
+-->
+
+<TableRow
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:ex="http://schemas.android.com/apk/res/com.android.contacts"
+    android:paddingBottom="@dimen/detail_update_section_between_items_vertical_padding">
+
+    <view
+        class="com.android.contacts.widget.ProportionalLayout"
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_marginRight="@dimen/detail_update_section_between_items_horizontal_padding"
+        android:layout_weight="1"
+        ex:ratio="1"
+        ex:direction="widthToHeight">
+        <ImageView
+            android:id="@+id/stream_item_first_image"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"/>
+    </view>
+
+    <view
+        class="com.android.contacts.widget.ProportionalLayout"
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        ex:ratio="1"
+        ex:direction="widthToHeight">
+        <ImageView
+            android:id="@+id/stream_item_second_image"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"/>
+    </view>
+
+</TableRow>
diff --git a/res/values-sw580dp-w1000dp/styles.xml b/res/values-sw580dp-w1000dp/styles.xml
new file mode 100644
index 0000000..85f4733
--- /dev/null
+++ b/res/values-sw580dp-w1000dp/styles.xml
@@ -0,0 +1,26 @@
+<?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.
+-->
+<resources>
+    <style name="FavoritesFragmentStyle">
+        <item name="android:layout_width">0dip</item>
+        <item name="android:layout_weight">7</item>
+    </style>
+
+    <style name="FrequentFragmentStyle">
+        <item name="android:layout_width">0dip</item>
+        <item name="android:layout_weight">3</item>
+    </style>
+</resources>
diff --git a/res/values-sw580dp/dimens.xml b/res/values-sw580dp/dimens.xml
index 40391d0..f7c0f05 100644
--- a/res/values-sw580dp/dimens.xml
+++ b/res/values-sw580dp/dimens.xml
@@ -33,6 +33,7 @@
     <dimen name="shortcut_icon_size">64dip</dimen>
     <dimen name="list_section_height">37dip</dimen>
     <dimen name="detail_update_section_item_vertical_padding">32dip</dimen>
+    <dimen name="detail_update_section_item_last_row_extra_vertical_padding">16dip</dimen>
     <dimen name="search_view_width">400dip</dimen>
     <!-- Center vertically -->
     <dimen name="quick_contact_top_position">-1px</dimen>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index a9d745f..0005484 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -31,12 +31,6 @@
 
     <color name="background_social_updates">#ffeeeeee</color>
 
-    <color name="social_update_text_color">#ff333333</color>
-
-    <color name="social_update_attribution_color">#ff777777</color>
-
-    <color name="social_update_comments_color">#ff777777</color>
-
     <!-- Color used for the letter in the A-Z section header -->
     <color name="section_header_text_color">#ff999999</color>
 
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 4da74b0..5bc8ea0 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -106,12 +106,28 @@
     <!-- Vertical padding above and below individual stream items -->
     <dimen name="detail_update_section_item_vertical_padding">16dip</dimen>
 
+    <!-- Vertical padding between rows of images in a single stream item -->
+    <dimen name="detail_update_section_between_items_vertical_padding">16dip</dimen>
+
+    <!-- The extra padding to be added at the end of last row in a stream items, i.e., the
+         difference between detail_update_section_item_vertical_padding and
+         detail_update_section_between_items_vertical_padding
+      -->
+    <dimen name="detail_update_section_item_last_row_extra_vertical_padding">0dip</dimen>
+
     <!-- Horizontal padding for individual stream items -->
     <dimen name="detail_update_section_item_horizontal_padding">24dip</dimen>
 
+    <!-- Horizontal padding between columns images and/or text in a single stream item -->
+    <dimen name="detail_update_section_between_items_horizontal_padding">16dip</dimen>
+
     <!-- Horizontal padding between content sections within a stream item -->
     <dimen name="detail_update_section_internal_padding">16dip</dimen>
 
+    <!-- Horizontal padding between attribution and comments -->
+    <dimen name="detail_update_section_attribution_comments_padding">4dip</dimen>
+
+
     <!-- Margin around the contact's photo on the contact card -->
     <dimen name="detail_contact_photo_margin">16dip</dimen>
 
@@ -173,14 +189,8 @@
     <!-- Size of group list icons -->
     <dimen name="group_list_icon_size">32dip</dimen>
 
-    <!-- Border padding for the group detail fragment header -->
-    <dimen name="group_detail_border_padding">20dip</dimen>
-
-    <!-- Vertical padding for the group detail fragment header -->
-    <dimen name="group_detail_vertical_padding">15dip</dimen>
-
-    <!-- Margins for the group detail fragment divider in the header -->
-    <dimen name="group_detail_divider_margin">15dip</dimen>
+    <!-- Border padding for the group detail fragment -->
+    <dimen name="group_detail_border_padding">32dip</dimen>
 
     <!-- Height of the member list in the group editor -->
     <dimen name="group_editor_member_list_height">550dip</dimen>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 423466f..6d4c4b2 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -301,6 +301,16 @@
         <item name="android:background">#7F000000</item>
     </style>
 
+    <style name="FavoritesFragmentStyle">
+        <item name="android:layout_width">0dip</item>
+        <item name="android:layout_weight">1</item>
+    </style>
+
+    <style name="FrequentFragmentStyle">
+        <item name="android:layout_width">0dip</item>
+        <item name="android:layout_weight">1</item>
+    </style>
+
     <style name="DialtactsActionBarStyle" parent="android:Widget.Holo.ActionBar">
         <item name="android:backgroundSplit">@drawable/ab_bottom_opaque_dark_holo</item>
         <item name="android:backgroundStacked">@drawable/ab_stacked_opaque_dark_holo</item>
diff --git a/src/com/android/contacts/calllog/CallLogFragment.java b/src/com/android/contacts/calllog/CallLogFragment.java
index c06b474..58dcc8b 100644
--- a/src/com/android/contacts/calllog/CallLogFragment.java
+++ b/src/com/android/contacts/calllog/CallLogFragment.java
@@ -857,7 +857,6 @@
         mVoiceMailNumber = ((TelephonyManager) getActivity().getSystemService(
                 Context.TELEPHONY_SERVICE)).getVoiceMailNumber();
         mCallLogQueryHandler = new CallLogQueryHandler(getActivity().getContentResolver(), this);
-
         setHasOptionsMenu(true);
     }
 
@@ -953,12 +952,22 @@
     @Override
     public void onPause() {
         super.onPause();
-
         // Kill the requests thread
         mAdapter.stopRequestProcessing();
     }
 
     @Override
+    public void onStop() {
+        super.onStop();
+        resetNewCallsFlag();
+        // Clear notifications only when window gains focus.  This activity won't
+        // immediately receive focus if the keyguard screen is above it.
+        if (getActivity().hasWindowFocus()) {
+            removeMissedCallNotifications();
+        }
+    }
+
+    @Override
     public void onDestroy() {
         super.onDestroy();
         mAdapter.stopRequestProcessing();
@@ -1147,7 +1156,6 @@
         // again once being shown.
         mAdapter.invalidateCache();
         startCallsQuery();
-        resetNewCallsFlag();
         startVoicemailStatusQuery();
         mAdapter.mPreDrawListener = null; // Let it restart the thread after next draw
         // Clear notifications only when window gains focus.  This activity won't
diff --git a/src/com/android/contacts/calllog/CallLogListItemView.java b/src/com/android/contacts/calllog/CallLogListItemView.java
new file mode 100644
index 0000000..584a7f2
--- /dev/null
+++ b/src/com/android/contacts/calllog/CallLogListItemView.java
@@ -0,0 +1,46 @@
+/*
+ * 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.calllog;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+
+/**
+ * An entry in the call log.
+ */
+public class CallLogListItemView extends LinearLayout {
+    public CallLogListItemView(Context context) {
+        super(context);
+    }
+
+    public CallLogListItemView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public CallLogListItemView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    @Override
+    public void requestLayout() {
+        // We will assume that once measured this will not need to resize
+        // itself, so there is no need to pass the layout request to the parent
+        // view (ListView).
+        forceLayout();
+    }
+}
diff --git a/src/com/android/contacts/calllog/CallTypeIconsView.java b/src/com/android/contacts/calllog/CallTypeIconsView.java
index 4fbe7d7..e0242c8 100644
--- a/src/com/android/contacts/calllog/CallTypeIconsView.java
+++ b/src/com/android/contacts/calllog/CallTypeIconsView.java
@@ -17,6 +17,7 @@
 package com.android.contacts.calllog;
 
 import com.android.contacts.R;
+import com.android.contacts.test.NeededForTesting;
 import com.google.common.collect.Lists;
 
 import android.content.Context;
@@ -64,10 +65,12 @@
         invalidate();
     }
 
+    @NeededForTesting
     public int getCount() {
         return mCallTypes.size();
     }
 
+    @NeededForTesting
     public int getCallType(int index) {
         return mCallTypes.get(index);
     }
diff --git a/src/com/android/contacts/calllog/ExtendedCursor.java b/src/com/android/contacts/calllog/ExtendedCursor.java
index b17c018..499a350 100644
--- a/src/com/android/contacts/calllog/ExtendedCursor.java
+++ b/src/com/android/contacts/calllog/ExtendedCursor.java
@@ -19,7 +19,9 @@
 import com.android.common.io.MoreCloseables;
 
 import android.database.AbstractCursor;
+import android.database.ContentObserver;
 import android.database.Cursor;
+import android.database.DataSetObserver;
 
 /**
  * Wraps a cursor to add an additional column with the same value for all rows.
@@ -129,4 +131,24 @@
         MoreCloseables.closeQuietly(mCursor);
         super.close();
     }
-}
\ No newline at end of file
+
+    @Override
+    public void registerContentObserver(ContentObserver observer) {
+        mCursor.registerContentObserver(observer);
+    }
+
+    @Override
+    public void unregisterContentObserver(ContentObserver observer) {
+        mCursor.unregisterContentObserver(observer);
+    }
+
+    @Override
+    public void registerDataSetObserver(DataSetObserver observer) {
+        mCursor.registerDataSetObserver(observer);
+    }
+
+    @Override
+    public void unregisterDataSetObserver(DataSetObserver observer) {
+        mCursor.unregisterDataSetObserver(observer);
+    }
+}
diff --git a/src/com/android/contacts/detail/ContactDetailDisplayUtils.java b/src/com/android/contacts/detail/ContactDetailDisplayUtils.java
index 3bff950..94150b3 100644
--- a/src/com/android/contacts/detail/ContactDetailDisplayUtils.java
+++ b/src/com/android/contacts/detail/ContactDetailDisplayUtils.java
@@ -60,7 +60,6 @@
  * {@link ContactLoader.Result} data object to appropriate {@link View}s.
  */
 public class ContactDetailDisplayUtils {
-
     private static final int PHOTO_FADE_IN_ANIMATION_DURATION_MILLIS = 100;
 
     private ContactDetailDisplayUtils() {
@@ -252,83 +251,68 @@
     /** Creates the view that represents a stream item. */
     public static View createStreamItemView(LayoutInflater inflater, Context context,
             StreamItemEntry streamItem, LinearLayout parent) {
-        View oneColumnView = inflater.inflate(R.layout.stream_item_one_column,
-                parent, false);
-        ViewGroup contentBox = (ViewGroup) oneColumnView.findViewById(R.id.stream_item_content);
-        int internalPadding = context.getResources().getDimensionPixelSize(
-                R.dimen.detail_update_section_internal_padding);
+        View container = inflater.inflate(R.layout.stream_item_container, parent, false);
+        ViewGroup contentTable = (ViewGroup) container.findViewById(R.id.stream_item_content);
 
-        // TODO: This is not the correct layout for a stream item with photos.  Photos should be
-        // displayed first, then the update text either to the right of the final image (if there
-        // are an odd number of images) or below the last row of images (if there are an even
-        // number of images).  Since this is designed as a two-column grid, we should also consider
-        // using a TableLayout instead of the series of nested LinearLayouts that we have now.
-        // See the Updates section of the Contacts Architecture document for details.
-
-        // If there are no photos, just display the text in a single column.
+        ContactPhotoManager contactPhotoManager = ContactPhotoManager.getInstance(context);
         List<StreamItemPhotoEntry> photos = streamItem.getPhotos();
-        if (photos.isEmpty()) {
-            addStreamItemText(inflater, context, streamItem, contentBox);
-        } else {
-            // If the first photo is square or portrait mode, show the text alongside it.
-            boolean isFirstPhotoAlongsideText = false;
-            StreamItemPhotoEntry firstPhoto = photos.get(0);
-            isFirstPhotoAlongsideText = firstPhoto.getHeight() >= firstPhoto.getWidth();
-            if (isFirstPhotoAlongsideText) {
-                View twoColumnView = inflater.inflate(R.layout.stream_item_pair, contentBox, false);
-                addStreamItemPhoto(inflater, context, firstPhoto,
-                        (ViewGroup) twoColumnView.findViewById(R.id.stream_pair_first));
-                addStreamItemText(inflater, context, streamItem,
-                        (ViewGroup) twoColumnView.findViewById(R.id.stream_pair_second));
-                contentBox.addView(twoColumnView);
-            } else {
-                // Just add the stream item text at the top of the entry.
-                addStreamItemText(inflater, context, streamItem, contentBox);
-            }
-            for (int i = isFirstPhotoAlongsideText ? 1 : 0; i < photos.size(); i++) {
-                StreamItemPhotoEntry photo = photos.get(i);
+        final int photoCount = photos.size();
 
-                // If the photo is landscape, show it at full-width.
-                if (photo.getWidth() > photo.getHeight()) {
-                    View photoView = addStreamItemPhoto(inflater, context, photo, contentBox);
-                    photoView.setPadding(0, internalPadding, 0, 0);
-                } else {
-                    // If this photo and the next are both square or portrait, show them as a pair.
-                    StreamItemPhotoEntry nextPhoto = i + 1 < photos.size()
-                            ? photos.get(i + 1) : null;
-                    if (nextPhoto != null && nextPhoto.getHeight() >= nextPhoto.getWidth()) {
-                        View twoColumnView = inflater.inflate(R.layout.stream_item_pair,
-                                contentBox, false);
-                        addStreamItemPhoto(inflater, context, photo,
-                                (ViewGroup) twoColumnView.findViewById(R.id.stream_pair_first));
-                        addStreamItemPhoto(inflater, context, nextPhoto,
-                                (ViewGroup) twoColumnView.findViewById(R.id.stream_pair_second));
-                        twoColumnView.setPadding(0, internalPadding, 0, 0);
-                        contentBox.addView(twoColumnView);
-                        i++;
-                    } else {
-                        View photoView = addStreamItemPhoto(inflater, context, photo, contentBox);
-                        photoView.setPadding(0, internalPadding, 0, 0);
-                    }
-                }
+        // Process the photos, two at a time.
+        for (int index = 0; index < photoCount; index += 2) {
+            final StreamItemPhotoEntry firstPhoto = photos.get(index);
+            if (index + 1 < photoCount) {
+                // Put in two photos, side by side.
+                final StreamItemPhotoEntry secondPhoto = photos.get(index + 1);
+
+                View photoContainer = inflater.inflate(R.layout.stream_item_row_two_images,
+                        contentTable, false);
+                loadPhoto(contactPhotoManager, firstPhoto, photoContainer,
+                        R.id.stream_item_first_image);
+                loadPhoto(contactPhotoManager, secondPhoto, photoContainer,
+                        R.id.stream_item_second_image);
+                contentTable.addView(photoContainer);
+            } else {
+                // Put in a single photo with text on the side.
+                View photoContainer = inflater.inflate(
+                        R.layout.stream_item_row_image_and_text, contentTable, false);
+                loadPhoto(contactPhotoManager, firstPhoto, photoContainer,
+                        R.id.stream_item_first_image);
+                addStreamItemText(context, streamItem,
+                        photoContainer.findViewById(R.id.stream_item_second_text));
+                contentTable.addView(photoContainer);
             }
         }
 
+        if (photoCount % 2 == 0) {
+            // Even number of photos, add the text below them. Otherwise, it should have been
+            // already added next to the last photo.
+            View textContainer = inflater.inflate(R.layout.stream_item_row_text_only, contentTable,
+                    false);
+            addStreamItemText(context, streamItem, textContainer);
+            contentTable.addView(textContainer);
+        }
+
         if (parent != null) {
-            parent.addView(oneColumnView);
+            parent.addView(container);
         }
 
-        return oneColumnView;
+        return container;
+    }
+
+    /** Loads a photo into an image view. The image view is identifiedc by the given id. */
+    private static void loadPhoto(ContactPhotoManager contactPhotoManager,
+            final StreamItemPhotoEntry firstPhoto, View photoContainer, int imageViewId) {
+        ImageView firstImageView = (ImageView) photoContainer.findViewById(imageViewId);
+        contactPhotoManager.loadPhoto(firstImageView, Uri.parse(firstPhoto.getPhotoUri()));
     }
 
     @VisibleForTesting
-    static View addStreamItemText(LayoutInflater inflater, Context context,
-            StreamItemEntry streamItem, ViewGroup parent) {
-        View textUpdate = inflater.inflate(R.layout.stream_item_text, parent, false);
-        TextView htmlView = (TextView) textUpdate.findViewById(R.id.stream_item_html);
-        TextView attributionView = (TextView) textUpdate.findViewById(
+    static View addStreamItemText(Context context, StreamItemEntry streamItem, View rootView) {
+        TextView htmlView = (TextView) rootView.findViewById(R.id.stream_item_html);
+        TextView attributionView = (TextView) rootView.findViewById(
                 R.id.stream_item_attribution);
-        TextView commentsView = (TextView) textUpdate.findViewById(R.id.stream_item_comments);
+        TextView commentsView = (TextView) rootView.findViewById(R.id.stream_item_comments);
         htmlView.setText(Html.fromHtml(streamItem.getText()));
         attributionView.setText(ContactBadgeUtil.getSocialDate(streamItem, context));
         if (streamItem.getComments() != null) {
@@ -337,19 +321,7 @@
         } else {
             commentsView.setVisibility(View.GONE);
         }
-        if (parent != null) {
-            parent.addView(textUpdate);
-        }
-        return textUpdate;
-    }
-
-    private static View addStreamItemPhoto(LayoutInflater inflater, Context context,
-            StreamItemPhotoEntry streamItemPhoto, ViewGroup parent) {
-        ImageView image = new ImageView(context);
-        ContactPhotoManager.getInstance(context).loadPhoto(
-                image, Uri.parse(streamItemPhoto.getPhotoUri()));
-        parent.addView(image);
-        return image;
+        return rootView;
     }
 
     /**
diff --git a/src/com/android/contacts/detail/ContactDetailFragment.java b/src/com/android/contacts/detail/ContactDetailFragment.java
index 383f23b..47617d3 100644
--- a/src/com/android/contacts/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/detail/ContactDetailFragment.java
@@ -118,7 +118,7 @@
 import java.util.Map;
 
 public class ContactDetailFragment extends Fragment implements FragmentKeyListener, ViewOverlay,
-        SelectAccountDialogFragment.Listener {
+        SelectAccountDialogFragment.Listener, OnItemClickListener {
 
     private static final String TAG = "ContactDetailFragment";
 
@@ -279,6 +279,7 @@
 
         mListView = (ListView) mView.findViewById(android.R.id.list);
         mListView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
+        mListView.setOnItemClickListener(this);
         mListView.setItemsCanFocus(true);
         mListView.setOnScrollListener(mVerticalScrollListener);
 
@@ -1709,6 +1710,21 @@
         }
     }
 
+    /**
+     * Default (fallback) list item click listener.  Note the click event for DetailViewEntry is
+     * caught by individual views in the list item view to distinguish the primary action and the
+     * secondary action, so this method won't be invoked for that.  (The listener is set in the
+     * bindview in the adapter)
+     * This listener is used for other kind of entries.
+     */
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        if (mListener == null) return;
+        final ViewEntry entry = mAdapter.getItem(position);
+        if (entry == null) return;
+        entry.click(view, mListener);
+    }
+
     @Override
     public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) {
         super.onCreateContextMenu(menu, view, menuInfo);
diff --git a/src/com/android/contacts/test/NeededForTesting.java b/src/com/android/contacts/test/NeededForTesting.java
new file mode 100644
index 0000000..f40fe2c
--- /dev/null
+++ b/src/com/android/contacts/test/NeededForTesting.java
@@ -0,0 +1,30 @@
+/*
+ * 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.test;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Denotes that the class, constructor, method or field is used by tests and therefore cannot be
+ * removed by tools like ProGuard.
+ */
+@Retention(RetentionPolicy.CLASS)
+@Target({ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.FIELD})
+public @interface NeededForTesting {}
diff --git a/src/com/android/contacts/util/ExpirableCache.java b/src/com/android/contacts/util/ExpirableCache.java
index 0ee3bbe..196b03a 100644
--- a/src/com/android/contacts/util/ExpirableCache.java
+++ b/src/com/android/contacts/util/ExpirableCache.java
@@ -16,6 +16,8 @@
 
 package com.android.contacts.util;
 
+import com.android.contacts.test.NeededForTesting;
+
 import android.util.LruCache;
 
 import java.util.concurrent.atomic.AtomicInteger;
@@ -198,6 +200,7 @@
      *
      * @param key the key to look up
      */
+    @NeededForTesting
     public V get(K key) {
         CachedValue<V> cachedValue = getCachedValue(key);
         return cachedValue == null || cachedValue.isExpired() ? null : cachedValue.getValue();
diff --git a/src/com/android/contacts/util/StreamItemEntry.java b/src/com/android/contacts/util/StreamItemEntry.java
index dc54229..db15e3a 100644
--- a/src/com/android/contacts/util/StreamItemEntry.java
+++ b/src/com/android/contacts/util/StreamItemEntry.java
@@ -16,6 +16,8 @@
 
 package com.android.contacts.util;
 
+import com.android.contacts.test.NeededForTesting;
+
 import android.database.Cursor;
 import android.provider.ContactsContract.StreamItems;
 
@@ -46,6 +48,7 @@
     // Photos associated with this stream item.
     private List<StreamItemPhotoEntry> mPhotos;
 
+    @NeededForTesting
     public StreamItemEntry(long id, String text, String comments, long timestamp, String action,
             String actionUri, String resPackage, int iconRes, int labelRes) {
         mId = id;
diff --git a/tests/src/com/android/contacts/detail/ContactDetailDisplayUtilsTest.java b/tests/src/com/android/contacts/detail/ContactDetailDisplayUtilsTest.java
index aebb8c2..487eec9 100644
--- a/tests/src/com/android/contacts/detail/ContactDetailDisplayUtilsTest.java
+++ b/tests/src/com/android/contacts/detail/ContactDetailDisplayUtilsTest.java
@@ -27,7 +27,6 @@
 import android.text.Spanned;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.TextView;
 
 /**
@@ -105,11 +104,11 @@
 
     /**
      * Calls {@link ContactDetailDisplayUtils#addStreamItemText(LayoutInflater, Context,
-     * StreamItemEntry, ViewGroup)} with the default parameters and the given stream item.
+     * StreamItemEntry, View)} with the default parameters and the given stream item.
      */
     private View addStreamItemText(StreamItemEntry streamItem) {
-        return ContactDetailDisplayUtils.addStreamItemText(
-                mLayoutInflater, getContext(), streamItem, null);
+        return ContactDetailDisplayUtils.addStreamItemText(getContext(), streamItem,
+                mLayoutInflater.inflate(R.layout.stream_item_row_text_only, null));
     }
 
     private StreamItemEntryBuilder getTestBuilder() {
