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;