Make filter header clickable
Bug: 5160689
Change-Id: If2f9435bf0090f8bfc138a45fe2c9c04eec08091
diff --git a/res/layout/contacts_list_content.xml b/res/layout/contacts_list_content.xml
index 8e1289f..dfa99f6 100644
--- a/res/layout/contacts_list_content.xml
+++ b/res/layout/contacts_list_content.xml
@@ -38,6 +38,7 @@
android:paddingTop="@dimen/contact_browser_list_top_margin"
android:layout_marginLeft="@dimen/contact_browser_list_header_left_margin"
android:layout_marginRight="@dimen/contact_browser_list_header_right_margin"
+ android:background="?android:attr/selectableItemBackground"
android:visibility="gone">
<TextView
android:id="@+id/account_filter_header"
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index 7d96973..bddd472 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -94,8 +94,6 @@
private static final int TAB_INDEX_COUNT = 3;
- private static final int SUBACTIVITY_ACCOUNT_FILTER = 0;
-
/** Name of the dialtacts shared preferences */
static final String PREFS_DIALTACTS = "dialtacts";
static final boolean PREF_FAVORITES_AS_CONTACTS_DEFAULT = false;
@@ -276,7 +274,7 @@
final Intent intent =
new Intent(DialtactsActivity.this, AccountFilterActivity.class);
ContactListFilter filter = mContactListFilterController.getFilter();
- startActivityForResult(intent, SUBACTIVITY_ACCOUNT_FILTER);
+ startActivityForResult(intent, AccountFilterActivity.DEFAULT_REQUEST_CODE);
return true;
}
};
@@ -899,7 +897,7 @@
return;
}
switch (requestCode) {
- case SUBACTIVITY_ACCOUNT_FILTER: {
+ case AccountFilterActivity.DEFAULT_REQUEST_CODE: {
ContactListFilter filter = (ContactListFilter) data.getParcelableExtra(
AccountFilterActivity.KEY_EXTRA_CONTACT_LIST_FILTER);
if (filter == null) {
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index ebf1dbd..31e5064 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -108,7 +108,6 @@
private static final int SUBACTIVITY_NEW_GROUP = 2;
private static final int SUBACTIVITY_EDIT_GROUP = 3;
- private static final int SUBACTIVITY_ACCOUNT_FILTER = 4;
private static final String KEY_SEARCH_MODE = "searchMode";
@@ -1356,7 +1355,7 @@
}
case R.id.menu_contacts_filter: {
final Intent intent = new Intent(this, AccountFilterActivity.class);
- startActivityForResult(intent, SUBACTIVITY_ACCOUNT_FILTER);
+ startActivityForResult(intent, AccountFilterActivity.DEFAULT_REQUEST_CODE);
return true;
}
case R.id.menu_search: {
@@ -1433,7 +1432,7 @@
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
- case SUBACTIVITY_ACCOUNT_FILTER: {
+ case AccountFilterActivity.DEFAULT_REQUEST_CODE: {
if (resultCode == Activity.RESULT_OK) {
ContactListFilter filter = (ContactListFilter) data.getParcelableExtra(
AccountFilterActivity.KEY_EXTRA_CONTACT_LIST_FILTER);
diff --git a/src/com/android/contacts/list/AccountFilterActivity.java b/src/com/android/contacts/list/AccountFilterActivity.java
index 8e0f9b8..f383ec2 100644
--- a/src/com/android/contacts/list/AccountFilterActivity.java
+++ b/src/com/android/contacts/list/AccountFilterActivity.java
@@ -62,6 +62,15 @@
private static final int SUBACTIVITY_CUSTOMIZE_FILTER = 0;
+ /**
+ * Request code for this Activity, which will be used with
+ * {@link Activity#startActivityForResult(Intent, int)}.
+ *
+ * This is useful when we want to share one request code among multiple Activities and
+ * Fragments.
+ */
+ public static final int DEFAULT_REQUEST_CODE = 10001;
+
public static final String KEY_EXTRA_CONTACT_LIST_FILTER = "contactListFilter";
private static final int FILTER_LOADER_ID = 0;
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index 0129013..608d3ad 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -18,6 +18,7 @@
import com.android.contacts.R;
import com.android.contacts.editor.ContactEditorFragment;
+import android.app.Activity;
import android.content.CursorLoader;
import android.content.Intent;
import android.database.Cursor;
@@ -25,6 +26,7 @@
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.widget.Button;
@@ -51,6 +53,19 @@
private View mPaddingView;
+ private class FilterHeaderClickListener implements OnClickListener {
+ @Override
+ public void onClick(View view) {
+ final Activity activity = getActivity();
+ if (activity != null) {
+ final Intent intent = new Intent(activity, AccountFilterActivity.class);
+ activity.startActivityForResult(
+ intent, AccountFilterActivity.DEFAULT_REQUEST_CODE);
+ }
+ }
+ }
+ private OnClickListener mFilterHeaderClickListener = new FilterHeaderClickListener();
+
public DefaultContactBrowseListFragment() {
setPhotoLoaderEnabled(true);
setSectionHeaderDisplayEnabled(true);
@@ -87,6 +102,7 @@
mAccountFilterHeaderView = (TextView) getView().findViewById(R.id.account_filter_header);
mAccountFilterHeaderContainer =
getView().findViewById(R.id.account_filter_header_container);
+ mAccountFilterHeaderContainer.setOnClickListener(mFilterHeaderClickListener);
mCounterHeaderView = (TextView) getView().findViewById(R.id.contacts_count);
// Create an empty user profile header and hide it for now (it will be visible if the
diff --git a/src/com/android/contacts/list/PhoneNumberPickerFragment.java b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
index 4819ded..8eced78 100644
--- a/src/com/android/contacts/list/PhoneNumberPickerFragment.java
+++ b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
@@ -29,8 +29,8 @@
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.View.OnClickListener;
import android.view.ViewGroup;
-import android.widget.Adapter;
import android.widget.TextView;
/**
@@ -56,6 +56,21 @@
private static final String KEY_FILTER = "filter";
+ // A complete copy from DefaultContactBrowserListFragment
+ // TODO: should be able to share logic around filter header.
+ private class FilterHeaderClickListener implements OnClickListener {
+ @Override
+ public void onClick(View view) {
+ final Activity activity = getActivity();
+ if (activity != null) {
+ final Intent intent = new Intent(activity, AccountFilterActivity.class);
+ activity.startActivityForResult(
+ intent, AccountFilterActivity.DEFAULT_REQUEST_CODE);
+ }
+ }
+ }
+ private OnClickListener mFilterHeaderClickListener = new FilterHeaderClickListener();
+
public PhoneNumberPickerFragment() {
setQuickContactEnabled(false);
setPhotoLoaderEnabled(true);
@@ -82,6 +97,7 @@
mAccountFilterHeaderView = (TextView) getView().findViewById(R.id.account_filter_header);
mAccountFilterHeaderContainer =
getView().findViewById(R.id.account_filter_header_container);
+ mAccountFilterHeaderContainer.setOnClickListener(mFilterHeaderClickListener);
updateFilterHeaderView();
}