summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-09-17 07:36:14 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-09-17 07:36:14 +0000
commitda8e26957325c7d53078021920dd946c0a720492 (patch)
tree880ceb545542421cc35e17ca1f35a8b099146663
parent7f7c761e2abe29597de0c34a265340336499fcfd (diff)
parent36e68ef14f38ee17be0212936f8b58b5b054cf2c (diff)
downloadplatform_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.xml2
-rw-r--r--src/com/android/car/dialer/ContactResultsAdapter.java8
-rw-r--r--src/com/android/car/dialer/ContactResultsFragment.java30
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