Merge "Show group headers correctly"
diff --git a/res/layout/group_browse_list_account_header.xml b/res/layout/group_browse_list_account_header.xml
index da6b960..36c6d7a 100644
--- a/res/layout/group_browse_list_account_header.xml
+++ b/res/layout/group_browse_list_account_header.xml
@@ -18,14 +18,20 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginRight="?attr/list_item_padding_right"
- android:minHeight="?attr/list_item_header_height"
android:orientation="vertical">
+ <!-- Only visible when it is the first element in the list. -->
+ <View
+ android:id="@+id/header_extra_top_padding"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/contact_browser_list_top_margin" />
+
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingLeft="?attr/list_item_header_text_indent"
+ android:minHeight="?attr/list_item_header_height"
+ android:paddingLeft="?attr/list_item_padding_left"
+ android:paddingRight="?attr/list_item_padding_right"
android:orientation="horizontal">
<TextView
@@ -33,6 +39,8 @@
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="1"
+ android:layout_gravity="center_vertical"
+ android:paddingLeft="?attr/list_item_header_text_indent"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/people_app_theme_color"
android:textStyle="bold"
diff --git a/res/layout/group_browse_list_fragment.xml b/res/layout/group_browse_list_fragment.xml
index 0d8d4f3..eea7ab0 100644
--- a/res/layout/group_browse_list_fragment.xml
+++ b/res/layout/group_browse_list_fragment.xml
@@ -26,7 +26,6 @@
class="com.android.contacts.widget.AutoScrollListView"
android:layout_width="match_parent"
android:layout_height="0dip"
- android:paddingTop="@dimen/contact_browser_list_top_margin"
android:paddingLeft="16dip"
android:paddingRight="16dip"
android:scrollbarStyle="outsideOverlay"
diff --git a/src/com/android/contacts/group/GroupBrowseListAdapter.java b/src/com/android/contacts/group/GroupBrowseListAdapter.java
index 63a5d2c..8affab3 100644
--- a/src/com/android/contacts/group/GroupBrowseListAdapter.java
+++ b/src/com/android/contacts/group/GroupBrowseListAdapter.java
@@ -164,9 +164,20 @@
bindHeaderView(entry, viewCache);
viewCache.accountHeader.setVisibility(View.VISIBLE);
viewCache.divider.setVisibility(View.GONE);
+ if (position == 0) {
+ // Have the list's top padding in the first header.
+ //
+ // This allows the ListView to show correct fading effect on top.
+ // If we have topPadding in the ListView itself, an inappropriate padding is
+ // inserted between fading items and the top edge.
+ viewCache.accountHeaderExtraTopPadding.setVisibility(View.VISIBLE);
+ } else {
+ viewCache.accountHeaderExtraTopPadding.setVisibility(View.GONE);
+ }
} else {
viewCache.accountHeader.setVisibility(View.GONE);
viewCache.divider.setVisibility(View.VISIBLE);
+ viewCache.accountHeaderExtraTopPadding.setVisibility(View.GONE);
}
// Bind the group data
@@ -205,6 +216,7 @@
public final TextView groupTitle;
public final TextView groupMemberCount;
public final View accountHeader;
+ public final View accountHeaderExtraTopPadding;
public final View divider;
private Uri mUri;
@@ -214,6 +226,7 @@
groupTitle = (TextView) view.findViewById(R.id.label);
groupMemberCount = (TextView) view.findViewById(R.id.count);
accountHeader = view.findViewById(R.id.group_list_header);
+ accountHeaderExtraTopPadding = view.findViewById(R.id.header_extra_top_padding);
divider = view.findViewById(R.id.divider);
}