diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-11-28 23:31:35 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-11-28 23:31:35 +0000 |
commit | a1e173cf58376d4959979cd733be54c15cf4e8b7 (patch) | |
tree | 69c3405112ca9d2603ef690e4dd9de8c6b2dc756 | |
parent | 7b21667fbccc35fcc6e920590b07aa5cd9e28d80 (diff) | |
parent | 785ae7b94e5e9345cad8e1749f3fa85e998af08e (diff) | |
download | Dialer-android-8.1.0_r13.tar.gz |
Snap for 4448085 from 785ae7b94e5e9345cad8e1749f3fa85e998af08e to oc-m3-releaseandroid-8.1.0_r9android-8.1.0_r7android-8.1.0_r22android-8.1.0_r21android-8.1.0_r18android-8.1.0_r17android-8.1.0_r14android-8.1.0_r13oreo-m5-releaseoreo-m3-release
Change-Id: I9fb700813e3441ddbe5f24e96d467b7b4477beae
-rw-r--r-- | AndroidManifest.xml | 3 | ||||
-rw-r--r-- | res/values/strings.xml | 2 | ||||
-rw-r--r-- | src/com/android/car/dialer/ContactResultsAdapter.java | 12 | ||||
-rw-r--r-- | src/com/android/car/dialer/ContactResultsFragment.java | 35 |
4 files changed, 28 insertions, 24 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 25063986..d420c7e1 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2015 The Android Open Source Project +<!-- Copyright (C) 2017 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -15,7 +15,6 @@ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - android:sharedUserId="com.android.car.dialermessenger.uid.shared" package="com.android.car.dialer"> <uses-sdk android:minSdkVersion="24" android:targetSdkVersion='24'/> 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..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.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(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 9fefdfb0..062c8b24 100644 --- a/src/com/android/car/dialer/ContactResultsFragment.java +++ b/src/com/android/car/dialer/ContactResultsFragment.java @@ -22,7 +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.Contacts; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; @@ -30,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; @@ -47,19 +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 = { - ContactsContract.Contacts._ID, - ContactsContract.Contacts.LOOKUP_KEY, - ContactsContract.Contacts.DISPLAY_NAME, - ContactsContract.Contacts.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}. - * That query is assumed to be the name of a contact. - */ - private static final String CONTACT_SELECTION = - ContactsContract.Contacts.DISPLAY_NAME + " LIKE ? "; - private final ContactResultsAdapter mAdapter = new ContactResultsAdapter(); private PagedListView mContactResultList; private String mSearchQuery; @@ -144,15 +138,26 @@ public class ContactResultsFragment extends Fragment implements data.close(); } + /** + * 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) { if (Log.isLoggable(TAG, Log.DEBUG)) { Log.d(TAG, "onCreateLoader(); loaderId: " + loaderId + " with query: " + mSearchQuery); } - return new CursorLoader(getContext(), ContactsContract.Contacts.CONTENT_URI, - CONTACT_DETAILS_PROJECTION, CONTACT_SELECTION, - new String[] { "%" + mSearchQuery + "%" }, null); + /* 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(), lookupUri, + CONTACT_DETAILS_PROJECTION, null /* selection */, + null /* selectionArgs */, null /* sortOrder */); } @Override |