Merge "Use photoId of the raw contact in aggregation engine" into ub-contactsdialer-h-dev
diff --git a/src/com/android/contacts/editor/AggregationSuggestionEngine.java b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
index 4c45db8..ecd963b 100644
--- a/src/com/android/contacts/editor/AggregationSuggestionEngine.java
+++ b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
@@ -29,6 +29,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Email;
 import android.provider.ContactsContract.CommonDataKinds.Nickname;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Contacts.AggregationSuggestions;
@@ -40,6 +41,7 @@
 import com.android.contacts.common.model.ValuesDelta;
 import com.android.contacts.common.model.account.AccountWithDataSet;
 import com.android.contacts.compat.AggregationSuggestionsCompat;
+
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.Lists;
 
@@ -61,7 +63,7 @@
         public long contactId;
         public String contactLookupKey;
         public long rawContactId;
-        public long photoId;
+        public long photoId = -1;
         public String name;
         public String phoneNumber;
         public String emailAddress;
@@ -274,7 +276,8 @@
                         + Phone.CONTENT_ITEM_TYPE + "','"
                         + Email.CONTENT_ITEM_TYPE + "','"
                         + StructuredName.CONTENT_ITEM_TYPE + "','"
-                        + Nickname.CONTENT_ITEM_TYPE + "')"
+                        + Nickname.CONTENT_ITEM_TYPE + "','"
+                        + Photo.CONTENT_ITEM_TYPE + "')"
                         + " AND " + Data.CONTACT_ID + " IN (";
 
         public static final String[] COLUMNS = {
@@ -287,7 +290,7 @@
                 RawContacts.ACCOUNT_TYPE,
                 RawContacts.ACCOUNT_NAME,
                 RawContacts.DATA_SET,
-                Contacts.PHOTO_ID
+                Contacts.Photo._ID
         };
 
         public static final int CONTACT_ID = 0;
@@ -390,7 +393,6 @@
                 if (rawContactId != currentRawContactId) {
                     suggestion = new Suggestion();
                     suggestion.rawContactId = rawContactId;
-                    suggestion.photoId = mDataCursor.getLong(DataQuery.PHOTO_ID);
                     suggestion.contactId = mDataCursor.getLong(DataQuery.CONTACT_ID);
                     suggestion.contactLookupKey = mDataCursor.getString(DataQuery.LOOKUP_KEY);
                     final String accountName = mDataCursor.getString(DataQuery.ACCOUNT_NAME);
@@ -430,6 +432,11 @@
                     if (!TextUtils.isEmpty(data) && suggestion.name == null) {
                         suggestion.name = data;
                     }
+                } else if (Photo.CONTENT_ITEM_TYPE.equals(mimetype)) {
+                    final Long id = mDataCursor.getLong(DataQuery.PHOTO_ID);
+                    if (suggestion.photoId == -1) {
+                        suggestion.photoId = id;
+                    }
                 }
             }
         }