Show avatars in directory search
Bug:5455229
Change-Id: I59e0c0c1d1be20adb4a79a5492f4ba55360387da
diff --git a/src/com/android/contacts/list/ContactEntryListAdapter.java b/src/com/android/contacts/list/ContactEntryListAdapter.java
index d95a1bc..ac4d399 100644
--- a/src/com/android/contacts/list/ContactEntryListAdapter.java
+++ b/src/com/android/contacts/list/ContactEntryListAdapter.java
@@ -18,7 +18,6 @@
import com.android.contacts.ContactPhotoManager;
import com.android.contacts.R;
import com.android.contacts.widget.IndexerListAdapter;
-import com.android.contacts.widget.TextWithHighlightingFactory;
import android.content.Context;
import android.content.CursorLoader;
@@ -619,8 +618,16 @@
// TODO: move sharable logic (bindXX() methods) to here with extra arguments
+ /**
+ * Loads the photo for the quick contact view and assigns the contact uri.
+ * @param photoIdColumn Index of the photo id column
+ * @param photoUriColumn Index of the photo uri column. Optional: Can be -1
+ * @param contactIdColumn Index of the contact id column
+ * @param lookUpKeyColumn Index of the lookup key column
+ */
protected void bindQuickContact(final ContactListItemView view, int partitionIndex,
- Cursor cursor, int photoIdColumn, int contactIdColumn, int lookUpKeyColumn) {
+ Cursor cursor, int photoIdColumn, int photoUriColumn, int contactIdColumn,
+ int lookUpKeyColumn) {
long photoId = 0;
if (!cursor.isNull(photoIdColumn)) {
photoId = cursor.getLong(photoIdColumn);
@@ -629,7 +636,15 @@
QuickContactBadge quickContact = view.getQuickContact();
quickContact.assignContactUri(
getContactUri(partitionIndex, cursor, contactIdColumn, lookUpKeyColumn));
- getPhotoLoader().loadPhoto(quickContact, photoId, false, mDarkTheme);
+
+ if (photoId != 0 || photoUriColumn == -1) {
+ getPhotoLoader().loadPhoto(quickContact, photoId, false, mDarkTheme);
+ } else {
+ final String photoUriString = cursor.getString(photoUriColumn);
+ final Uri photoUri = photoUriString == null ? null : Uri.parse(photoUriString);
+ getPhotoLoader().loadPhoto(quickContact, photoUri, false, mDarkTheme);
+ }
+
}
protected Uri getContactUri(int partitionIndex, Cursor cursor,
diff --git a/src/com/android/contacts/list/ContactListAdapter.java b/src/com/android/contacts/list/ContactListAdapter.java
index a8caf3b..81fcb84 100644
--- a/src/com/android/contacts/list/ContactListAdapter.java
+++ b/src/com/android/contacts/list/ContactListAdapter.java
@@ -23,7 +23,6 @@
import android.provider.ContactsContract;
import android.provider.ContactsContract.ContactCounts;
import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.Directory;
import android.provider.ContactsContract.SearchSnippetColumns;
import android.text.TextUtils;
diff --git a/src/com/android/contacts/list/DefaultContactListAdapter.java b/src/com/android/contacts/list/DefaultContactListAdapter.java
index 348abb9..7a32e25 100644
--- a/src/com/android/contacts/list/DefaultContactListAdapter.java
+++ b/src/com/android/contacts/list/DefaultContactListAdapter.java
@@ -26,9 +26,7 @@
import android.net.Uri.Builder;
import android.preference.PreferenceManager;
import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.Directory;
import android.provider.ContactsContract.RawContacts;
import android.provider.ContactsContract.SearchSnippetColumns;
@@ -209,7 +207,8 @@
if (isQuickContactEnabled()) {
bindQuickContact(view, partition, cursor, ContactQuery.CONTACT_PHOTO_ID,
- ContactQuery.CONTACT_ID, ContactQuery.CONTACT_LOOKUP_KEY);
+ ContactQuery.CONTACT_PHOTO_URI, ContactQuery.CONTACT_ID,
+ ContactQuery.CONTACT_LOOKUP_KEY);
} else {
bindPhoto(view, partition, cursor);
}
diff --git a/src/com/android/contacts/list/PhoneNumberListAdapter.java b/src/com/android/contacts/list/PhoneNumberListAdapter.java
index 79114eb..960614c 100644
--- a/src/com/android/contacts/list/PhoneNumberListAdapter.java
+++ b/src/com/android/contacts/list/PhoneNumberListAdapter.java
@@ -15,8 +15,6 @@
*/
package com.android.contacts.list;
-import com.android.contacts.R;
-
import android.content.ContentUris;
import android.content.Context;
import android.content.CursorLoader;
@@ -262,7 +260,9 @@
if (isFirstEntry) {
bindName(view, cursor);
if (isQuickContactEnabled()) {
- bindQuickContact(view, partition, cursor, PhoneQuery.PHONE_PHOTO_ID,
+ // No need for photo uri here, because we can not have directory results. If we
+ // ever do, we need to add photo uri to the query
+ bindQuickContact(view, partition, cursor, PhoneQuery.PHONE_PHOTO_ID, -1,
PhoneQuery.PHONE_CONTACT_ID, PhoneQuery.PHONE_LOOKUP_KEY);
} else {
bindPhoto(view, cursor);