Merge "Fixed contact button in send to labels" into ub-contactsdialer-h-dev
diff --git a/src/com/android/contacts/common/list/MultiSelectEntryContactListAdapter.java b/src/com/android/contacts/common/list/MultiSelectEntryContactListAdapter.java
index 1a18f46..efba9ca 100644
--- a/src/com/android/contacts/common/list/MultiSelectEntryContactListAdapter.java
+++ b/src/com/android/contacts/common/list/MultiSelectEntryContactListAdapter.java
@@ -22,6 +22,7 @@
 import android.view.View;
 import android.widget.CheckBox;
 
+import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.group.GroupUtil;
 
 import java.util.TreeSet;
@@ -157,6 +158,24 @@
         bindCheckBox(view, cursor, partition == ContactsContract.Directory.DEFAULT);
     }
 
+    /**
+      * Loads the photo for the photo view.
+      * @param photoIdColumn Index of the photo id column
+      * @param lookUpKeyColumn Index of the lookup key column
+      * @param displayNameColumn Index of the display name column
+      */
+    protected void bindPhoto(final ContactListItemView view, final Cursor cursor,
+           final int photoIdColumn, final int lookUpKeyColumn, final int displayNameColumn) {
+        final long photoId = cursor.isNull(photoIdColumn)
+            ? 0 : cursor.getLong(photoIdColumn);
+        final ContactPhotoManager.DefaultImageRequest imageRequest = photoId == 0
+            ? getDefaultImageRequestFromCursor(cursor, displayNameColumn,
+            lookUpKeyColumn)
+            : null;
+        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
+                imageRequest);
+    }
+
     private void bindCheckBox(ContactListItemView view, Cursor cursor, boolean isLocalDirectory) {
         // Disable clicking on all contacts from remote directories when showing check boxes. We do
         // this by telling the view to handle clicking itself.
diff --git a/src/com/android/contacts/group/GroupMembersAdapter.java b/src/com/android/contacts/group/GroupMembersAdapter.java
index af1f61e..c501984 100644
--- a/src/com/android/contacts/group/GroupMembersAdapter.java
+++ b/src/com/android/contacts/group/GroupMembersAdapter.java
@@ -150,7 +150,8 @@
         final ContactListItemView view = (ContactListItemView) v;
         bindSectionHeaderAndDivider(view, position);
         bindName(view, cursor);
-        bindPhoto(view, cursor);
+        bindPhoto(view, cursor, GroupMembersQuery.CONTACT_PHOTO_ID,
+                GroupMembersQuery.CONTACT_LOOKUP_KEY, GroupMembersQuery.CONTACT_DISPLAY_NAME);
         bindDeleteButton(view, position);
     }
 
@@ -169,17 +170,6 @@
                 getContactNameDisplayOrder());
     }
 
-    private void bindPhoto(final ContactListItemView view, Cursor cursor) {
-        final long photoId = cursor.isNull(GroupMembersQuery.CONTACT_PHOTO_ID)
-                ? 0 : cursor.getLong(GroupMembersQuery.CONTACT_PHOTO_ID);
-        final DefaultImageRequest imageRequest = photoId == 0
-                ? getDefaultImageRequestFromCursor(cursor, GroupMembersQuery.CONTACT_DISPLAY_NAME,
-                        GroupMembersQuery.CONTACT_LOOKUP_KEY)
-                : null;
-        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
-                imageRequest);
-    }
-
     private void bindDeleteButton(final ContactListItemView view, int position) {
         if (mDisplayDeleteButtons) {
             view.getDeleteImageButton(getDeleteContactListener(), position);
diff --git a/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java b/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java
index af9ee52..7f4bb4b 100644
--- a/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java
+++ b/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java
@@ -29,6 +29,7 @@
 
 import android.provider.ContactsContract.CommonDataKinds.Email;
 
+import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.list.ContactListItemView;
 import com.android.contacts.common.list.MultiSelectEntryContactListAdapter;
 import com.android.contacts.common.preference.ContactsPreferences;
@@ -162,9 +163,8 @@
         bindViewId(view, cursor, EmailQuery.EMAIL_ID);
         if (isFirstEntry) {
             bindName(view, cursor);
-            bindQuickContact(view, partition, cursor, EmailQuery.PHOTO_ID,
-                    EmailQuery.PHOTO_URI, EmailQuery.CONTACT_ID,
-                    EmailQuery.LOOKUP_KEY, EmailQuery.DISPLAY_NAME);
+            bindPhoto(view, cursor, EmailQuery.PHOTO_ID, EmailQuery.LOOKUP_KEY,
+                    EmailQuery.DISPLAY_NAME);
         } else {
             unbindName(view);
             view.removePhotoView(true, false);
diff --git a/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java b/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java
index 985809b..6bf6d5e 100644
--- a/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java
+++ b/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java
@@ -29,6 +29,7 @@
 
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 
+import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.list.ContactListItemView;
 import com.android.contacts.common.list.MultiSelectEntryContactListAdapter;
 import com.android.contacts.common.preference.ContactsPreferences;
@@ -162,9 +163,8 @@
         bindViewId(view, cursor, PhoneQuery.PHONE_ID);
         if (isFirstEntry) {
             bindName(view, cursor);
-            bindQuickContact(view, partition, cursor, PhoneQuery.PHOTO_ID,
-                        PhoneQuery.PHOTO_URI, PhoneQuery.CONTACT_ID,
-                        PhoneQuery.LOOKUP_KEY, PhoneQuery.DISPLAY_NAME);
+            bindPhoto(view, cursor, PhoneQuery.PHOTO_ID, PhoneQuery.LOOKUP_KEY,
+                PhoneQuery.DISPLAY_NAME);
         } else {
             unbindName(view);
             view.removePhotoView(true, false);