diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-09-17 07:36:14 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-09-17 07:36:14 +0000 |
commit | da8e26957325c7d53078021920dd946c0a720492 (patch) | |
tree | 880ceb545542421cc35e17ca1f35a8b099146663 | |
parent | 7f7c761e2abe29597de0c34a265340336499fcfd (diff) | |
parent | 36e68ef14f38ee17be0212936f8b58b5b054cf2c (diff) | |
download | platform_packages_apps_Car_Dialer-da8e26957325c7d53078021920dd946c0a720492.tar.gz platform_packages_apps_Car_Dialer-da8e26957325c7d53078021920dd946c0a720492.tar.bz2 platform_packages_apps_Car_Dialer-da8e26957325c7d53078021920dd946c0a720492.zip |
release-request-1f2fcfef-9736-44dc-8628-3ba96dac60db-for-git_oc-mr1-release-4343541 snap-temp-L73700000103533431
Change-Id: If83a286a8db5992737a23c5ccc1c7b81d923d3ea
-rw-r--r-- | res/values/strings.xml | 2 | ||||
-rw-r--r-- | src/com/android/car/dialer/ContactResultsAdapter.java | 8 | ||||
-rw-r--r-- | src/com/android/car/dialer/ContactResultsFragment.java | 30 |
3 files changed, 27 insertions, 13 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml index 21ac1b59..d432c2f7 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -104,7 +104,7 @@ <string name="pound_letters"> </string> <string name="search_title">Search contacts</string> - <string name="search_hint">Enter the name of a contact</string> + <string name="search_hint">Search contacts</string> <string name="type_home">Home</string> <string name="type_work">Work</string> <string name="type_mobile">Mobile</string> diff --git a/src/com/android/car/dialer/ContactResultsAdapter.java b/src/com/android/car/dialer/ContactResultsAdapter.java index 02ec4daf..fa6c596b 100644 --- a/src/com/android/car/dialer/ContactResultsAdapter.java +++ b/src/com/android/car/dialer/ContactResultsAdapter.java @@ -53,10 +53,10 @@ public class ContactResultsAdapter extends RecyclerView.Adapter<ContactResultVie mContacts.clear(); while (data.moveToNext()) { - int idColIdx = data.getColumnIndex(ContactsContract.Contacts._ID); - int lookupColIdx = data.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY); - int nameColIdx = data.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); - int photoUriColIdx = data.getColumnIndex(ContactsContract.Contacts.PHOTO_URI); + int idColIdx = data.getColumnIndex(ContactsContract.Data.CONTACT_ID); + int lookupColIdx = data.getColumnIndex(ContactsContract.Data.LOOKUP_KEY); + int nameColIdx = data.getColumnIndex(ContactsContract.Data.DISPLAY_NAME); + int photoUriColIdx = data.getColumnIndex(ContactsContract.Data.PHOTO_URI); Uri lookupUri = ContactsContract.Contacts.getLookupUri( data.getLong(idColIdx), data.getString(lookupColIdx)); diff --git a/src/com/android/car/dialer/ContactResultsFragment.java b/src/com/android/car/dialer/ContactResultsFragment.java index 9fefdfb0..38e51d6a 100644 --- a/src/com/android/car/dialer/ContactResultsFragment.java +++ b/src/com/android/car/dialer/ContactResultsFragment.java @@ -23,6 +23,7 @@ import android.content.Loader; import android.database.Cursor; import android.os.Bundle; import android.provider.ContactsContract; +import android.provider.ContactsContract.Data; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; @@ -47,18 +48,25 @@ public class ContactResultsFragment extends Fragment implements private static final String KEY_INITIAL_SEARCH_QUERY = "initial_search_query"; private static final String[] CONTACT_DETAILS_PROJECTION = { - ContactsContract.Contacts._ID, - ContactsContract.Contacts.LOOKUP_KEY, - ContactsContract.Contacts.DISPLAY_NAME, - ContactsContract.Contacts.PHOTO_URI + Data.CONTACT_ID, + Data.LOOKUP_KEY, + Data.DISPLAY_NAME, + Data.PHOTO_URI }; /** * A selection criteria to filter contacts based on the query given by {@link #mSearchQuery}. - * That query is assumed to be the name of a contact. + * The query is search against partial matches of the contact's name + * (StructuredName.DISPLAY_NAME) or phone number (Phone.NUMBER) */ private static final String CONTACT_SELECTION = - ContactsContract.Contacts.DISPLAY_NAME + " LIKE ? "; + "(" + ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME + " LIKE ? " + + " AND " + Data.MIMETYPE + " = '" + + ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE + "'" + + ") OR (" + + ContactsContract.CommonDataKinds.Phone.NUMBER + " LIKE ? " + + " AND " + Data.MIMETYPE + " = '" + + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'" + ")"; private final ContactResultsAdapter mAdapter = new ContactResultsAdapter(); private PagedListView mContactResultList; @@ -144,15 +152,21 @@ public class ContactResultsFragment extends Fragment implements data.close(); } + /** + * Finds the contacts with names or phone numbers that match the search query + */ @Override public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) { if (Log.isLoggable(TAG, Log.DEBUG)) { Log.d(TAG, "onCreateLoader(); loaderId: " + loaderId + " with query: " + mSearchQuery); } - return new CursorLoader(getContext(), ContactsContract.Contacts.CONTENT_URI, + String[] mSelectionArgs = + new String[] { "%" + mSearchQuery + "%", "%" + mSearchQuery + "%" }; + + return new CursorLoader(getContext(), Data.CONTENT_URI, CONTACT_DETAILS_PROJECTION, CONTACT_SELECTION, - new String[] { "%" + mSearchQuery + "%" }, null); + mSelectionArgs, null); } @Override |