Adding starred filter and placeholder icons
Change-Id: I1a8bfa59bdde0df35be5acb79f2158f2a56f22ef
diff --git a/res/drawable-hdpi/ic_contact_list_filter_all.png b/res/drawable-hdpi/ic_contact_list_filter_all.png
new file mode 100644
index 0000000..67981a9
--- /dev/null
+++ b/res/drawable-hdpi/ic_contact_list_filter_all.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_contact_list_filter_custom.png b/res/drawable-hdpi/ic_contact_list_filter_custom.png
new file mode 100644
index 0000000..3f48be3
--- /dev/null
+++ b/res/drawable-hdpi/ic_contact_list_filter_custom.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_contact_list_filter_starred.png b/res/drawable-hdpi/ic_contact_list_filter_starred.png
new file mode 100644
index 0000000..4213050
--- /dev/null
+++ b/res/drawable-hdpi/ic_contact_list_filter_starred.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_contact_list_filter_all.png b/res/drawable-mdpi/ic_contact_list_filter_all.png
new file mode 100644
index 0000000..67981a9
--- /dev/null
+++ b/res/drawable-mdpi/ic_contact_list_filter_all.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_contact_list_filter_custom.png b/res/drawable-mdpi/ic_contact_list_filter_custom.png
new file mode 100644
index 0000000..3f48be3
--- /dev/null
+++ b/res/drawable-mdpi/ic_contact_list_filter_custom.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_contact_list_filter_starred.png b/res/drawable-mdpi/ic_contact_list_filter_starred.png
new file mode 100755
index 0000000..a9bdb05
--- /dev/null
+++ b/res/drawable-mdpi/ic_contact_list_filter_starred.png
Binary files differ
diff --git a/res/layout/filter_spinner_item.xml b/res/layout/filter_spinner_item.xml
index 6573a30..ff7cb5c 100644
--- a/res/layout/filter_spinner_item.xml
+++ b/res/layout/filter_spinner_item.xml
@@ -28,9 +28,11 @@
<ImageView
android:id="@+id/icon"
android:scaleType="fitCenter"
- android:layout_width="48dip"
- android:layout_height="wrap_content"
- android:layout_marginRight="7dip" />
+ android:layout_width="24dip"
+ android:layout_height="24dip"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="7dip"
+ android:layout_gravity="center_vertical" />
<TextView
android:id="@+id/label"
diff --git a/res/layout/navigation_bar.xml b/res/layout/navigation_bar.xml
index 6286b1c..08070a7 100644
--- a/res/layout/navigation_bar.xml
+++ b/res/layout/navigation_bar.xml
@@ -41,13 +41,6 @@
android:layout_width="match_parent"
android:gravity="center_vertical">
- <ImageView
- android:id="@+id/icon"
- android:scaleType="fitCenter"
- android:layout_width="24dip"
- android:layout_height="24dip"
- android:layout_marginLeft="8dip" />
-
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3a0b175..5774f35 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1348,8 +1348,14 @@
<!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
<string name="list_filter_all_accounts">All contacts</string>
+ <!-- Contact list filter label indicating that the list is showing all starred contacts [CHAR LIMIT=64] -->
+ <string name="list_filter_all_starred">Starred</string>
+
+ <!-- Contact list filter label indicating that the list is showing starred contacts for the account [CHAR LIMIT=64] -->
+ <string name="list_filter_starred">Starred</string>
+
<!-- Contact list filter indicating that the list shows groups chosen by the user [CHAR LIMIT=64] -->
- <string name="list_filter_custom">Custom list</string>
+ <string name="list_filter_custom">Custom</string>
<!-- Contact list filter selection indicating that the list shows groups chosen by the user [CHAR LIMIT=64] -->
<string name="list_filter_customize">Customize...</string>
diff --git a/src/com/android/contacts/list/ContactListFilter.java b/src/com/android/contacts/list/ContactListFilter.java
index 82d4213..47b35d1 100644
--- a/src/com/android/contacts/list/ContactListFilter.java
+++ b/src/com/android/contacts/list/ContactListFilter.java
@@ -27,8 +27,10 @@
public static final int FILTER_TYPE_ALL_ACCOUNTS = -1;
public static final int FILTER_TYPE_CUSTOM = -2;
- public static final int FILTER_TYPE_DEFAULT = -3;
+ public static final int FILTER_TYPE_STARRED = -3;
+ public static final int FILTER_TYPE_DEFAULT = -4;
public static final int FILTER_TYPE_ACCOUNT = 0;
+ public static final int FILTER_TYPE_ = 0;
public static final int FILTER_TYPE_GROUP = 1;
private static final String KEY_FILTER_TYPE = "filter.type";
diff --git a/src/com/android/contacts/list/ContactListFilterController.java b/src/com/android/contacts/list/ContactListFilterController.java
index d9fddbd..051c9a0 100644
--- a/src/com/android/contacts/list/ContactListFilterController.java
+++ b/src/com/android/contacts/list/ContactListFilterController.java
@@ -35,7 +35,6 @@
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
-import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.BaseAdapter;
import android.widget.ListPopupWindow;
@@ -46,8 +45,7 @@
* Controls a list of {@link ContactListFilter}'s.
*/
public class ContactListFilterController
- implements
- LoaderCallbacks<List<ContactListFilter>>, OnClickListener, OnItemClickListener {
+ implements LoaderCallbacks<List<ContactListFilter>>, OnClickListener, OnItemClickListener {
public interface ContactListFilterListener {
void onContactListFiltersLoaded();
@@ -145,7 +143,8 @@
boolean filterValid = mFilter != null
&& (mFilter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
- || mFilter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM);
+ || mFilter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM
+ || mFilter.filterType == ContactListFilter.FILTER_TYPE_STARRED);
int accountCount = 0;
int count = filters.size();
@@ -159,6 +158,8 @@
mFilters.append(mNextFilterId++,
new ContactListFilter(ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS));
mFilters.append(mNextFilterId++,
+ new ContactListFilter(ContactListFilter.FILTER_TYPE_STARRED));
+ mFilters.append(mNextFilterId++,
new ContactListFilter(ContactListFilter.FILTER_TYPE_CUSTOM));
}
@@ -179,6 +180,8 @@
if (firstAndOnly) {
mFilters.append(mNextFilterId++,
+ new ContactListFilter(ContactListFilter.FILTER_TYPE_STARRED));
+ mFilters.append(mNextFilterId++,
new ContactListFilter(ContactListFilter.FILTER_TYPE_CUSTOM));
}
}
@@ -219,6 +222,8 @@
filter = new ContactListFilter(ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
} else if (filterId == ContactListFilter.FILTER_TYPE_CUSTOM) {
filter = new ContactListFilter(ContactListFilter.FILTER_TYPE_CUSTOM);
+ } else if (filterId == ContactListFilter.FILTER_TYPE_STARRED) {
+ filter = new ContactListFilter(ContactListFilter.FILTER_TYPE_STARRED);
} else {
filter = mFilters.get(filterId);
if (filter == null) {
diff --git a/src/com/android/contacts/list/ContactListFilterView.java b/src/com/android/contacts/list/ContactListFilterView.java
index 8d0bf3b..744de05 100644
--- a/src/com/android/contacts/list/ContactListFilterView.java
+++ b/src/com/android/contacts/list/ContactListFilterView.java
@@ -52,7 +52,7 @@
}
public void bindView(boolean dropdown) {
- if (mIcon == null) {
+ if (mLabel == null) {
mIcon = (ImageView) findViewById(R.id.icon);
mLabel = (TextView) findViewById(R.id.label);
mIndentedLabel = (TextView) findViewById(R.id.indented_label);
@@ -60,7 +60,10 @@
switch (mFilter.filterType) {
case ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS: {
- mIcon.setVisibility(View.GONE);
+ 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) {
@@ -68,8 +71,23 @@
}
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);
+ }
+ break;
+ }
case ContactListFilter.FILTER_TYPE_CUSTOM: {
- mIcon.setVisibility(View.GONE);
+ 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);
@@ -80,11 +98,13 @@
break;
}
case ContactListFilter.FILTER_TYPE_ACCOUNT: {
- mIcon.setVisibility(View.VISIBLE);
- if (mFilter.icon != null) {
- mIcon.setImageDrawable(mFilter.icon);
- } else {
- mIcon.setImageResource(R.drawable.unknown_source);
+ if (mIcon != null) {
+ mIcon.setVisibility(View.VISIBLE);
+ if (mFilter.icon != null) {
+ mIcon.setImageDrawable(mFilter.icon);
+ } else {
+ mIcon.setImageResource(R.drawable.unknown_source);
+ }
}
mLabel.setText(mFilter.accountName);
mLabel.setVisibility(View.VISIBLE);
@@ -94,7 +114,9 @@
break;
}
case ContactListFilter.FILTER_TYPE_GROUP: {
- mIcon.setVisibility(View.GONE);
+ if (mIcon != null) {
+ mIcon.setVisibility(View.GONE);
+ }
if (dropdown) {
mLabel.setVisibility(View.GONE);
mIndentedLabel.setText(mFilter.title);
diff --git a/src/com/android/contacts/list/DefaultContactListAdapter.java b/src/com/android/contacts/list/DefaultContactListAdapter.java
index ed8af62..4160931 100644
--- a/src/com/android/contacts/list/DefaultContactListAdapter.java
+++ b/src/com/android/contacts/list/DefaultContactListAdapter.java
@@ -137,6 +137,10 @@
// filter
break;
}
+ case ContactListFilter.FILTER_TYPE_STARRED: {
+ selection.append(Contacts.STARRED + "!=0");
+ break;
+ }
case ContactListFilter.FILTER_TYPE_CUSTOM: {
if (mVisibleContactsOnly && mContactsWithPhoneNumbersOnly) {
selection.append(Contacts.IN_VISIBLE_GROUP + "=1"