Properly restoring contact filter title from shared prefs
Change-Id: Ifb7f4b2cd1b021a16d7c87eb8a372989027c2857
diff --git a/src/com/android/contacts/list/ContactListFilterController.java b/src/com/android/contacts/list/ContactListFilterController.java
index 8bcd488..2ae3b36 100644
--- a/src/com/android/contacts/list/ContactListFilterController.java
+++ b/src/com/android/contacts/list/ContactListFilterController.java
@@ -176,7 +176,12 @@
mFilters.append(mNextFilterId++, filter);
mFilterList.add(filter);
- filterValid |= filter.equals(mFilter);
+
+ if (filter.equals(mFilter)) {
+ // Refresh the filter in case the title got changed
+ mFilter = filter;
+ filterValid = true;
+ }
if (firstAndOnly) {
mFilters.append(mNextFilterId++,
diff --git a/src/com/android/contacts/list/ContactListFilterView.java b/src/com/android/contacts/list/ContactListFilterView.java
index c9a0472..ecd0196 100644
--- a/src/com/android/contacts/list/ContactListFilterView.java
+++ b/src/com/android/contacts/list/ContactListFilterView.java
@@ -66,41 +66,18 @@
switch (mFilter.filterType) {
case ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS: {
- if (mIcon != null) {
- mIcon.setVisibility(View.VISIBLE);
- mIcon.setImageResource(R.drawable.ic_contact_list_filter_all);
- }
- mLabel.setText(R.string.list_filter_all_accounts);
- mLabel.setVisibility(View.VISIBLE);
- if (dropdown) {
- mIndentedLabel.setVisibility(View.GONE);
- }
+ bindView(R.drawable.ic_contact_list_filter_all,
+ R.string.list_filter_all_accounts);
break;
}
case ContactListFilter.FILTER_TYPE_STARRED: {
- if (mIcon != null) {
- mIcon.setVisibility(View.VISIBLE);
- mIcon.setImageResource(R.drawable.ic_contact_list_filter_starred);
- }
- mLabel.setText(R.string.list_filter_all_starred);
- mLabel.setVisibility(View.VISIBLE);
- if (dropdown) {
- mIndentedLabel.setVisibility(View.GONE);
- }
+ bindView(R.drawable.ic_contact_list_filter_starred,
+ R.string.list_filter_all_starred);
break;
}
case ContactListFilter.FILTER_TYPE_CUSTOM: {
- if (mIcon != null) {
- mIcon.setVisibility(View.VISIBLE);
- mIcon.setImageResource(R.drawable.ic_contact_list_filter_custom);
- }
- mLabel.setText(dropdown
- ? R.string.list_filter_customize
- : R.string.list_filter_custom);
- mLabel.setVisibility(View.VISIBLE);
- if (dropdown) {
- mIndentedLabel.setVisibility(View.GONE);
- }
+ bindView(R.drawable.ic_contact_list_filter_custom,
+ dropdown ? R.string.list_filter_customize : R.string.list_filter_custom);
break;
}
case ContactListFilter.FILTER_TYPE_ACCOUNT: {
@@ -135,4 +112,22 @@
}
}
}
+
+ private void bindView(int iconResource, int textResource) {
+ if (mIcon != null) {
+ if (iconResource != 0) {
+ mIcon.setVisibility(View.VISIBLE);
+ mIcon.setImageResource(iconResource);
+ } else {
+ mIcon.setVisibility(View.GONE);
+ }
+ }
+
+ mLabel.setText(textResource);
+ mLabel.setVisibility(View.VISIBLE);
+
+ if (mIndentedLabel != null) {
+ mIndentedLabel.setVisibility(View.GONE);
+ }
+ }
}