Merge "Use the older way to cope with onInvalidSelection()"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index af87ffd..113df61 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -360,6 +360,9 @@
<!-- Displayed at the top of the contacts showing the account filter selected [CHAR LIMIT=64] -->
<string name="listAllContactsInAccount">Contacts in <xliff:g id="name" example="abc@gmail.com">%s</xliff:g></string>
+ <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
+ <string name="listSingleContact">Single contact</string>
+
<!-- Displayed at the top of the contacts showing the total number of contacts found when "Only contacts with phones" not selected -->
<plurals name="listFoundAllContacts">
<item quantity="one">1 found</item>
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 19964a1..a03f83f 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -1026,11 +1026,18 @@
@Override
public void onInvalidSelection() {
- Toast.makeText(PeopleActivity.this, R.string.toast_displaying_all_contacts,
- Toast.LENGTH_LONG).show();
- ContactListFilter filter = ContactListFilter.createFilterWithType(
- ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
- mAllFragment.setFilter(filter);
+ ContactListFilter filter;
+ ContactListFilter currentFilter = mAllFragment.getFilter();
+ if (currentFilter != null
+ && currentFilter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
+ filter = ContactListFilter.createFilterWithType(
+ ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
+ mAllFragment.setFilter(filter);
+ } else {
+ filter = ContactListFilter.createFilterWithType(
+ ContactListFilter.FILTER_TYPE_SINGLE_CONTACT);
+ mAllFragment.setFilter(filter, false);
+ }
mContactListFilterController.setContactListFilter(filter, true);
}
}
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index ca07516..123ef0e 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -125,11 +125,19 @@
if (mAccountFilterHeaderView == null) {
return; // Before onCreateView -- just ignore it.
}
- if (filter != null && filter.filterType != ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS &&
- !isSearchMode() && filter.filterType != ContactListFilter.FILTER_TYPE_CUSTOM) {
- mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
- mAccountFilterHeaderView.setText(getContext().getString(
- R.string.listAllContactsInAccount, filter.accountName));
+ if (filter != null && !isSearchMode()) {
+ if (filter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
+ mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
+ mAccountFilterHeaderView.setText(getContext().getString(
+ R.string.listSingleContact));
+ } else if (filter.filterType != ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
+ && filter.filterType != ContactListFilter.FILTER_TYPE_CUSTOM) {
+ mAccountFilterHeaderContainer.setVisibility(View.VISIBLE);
+ mAccountFilterHeaderView.setText(getContext().getString(
+ R.string.listAllContactsInAccount, filter.accountName));
+ } else {
+ mAccountFilterHeaderContainer.setVisibility(View.GONE);
+ }
} else {
mAccountFilterHeaderContainer.setVisibility(View.GONE);
}