Merge "Improve contact detail header, especially portrait (and large) mode"
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
index 778bec6..a01a9d9 100644
--- a/src/com/android/contacts/activities/ActionBarAdapter.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -174,9 +174,9 @@
                 mFilterController.setEnabled(true);
                 if (mFilterController.isLoaded()) {
                     mFilterView.setContactListFilter(mFilterController.getFilter());
-                    mFilterView.setMultipleAccounts(mFilterController.getAccountCount() > 1);
+                    mFilterView.setSingleAccount(mFilterController.getAccountCount() == 1);
                     mFilterView.bindView(false);
-                    showIndicator = mFilterController.getFilterList().size() > 1;
+                    showIndicator = mFilterController.getFilterCount() > 1;
                 }
             }
             mFilterIndicator.setVisibility(showIndicator ? View.VISIBLE : View.INVISIBLE);
diff --git a/src/com/android/contacts/list/ContactListFilterController.java b/src/com/android/contacts/list/ContactListFilterController.java
index 0eae79f..b9e3c59 100644
--- a/src/com/android/contacts/list/ContactListFilterController.java
+++ b/src/com/android/contacts/list/ContactListFilterController.java
@@ -69,7 +69,6 @@
     private ListPopupWindow mPopup;
     private int mPopupWidth = -1;
     private SparseArray<ContactListFilter> mFilters;
-    private ArrayList<ContactListFilter> mFilterList;
     private int mNextFilterId = 1;
     private View mAnchor;
     private FilterListAdapter mFilterListAdapter;
@@ -113,8 +112,8 @@
         return mFilter;
     }
 
-    public List<ContactListFilter> getFilterList() {
-        return mFilterList;
+    public int getFilterCount() {
+        return mFilters != null ? mFilters.size() : 0;
     }
 
     public boolean isLoaded() {
@@ -148,10 +147,8 @@
             Loader<List<ContactListFilter>> loader, List<ContactListFilter> filters) {
         if (mFilters == null) {
             mFilters = new SparseArray<ContactListFilter>(filters.size());
-            mFilterList = new ArrayList<ContactListFilter>();
         } else {
             mFilters.clear();
-            mFilterList.clear();
         }
 
         boolean filterValid = mFilter != null && !mFilter.isValidationRequired();
@@ -164,7 +161,7 @@
             }
         }
 
-        if (mAccountCount > 1) {
+        if (mAccountCount != 1) {
             mFilters.append(mNextFilterId++,
                     new ContactListFilter(ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS));
             mFilters.append(mNextFilterId++,
@@ -183,7 +180,6 @@
             }
 
             mFilters.append(mNextFilterId++, filter);
-            mFilterList.add(filter);
 
             if (filter.equals(mFilter)) {
                 // Refresh the filter in case the title got changed
@@ -357,7 +353,7 @@
                 view = (ContactListFilterView) mLayoutInflater.inflate(
                         R.layout.filter_spinner_item, parent, false);
             }
-            view.setMultipleAccounts(mAccountCount > 1);
+            view.setSingleAccount(mAccountCount == 1);
             view.setContactListFilter(mFilters.valueAt(position));
             view.bindView(true);
             return view;
diff --git a/src/com/android/contacts/list/ContactListFilterView.java b/src/com/android/contacts/list/ContactListFilterView.java
index 0a638ae..0f2bbeb 100644
--- a/src/com/android/contacts/list/ContactListFilterView.java
+++ b/src/com/android/contacts/list/ContactListFilterView.java
@@ -35,7 +35,7 @@
     private View mIndent;
     private View mGroupView;
     private ContactListFilter mFilter;
-    private boolean mMultipleAccounts;
+    private boolean mSingleAccount;
     private TextView mGroupLabel;
     private TextView mAccountLabel;
 
@@ -55,8 +55,8 @@
         return mFilter;
     }
 
-    public void setMultipleAccounts(boolean flag) {
-        this.mMultipleAccounts = flag;
+    public void setSingleAccount(boolean flag) {
+        this.mSingleAccount = flag;
     }
 
     public void bindView(boolean dropdown) {
@@ -75,7 +75,7 @@
         }
 
         if (!dropdown) {
-            if (mFilter.filterType == ContactListFilter.FILTER_TYPE_GROUP && mMultipleAccounts) {
+            if (mFilter.filterType == ContactListFilter.FILTER_TYPE_GROUP && !mSingleAccount) {
                 mLabel.setVisibility(View.GONE);
                 mGroupView.setVisibility(View.VISIBLE);
             } else {
@@ -129,13 +129,13 @@
                 mIcon.setImageResource(R.drawable.ic_menu_display_all_holo_light);
                 if (dropdown) {
                     mLabel.setText(mFilter.title);
-                    mIndent.setVisibility(mMultipleAccounts ? View.VISIBLE : View.GONE);
+                    mIndent.setVisibility(mSingleAccount ? View.GONE : View.VISIBLE);
                 } else {
-                    if (mMultipleAccounts) {
+                    if (mSingleAccount) {
+                        mLabel.setText(mFilter.title);
+                    } else {
                         mGroupLabel.setText(mFilter.title);
                         mAccountLabel.setText(mFilter.accountName);
-                    } else {
-                        mLabel.setText(mFilter.title);
                     }
                 }
                 break;