diff options
author | calderwoodra <calderwoodra@google.com> | 2017-10-17 15:54:45 -0700 |
---|---|---|
committer | Eric Erfanian <erfanian@google.com> | 2017-10-17 20:10:38 -0700 |
commit | fe7e9e1d5a083bfe376df0d54bcf632f60012dcf (patch) | |
tree | 903650b336b90175f9d9dad64dc36c21848cd65b /java/com/android/dialer/searchfragment/remote/RemoteContactViewHolder.java | |
parent | e1c4dc99304e117325bc8c92731c2c64f2c79400 (diff) |
Contacts are now searchable by company name.
This change coalesces Cp2 contacts into a new cursor so that
they can be associated with the Company name. The following logs
can help explain how the data is organizes in the original cursor:
display Name (A Pixel), lookupKey (3535i7a9673fc89b77de3), mimeType (vnd.android.cursor.item/name), data1 (A Pixel)
display Name (A Pixel), lookupKey (3535i7a9673fc89b77de3), mimeType (vnd.android.cursor.item/note), data1 ()
display Name (A Pixel), lookupKey (3535i7a9673fc89b77de3), mimeType (vnd.android.cursor.item/group_membership), data1 (1)
display Name (A Pixel), lookupKey (3535i7a9673fc89b77de3), mimeType (vnd.android.cursor.item/phone_v2), data1 (+1 650-200-7932)
display Name (A Pixel), lookupKey (3535i7a9673fc89b77de3), mimeType (vnd.android.cursor.item/phone_v2), data1 (+1 540-555-6666)
display Name (A Pixel), lookupKey (3535i7a9673fc89b77de3), mimeType (vnd.android.cursor.item/organization), data1 (Walmart)
This is an example of what is returned for a single contact. We can easily
associate contact rows together using the lookup key and determine which
rows have relevant data by checking the mime type. I use the data here to
coalesce the contacts together into one row for easy parsing in ContactFilterCursor.
Rows with mime type phone_v2 contain contact information (for example, this
contact has 2 phone numbers).
Rows with mime type organization contain contact's company information (for
example, this contact works at Walmart).
Bug: 67675742,64894607,67848713
Test: existing + SCCT.filter_companyName
PiperOrigin-RevId: 172528797
Change-Id: I5c9f66ff0c27276869295eff97bb0216f92995be
Diffstat (limited to 'java/com/android/dialer/searchfragment/remote/RemoteContactViewHolder.java')
-rw-r--r-- | java/com/android/dialer/searchfragment/remote/RemoteContactViewHolder.java | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/java/com/android/dialer/searchfragment/remote/RemoteContactViewHolder.java b/java/com/android/dialer/searchfragment/remote/RemoteContactViewHolder.java index df3eacc5b..8a02eb9b9 100644 --- a/java/com/android/dialer/searchfragment/remote/RemoteContactViewHolder.java +++ b/java/com/android/dialer/searchfragment/remote/RemoteContactViewHolder.java @@ -64,7 +64,7 @@ public final class RemoteContactViewHolder extends RecyclerView.ViewHolder */ public void bind(SearchCursor cursor, String query) { number = cursor.getString(Projections.PHONE_NUMBER); - String name = cursor.getString(Projections.PHONE_DISPLAY_NAME); + String name = cursor.getString(Projections.DISPLAY_NAME); String label = getLabel(context.getResources(), cursor); String secondaryInfo = TextUtils.isEmpty(label) @@ -78,12 +78,12 @@ public final class RemoteContactViewHolder extends RecyclerView.ViewHolder if (shouldShowPhoto(cursor)) { nameView.setVisibility(View.VISIBLE); photo.setVisibility(View.VISIBLE); - String photoUri = cursor.getString(Projections.PHONE_PHOTO_URI); + String photoUri = cursor.getString(Projections.PHOTO_URI); ContactPhotoManager.getInstance(context) .loadDialerThumbnailOrPhoto( photo, getContactUri(cursor), - cursor.getLong(Projections.PHONE_PHOTO_ID), + cursor.getLong(Projections.PHOTO_ID), photoUri == null ? null : Uri.parse(photoUri), name, LetterTileDrawable.TYPE_DEFAULT); @@ -96,11 +96,11 @@ public final class RemoteContactViewHolder extends RecyclerView.ViewHolder // Show the contact photo next to only the first number if a contact has multiple numbers private boolean shouldShowPhoto(SearchCursor cursor) { int currentPosition = cursor.getPosition(); - String currentLookupKey = cursor.getString(Projections.PHONE_LOOKUP_KEY); + String currentLookupKey = cursor.getString(Projections.LOOKUP_KEY); cursor.moveToPosition(currentPosition - 1); if (!cursor.isHeader() && !cursor.isBeforeFirst()) { - String previousLookupKey = cursor.getString(Projections.PHONE_LOOKUP_KEY); + String previousLookupKey = cursor.getString(Projections.LOOKUP_KEY); cursor.moveToPosition(currentPosition); return !currentLookupKey.equals(previousLookupKey); } @@ -121,8 +121,8 @@ public final class RemoteContactViewHolder extends RecyclerView.ViewHolder } private static Uri getContactUri(SearchCursor cursor) { - long contactId = cursor.getLong(Projections.PHONE_ID); - String lookupKey = cursor.getString(Projections.PHONE_LOOKUP_KEY); + long contactId = cursor.getLong(Projections.ID); + String lookupKey = cursor.getString(Projections.LOOKUP_KEY); return Contacts.getLookupUri(contactId, lookupKey) .buildUpon() .appendQueryParameter( |