FIX: Must show organization even if "position" is empty; FIX: Split nicknames into separate list (was combined with organizations and resulted in wrong sort order).
Bug: 2421235

Change-Id: I2cd2ecedc4c0ae05e916ecbdc912eb7715e41fee
diff --git a/src/com/android/contacts/ViewContactActivity.java b/src/com/android/contacts/ViewContactActivity.java
index 2b0c594..5313c28 100644
--- a/src/com/android/contacts/ViewContactActivity.java
+++ b/src/com/android/contacts/ViewContactActivity.java
@@ -128,6 +128,7 @@
     /* package */ ArrayList<ViewEntry> mEmailEntries = new ArrayList<ViewEntry>();
     /* package */ ArrayList<ViewEntry> mPostalEntries = new ArrayList<ViewEntry>();
     /* package */ ArrayList<ViewEntry> mImEntries = new ArrayList<ViewEntry>();
+    /* package */ ArrayList<ViewEntry> mNicknameEntries = new ArrayList<ViewEntry>();
     /* package */ ArrayList<ViewEntry> mOrganizationEntries = new ArrayList<ViewEntry>();
     /* package */ ArrayList<ViewEntry> mGroupEntries = new ArrayList<ViewEntry>();
     /* package */ ArrayList<ViewEntry> mOtherEntries = new ArrayList<ViewEntry>();
@@ -231,6 +232,7 @@
         mSections.add(mEmailEntries);
         mSections.add(mImEntries);
         mSections.add(mPostalEntries);
+        mSections.add(mNicknameEntries);
         mSections.add(mOrganizationEntries);
         mSections.add(mGroupEntries);
         mSections.add(mOtherEntries);
@@ -894,11 +896,15 @@
                             entry.applyStatus(status, false);
                         }
                         mImEntries.add(entry);
-                    } else if ((Organization.CONTENT_ITEM_TYPE.equals(mimeType)
-                            || Nickname.CONTENT_ITEM_TYPE.equals(mimeType)) && hasData) {
-                        // Build organization and note entries
+                    } else if (Organization.CONTENT_ITEM_TYPE.equals(mimeType) &&
+                            (hasData || !TextUtils.isEmpty(entry.label))) {
+                        // Build organization entries
                         entry.uri = null;
                         mOrganizationEntries.add(entry);
+                    } else if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType) && hasData) {
+                        // Build nickname entries
+                        entry.uri = null;
+                        mNicknameEntries.add(entry);
                     } else if (Note.CONTENT_ITEM_TYPE.equals(mimeType) && hasData) {
                         // Build note entries
                         entry.uri = null;