Add a "No contacts" description to PhoneFavoriteFragment
Add an additional "No contacts" view to the sub-header view
returned by PhoneFavoriteMergedAdapter. This is required because
the empty view functionality provided by a simple list view does
not work because PhoneFavoriteMergedAdapter is a combination of
two adapters. This "No contacts" view provides the illusion of
an empty view for the 2nd adapter that displays all contacts
without phone numbers, even if the first adapter does contain
contacts.
Bug: 5522729
Change-Id: I7dcc4cd7b4b2b28fefea4be384de40318654e165
diff --git a/res/layout/account_filter_header_for_phone_favorite.xml b/res/layout/account_filter_header_for_phone_favorite.xml
index 6f1d23d..d7afaac 100644
--- a/res/layout/account_filter_header_for_phone_favorite.xml
+++ b/res/layout/account_filter_header_for_phone_favorite.xml
@@ -33,4 +33,15 @@
android:id="@+id/account_filter_header"
style="@style/ContactListSeparatorTextViewStyle"
android:paddingLeft="@dimen/contact_browser_list_item_text_indent" />
+ <TextView
+ android:id="@+id/contact_list_all_empty"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textColor="?android:attr/textColorSecondary"
+ android:paddingLeft="8dip"
+ android:paddingTop="@dimen/contact_phone_list_empty_description_padding"
+ android:paddingBottom="@dimen/contact_phone_list_empty_description_padding"
+ android:textSize="@dimen/contact_phone_list_empty_description_size"
+ android:text="@string/listFoundAllContactsZero"
+ android:visibility="gone"/>
</LinearLayout>
diff --git a/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java b/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java
index aa5ded5..ba291a0 100644
--- a/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java
+++ b/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java
@@ -218,6 +218,12 @@
mAccountFilterHeaderContainer.getPaddingTop(),
mItemPaddingRight,
mAccountFilterHeaderContainer.getPaddingBottom());
+
+ // Show a single "No Contacts" label under the "all" section account header
+ // if no contacts are displayed.
+ mAccountFilterHeaderContainer.findViewById(
+ R.id.contact_list_all_empty).setVisibility(
+ contactEntryListAdapterCount == 0 ? View.VISIBLE : View.GONE);
return mAccountFilterHeaderContainer;
} else { // For "all" section
if (mContactEntryListAdapter.isLoading()) { // "All" section is being loaded.