summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-09-20 07:49:08 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-09-20 07:49:08 +0000
commit785ae7b94e5e9345cad8e1749f3fa85e998af08e (patch)
tree69c3405112ca9d2603ef690e4dd9de8c6b2dc756
parentda8e26957325c7d53078021920dd946c0a720492 (diff)
parent965d7444b1178e502b92bd0f4c35026a97bbde75 (diff)
downloadDialer-785ae7b94e5e9345cad8e1749f3fa85e998af08e.tar.gz
release-request-42a2a3ad-8c90-4c84-a0ad-5d067beb8e30-for-git_oc-mr1-release-4349323 snap-temp-L16100000104414353android-wear-8.1.0_r1android-vts-8.1_r9android-vts-8.1_r8android-vts-8.1_r7android-vts-8.1_r6android-vts-8.1_r5android-vts-8.1_r4android-vts-8.1_r3android-vts-8.1_r14android-vts-8.1_r13android-vts-8.1_r12android-vts-8.1_r11android-vts-8.1_r10android-security-8.1.0_r93android-security-8.1.0_r92android-security-8.1.0_r91android-security-8.1.0_r90android-security-8.1.0_r89android-security-8.1.0_r88android-security-8.1.0_r87android-security-8.1.0_r86android-security-8.1.0_r85android-security-8.1.0_r84android-security-8.1.0_r83android-security-8.1.0_r82android-cts-8.1_r9android-cts-8.1_r8android-cts-8.1_r7android-cts-8.1_r6android-cts-8.1_r5android-cts-8.1_r4android-cts-8.1_r3android-cts-8.1_r25android-cts-8.1_r24android-cts-8.1_r23android-cts-8.1_r22android-cts-8.1_r21android-cts-8.1_r20android-cts-8.1_r2android-cts-8.1_r19android-cts-8.1_r18android-cts-8.1_r17android-cts-8.1_r16android-cts-8.1_r15android-cts-8.1_r14android-cts-8.1_r13android-cts-8.1_r12android-cts-8.1_r11android-cts-8.1_r10android-cts-8.1_r1android-8.1.0_r81android-8.1.0_r80android-8.1.0_r79android-8.1.0_r78android-8.1.0_r77android-8.1.0_r76android-8.1.0_r75android-8.1.0_r74android-8.1.0_r73android-8.1.0_r72android-8.1.0_r71android-8.1.0_r70android-8.1.0_r69android-8.1.0_r68android-8.1.0_r66android-8.1.0_r6android-8.1.0_r5android-8.1.0_r4android-8.1.0_r3android-8.1.0_r23android-8.1.0_r19android-8.1.0_r16android-8.1.0_r15android-8.1.0_r12android-8.1.0_r11android-8.1.0_r10android-8.1.0_r1security-oc-mr1-releaseoreo-mr1-wear-releaseoreo-mr1-vts-releaseoreo-mr1-security-releaseoreo-mr1-s1-releaseoreo-mr1-releaseoreo-mr1-cuttlefish-testingoreo-mr1-cts-releaseoreo-m4-s1-release
Change-Id: Ie1e975256ee3e372ecafc88fd0016cb557238a54
-rw-r--r--src/com/android/car/dialer/ContactResultsAdapter.java12
-rw-r--r--src/com/android/car/dialer/ContactResultsFragment.java43
2 files changed, 23 insertions, 32 deletions
diff --git a/src/com/android/car/dialer/ContactResultsAdapter.java b/src/com/android/car/dialer/ContactResultsAdapter.java
index fa6c596b..d637f9d9 100644
--- a/src/com/android/car/dialer/ContactResultsAdapter.java
+++ b/src/com/android/car/dialer/ContactResultsAdapter.java
@@ -18,7 +18,7 @@ package com.android.car.dialer;
import android.database.Cursor;
import android.net.Uri;
-import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
@@ -53,12 +53,12 @@ public class ContactResultsAdapter extends RecyclerView.Adapter<ContactResultVie
mContacts.clear();
while (data.moveToNext()) {
- 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);
+ int idColIdx = data.getColumnIndex(Contacts._ID);
+ int lookupColIdx = data.getColumnIndex(Contacts.LOOKUP_KEY);
+ int nameColIdx = data.getColumnIndex(Contacts.DISPLAY_NAME);
+ int photoUriColIdx = data.getColumnIndex(Contacts.PHOTO_URI);
- Uri lookupUri = ContactsContract.Contacts.getLookupUri(
+ Uri lookupUri = Contacts.getLookupUri(
data.getLong(idColIdx), data.getString(lookupColIdx));
mContacts.add(new ContactResultViewHolder.ContactDetails(
diff --git a/src/com/android/car/dialer/ContactResultsFragment.java b/src/com/android/car/dialer/ContactResultsFragment.java
index 38e51d6a..062c8b24 100644
--- a/src/com/android/car/dialer/ContactResultsFragment.java
+++ b/src/com/android/car/dialer/ContactResultsFragment.java
@@ -22,8 +22,7 @@ import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Contacts;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
@@ -31,6 +30,7 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.net.Uri;
import com.android.car.view.PagedListView;
@@ -48,26 +48,12 @@ public class ContactResultsFragment extends Fragment implements
private static final String KEY_INITIAL_SEARCH_QUERY = "initial_search_query";
private static final String[] CONTACT_DETAILS_PROJECTION = {
- Data.CONTACT_ID,
- Data.LOOKUP_KEY,
- Data.DISPLAY_NAME,
- Data.PHOTO_URI
+ Contacts._ID,
+ Contacts.LOOKUP_KEY,
+ Contacts.DISPLAY_NAME,
+ Contacts.PHOTO_URI
};
- /**
- * A selection criteria to filter contacts based on the query given by {@link #mSearchQuery}.
- * 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.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;
private String mSearchQuery;
@@ -153,7 +139,9 @@ public class ContactResultsFragment extends Fragment implements
}
/**
- * Finds the contacts with names or phone numbers that match the search query
+ * Finds the contacts with any field that matches the search query. Typically, the search
+ * criteria appears to be matching the beginning of the value in that data field (name, phone
+ * number, etc.)
*/
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) {
@@ -161,12 +149,15 @@ public class ContactResultsFragment extends Fragment implements
Log.d(TAG, "onCreateLoader(); loaderId: " + loaderId + " with query: " + mSearchQuery);
}
- String[] mSelectionArgs =
- new String[] { "%" + mSearchQuery + "%", "%" + mSearchQuery + "%" };
+ /* To lookup against all fields, just append the search query to the content filter uri
+ * and perform a lookup without any selection
+ */
+ Uri lookupUri = Uri.withAppendedPath(Contacts.CONTENT_FILTER_URI,
+ Uri.encode(mSearchQuery));
- return new CursorLoader(getContext(), Data.CONTENT_URI,
- CONTACT_DETAILS_PROJECTION, CONTACT_SELECTION,
- mSelectionArgs, null);
+ return new CursorLoader(getContext(), lookupUri,
+ CONTACT_DETAILS_PROJECTION, null /* selection */,
+ null /* selectionArgs */, null /* sortOrder */);
}
@Override