summaryrefslogtreecommitdiff
path: root/src/com/android/contacts/editor/CompactRawContactsEditorView.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/contacts/editor/CompactRawContactsEditorView.java')
-rw-r--r--src/com/android/contacts/editor/CompactRawContactsEditorView.java27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/com/android/contacts/editor/CompactRawContactsEditorView.java b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
index fdb29ab4a..b841f62a8 100644
--- a/src/com/android/contacts/editor/CompactRawContactsEditorView.java
+++ b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
@@ -263,7 +263,7 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O
public void setState(RawContactDeltaList rawContactDeltas,
MaterialColorMapUtils.MaterialPalette materialPalette,
- ViewIdGenerator viewIdGenerator) {
+ ViewIdGenerator viewIdGenerator, long photoId) {
mNames.removeAllViews();
mPhoneticNames.removeAllViews();
mNicknames.removeAllViews();
@@ -281,7 +281,7 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O
mMaterialPalette = materialPalette;
vlog("Setting compact editor state from " + rawContactDeltas);
- addPhotoView(rawContactDeltas, viewIdGenerator);
+ addPhotoView(rawContactDeltas, viewIdGenerator, photoId);
addStructuredNameView(rawContactDeltas);
addEditorViews(rawContactDeltas);
removeExtraEmptyTextFields(mPhoneNumbers);
@@ -289,7 +289,8 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O
}
private void addPhotoView(RawContactDeltaList rawContactDeltas,
- ViewIdGenerator viewIdGenerator) {
+ ViewIdGenerator viewIdGenerator, long photoId) {
+ // Look for a match for the photo ID that was passed in
for (RawContactDelta rawContactDelta : rawContactDeltas) {
if (!rawContactDelta.isVisible()) continue;
final AccountType accountType = rawContactDelta.getAccountType(mAccountTypeManager);
@@ -301,6 +302,26 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O
// Look for a non-empty super primary photo
final DataKind dataKind = accountType.getKindForMimetype(Photo.CONTENT_ITEM_TYPE);
if (dataKind != null) {
+ for (ValuesDelta valuesDelta
+ : rawContactDelta.getMimeEntries(Photo.CONTENT_ITEM_TYPE)) {
+ if (valuesDelta != null && valuesDelta.getId() != null
+ && valuesDelta.getId().equals(photoId)) {
+ mPhotoRawContactId = rawContactDelta.getRawContactId();
+ mPhoto.setValues(dataKind, valuesDelta, rawContactDelta,
+ /* readOnly =*/ !dataKind.editable, mMaterialPalette,
+ viewIdGenerator);
+ return;
+ }
+ }
+ }
+ }
+
+ // Look for a non-empty super primary photo
+ for (RawContactDelta rawContactDelta : rawContactDeltas) {
+ if (!rawContactDelta.isVisible()) continue;
+ final AccountType accountType = rawContactDelta.getAccountType(mAccountTypeManager);
+ final DataKind dataKind = accountType.getKindForMimetype(Photo.CONTENT_ITEM_TYPE);
+ if (dataKind != null) {
final ValuesDelta valuesDelta = getNonEmptySuperPrimaryValuesDeltas(
rawContactDelta, Photo.CONTENT_ITEM_TYPE, dataKind);
if (valuesDelta != null) {