Editor should only show one name field.
BUG 24974860
Change-Id: Iaefd1fc42f440ca378aa4cc91b47e6688739107f
diff --git a/src/com/android/contacts/editor/CompactRawContactsEditorView.java b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
index 2bdd212..386a6b3 100644
--- a/src/com/android/contacts/editor/CompactRawContactsEditorView.java
+++ b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
@@ -686,6 +686,7 @@
mViewIdGenerator = viewIdGenerator;
mPhotoId = photoId;
mReadOnlyDisplayName = readOnlyDisplayName;
+
mHasNewContact = hasNewContact;
mIsUserProfile = isUserProfile;
mPrimaryAccount = primaryAccount;
@@ -762,12 +763,6 @@
new KindSectionData(accountType, dataKind, rawContactDelta);
kindSectionDataList.add(kindSectionData);
- // Note we must create nickname entries
- if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType)
- && kindSectionData.getValuesDeltas().isEmpty()) {
- RawContactModifier.insertChild(rawContactDelta, dataKind);
- }
-
vlog("parse: " + i + " " + dataKind.mimeType + " " +
kindSectionData.getValuesDeltas().size() + " value(s)");
}
@@ -775,9 +770,6 @@
}
private KindSectionDataList getOrCreateKindSectionDataList(String mimeType) {
- // Put structured names and nicknames together
- mimeType = Nickname.CONTENT_ITEM_TYPE.equals(mimeType)
- ? StructuredName.CONTENT_ITEM_TYPE : mimeType;
KindSectionDataList kindSectionDataList = mKindSectionDataMap.get(mimeType);
if (kindSectionDataList == null) {
kindSectionDataList = new KindSectionDataList();
@@ -1009,7 +1001,20 @@
i++;
final String mimeType = entry.getKey();
- final KindSectionDataList kindSectionDataList = entry.getValue();
+ KindSectionDataList kindSectionDataList = entry.getValue();
+ if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
+ // Only show one name editor view. Select one matched name to display according to
+ // the order: super primary name, first non-empty name, first empty name, null.
+ // The name should be the name displayed in Quick contact.
+ final Pair<KindSectionData,ValuesDelta> nameToDisplay =
+ kindSectionDataList.getEntryToDisplay(0L);
+ if (nameToDisplay != null) {
+ final KindSectionData nameKindSectionData = nameToDisplay.first;
+ kindSectionDataList = new KindSectionDataList();
+ kindSectionDataList.add(nameKindSectionData);
+ }
+ }
+
// Ignore mime types that we've already handled
if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) {