am 8f253545: Merge "bugfix: don\'t show name in nickname field" into lmp-mr1-dev

* commit '8f253545c6e2515625c0f2a872e5501984453949':
  bugfix: don't show name in nickname field
diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java
index e56571d..fe6ce7a 100644
--- a/src/com/android/contacts/editor/RawContactEditorView.java
+++ b/src/com/android/contacts/editor/RawContactEditorView.java
@@ -265,9 +265,15 @@
                 mPhoneticName.setValues(
                         type.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME),
                         primary, state, false, vig);
-                mNickName.setValues(
-                        type.getKindForMimetype(Nickname.CONTENT_ITEM_TYPE),
-                        primary, state, false, vig);
+                // It is useful to use Nickname outside of a KindSectionView so that we can treat it
+                // as a part of StructuredName's fake KindSectionView, even though it uses a
+                // different CP2 mime-type. We do a bit of extra work below to make this possible.
+                final DataKind nickNameKind = type.getKindForMimetype(Nickname.CONTENT_ITEM_TYPE);
+                ValuesDelta primaryNickNameEntry = state.getPrimaryEntry(nickNameKind.mimeType);
+                if (primaryNickNameEntry == null) {
+                    primaryNickNameEntry = RawContactModifier.insertChild(state, nickNameKind);
+                }
+                mNickName.setValues(nickNameKind, primaryNickNameEntry, state, false, vig);
                 mNickName.setDeletable(false);
             } else if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) {
                 // Handle special case editor for photos