summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/searchfragment/remote
diff options
context:
space:
mode:
authorcalderwoodra <calderwoodra@google.com>2017-10-17 15:54:45 -0700
committerEric Erfanian <erfanian@google.com>2017-10-17 20:10:38 -0700
commitfe7e9e1d5a083bfe376df0d54bcf632f60012dcf (patch)
tree903650b336b90175f9d9dad64dc36c21848cd65b /java/com/android/dialer/searchfragment/remote
parente1c4dc99304e117325bc8c92731c2c64f2c79400 (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')
-rw-r--r--java/com/android/dialer/searchfragment/remote/RemoteContactViewHolder.java14
-rw-r--r--java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java2
2 files changed, 8 insertions, 8 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(
diff --git a/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java b/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java
index 37695be50..eb472732f 100644
--- a/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java
+++ b/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java
@@ -54,7 +54,7 @@ public final class RemoteContactsCursorLoader extends CursorLoader {
super(
context,
null,
- Projections.PHONE_PROJECTION,
+ Projections.DATA_PROJECTION,
IGNORE_NUMBER_TOO_LONG_CLAUSE,
null,
Phone.SORT_KEY_PRIMARY);