Merge "Use custom filter when filter isn't saved"
diff --git a/res/values-sw580dp-w720dp/styles.xml b/res/values-sw580dp-w720dp/styles.xml
index e386bda..f3a3759 100644
--- a/res/values-sw580dp-w720dp/styles.xml
+++ b/res/values-sw580dp-w720dp/styles.xml
@@ -43,7 +43,6 @@
<item name="list_item_header_underline_height">1dip</item>
<item name="list_item_contacts_count_text_color">@color/contact_count_text_color</item>
<item name="list_item_contacts_count_text_size">12sp</item>
- <item name="contact_filter_popup_width">320dip</item>
<item name="contact_browser_list_padding_left">0dip</item>
<item name="contact_browser_list_padding_right">0dip</item>
<item name="contact_browser_background">@android:color/transparent</item>
diff --git a/res/values-sw580dp/styles.xml b/res/values-sw580dp/styles.xml
index 9244faa..5a28bf6 100644
--- a/res/values-sw580dp/styles.xml
+++ b/res/values-sw580dp/styles.xml
@@ -43,7 +43,6 @@
<item name="list_item_header_underline_height">1dip</item>
<item name="list_item_contacts_count_text_color">@color/contact_count_text_color</item>
<item name="list_item_contacts_count_text_size">12sp</item>
- <item name="contact_filter_popup_width">320dip</item>
<item name="contact_browser_list_padding_left">0dip</item>
<item name="contact_browser_list_padding_right">0dip</item>
<item name="contact_browser_background">@android:color/transparent</item>
@@ -75,7 +74,6 @@
<item name="list_item_header_underline_height">1dip</item>
<item name="list_item_contacts_count_text_color">@color/contact_count_text_color</item>
<item name="list_item_contacts_count_text_size">12sp</item>
- <item name="contact_filter_popup_width">320dip</item>
<item name="contact_browser_list_padding_left">16dip</item>
<item name="contact_browser_list_padding_right">0dip</item>
<item name="contact_browser_background">@android:color/transparent</item>
@@ -94,7 +92,7 @@
</style>
<style name="CustomContactListFilterView" parent="ContactListFilterTheme">
- <item name="android:layout_width">400dip</item>
+ <item name="android:layout_width">match_parent</item>
<item name="android:layout_height">400dip</item>
</style>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index cd5d137..d79d373 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -67,7 +67,6 @@
</declare-styleable>
<declare-styleable name="ContactBrowser">
- <attr name="contact_filter_popup_width" format="dimension"/>
<attr name="contact_browser_list_padding_left" format="dimension"/>
<attr name="contact_browser_list_padding_right" format="dimension"/>
<attr name="contact_browser_background" format="reference"/>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index ae74a56..dc675b3 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -44,7 +44,6 @@
<item name="list_item_header_height">24dip</item>
<item name="list_item_header_underline_height">1dip</item>
<item name="list_item_header_underline_color">@color/people_app_theme_color</item>
- <item name="contact_filter_popup_width">320dip</item>
<item name="contact_browser_list_padding_left">16dip</item>
<item name="contact_browser_list_padding_right">0dip</item>
<item name="contact_browser_background">@android:color/black</item>
@@ -154,7 +153,6 @@
<item name="list_item_header_underline_color">@color/people_app_theme_color</item>
<item name="list_item_contacts_count_text_color">@color/contact_count_text_color</item>
<item name="list_item_header_text_indent">8dip</item>
- <item name="contact_filter_popup_width">320dip</item>
<item name="contact_browser_list_padding_left">16dip</item>
<item name="contact_browser_list_padding_right">0dip</item>
<item name="contact_browser_background">@android:color/transparent</item>
@@ -198,7 +196,6 @@
<item name="list_item_header_text_color">?color/section_header_text_color</item>
<item name="list_item_header_text_size">14sp</item>
<item name="list_item_header_text_indent">8dip</item>
- <item name="contact_filter_popup_width">320dip</item>
<item name="contact_browser_list_padding_left">16dip</item>
<item name="contact_browser_list_padding_right">0dip</item>
<item name="contact_browser_background">@android:color/transparent</item>
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index d0acc6b..6200a69 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -348,7 +348,7 @@
Log.w(TAG, "Search Fragment isn't available when ContactListFilter is changed");
return;
}
- mSearchFragment .setFilter(mContactListFilterController.getFilter());
+ mSearchFragment.setFilter(mContactListFilterController.getFilter());
invalidateOptionsMenu();
}
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index 2380345..2d5fed1 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -660,11 +660,7 @@
}
private void restoreFilter() {
- mFilter = ContactListFilter.restoreFromPreferences(mPrefs);
- if (mFilter == null) {
- mFilter = ContactListFilter.createFilterWithType(
- ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
- }
+ mFilter = ContactListFilter.restoreDefaultPreferences(mPrefs);
}
private String getPersistentSelectionKey() {
diff --git a/src/com/android/contacts/list/ContactListFilter.java b/src/com/android/contacts/list/ContactListFilter.java
index cfcde2a..724098c 100644
--- a/src/com/android/contacts/list/ContactListFilter.java
+++ b/src/com/android/contacts/list/ContactListFilter.java
@@ -20,6 +20,7 @@
import android.graphics.drawable.Drawable;
import android.os.Parcel;
import android.os.Parcelable;
+import android.provider.ContactsContract.Contacts;
import android.text.TextUtils;
/**
@@ -202,6 +203,21 @@
.apply();
}
+ /**
+ * Try to obtain ContactListFilter object saved in SharedPreference.
+ * If there's no info there, return custom filter instead, assuming the user wants contacts
+ * which ContactsProvider remembers as "visible contacts".
+ * (See also {@link Contacts#IN_VISIBLE_GROUP})
+ */
+ public static ContactListFilter restoreDefaultPreferences(SharedPreferences prefs) {
+ ContactListFilter filter = restoreFromPreferences(prefs);
+ if (filter == null) {
+ // Show contacts in IN_VISIBLE_GROUP instead.
+ filter = ContactListFilter.createFilterWithType(ContactListFilter.FILTER_TYPE_CUSTOM);
+ }
+ return filter;
+ }
+
public static ContactListFilter restoreFromPreferences(SharedPreferences prefs) {
int filterType = prefs.getInt(KEY_FILTER_TYPE, FILTER_TYPE_DEFAULT);
if (filterType == FILTER_TYPE_DEFAULT) {
diff --git a/src/com/android/contacts/list/ContactListFilterController.java b/src/com/android/contacts/list/ContactListFilterController.java
index 28b62ca..87228a2 100644
--- a/src/com/android/contacts/list/ContactListFilterController.java
+++ b/src/com/android/contacts/list/ContactListFilterController.java
@@ -45,7 +45,7 @@
public void onStart() {
if (mFilter == null) {
- mFilter = ContactListFilter.restoreFromPreferences(getSharedPreferences());
+ mFilter = ContactListFilter.restoreDefaultPreferences(getSharedPreferences());
mIsInitialized = true;
}
}