Displaying phonetic name when available.

Change-Id: Ia9293fdc19b1b22ad3b1366ee1e2850199739664
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index 3f5bf29..5cc0254 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -291,7 +291,8 @@
         Contacts.CONTACT_PRESENCE,          // 6
         Contacts.PHOTO_ID,                  // 7
         Contacts.LOOKUP_KEY,                // 8
-        Contacts.HAS_PHONE_NUMBER,          // 9
+        Contacts.PHONETIC_NAME,             // 9
+        Contacts.HAS_PHONE_NUMBER,          // 10
     };
     static final String[] CONTACTS_SUMMARY_PROJECTION_FROM_EMAIL = new String[] {
         Contacts._ID,                       // 0
@@ -303,6 +304,7 @@
         Contacts.CONTACT_PRESENCE,          // 6
         Contacts.PHOTO_ID,                  // 7
         Contacts.LOOKUP_KEY,                // 8
+        Contacts.PHONETIC_NAME,             // 9
         // email lookup doesn't included HAS_PHONE_NUMBER in projection
     };
 
@@ -316,10 +318,11 @@
         Contacts.CONTACT_PRESENCE,          // 6
         Contacts.PHOTO_ID,                  // 7
         Contacts.LOOKUP_KEY,                // 8
-        Contacts.HAS_PHONE_NUMBER,          // 9
-        SearchSnippetColumns.SNIPPET_MIMETYPE, // 10
-        SearchSnippetColumns.SNIPPET_DATA1,     // 11
-        SearchSnippetColumns.SNIPPET_DATA4,     // 12
+        Contacts.PHONETIC_NAME,             // 9
+        Contacts.HAS_PHONE_NUMBER,          // 10
+        SearchSnippetColumns.SNIPPET_MIMETYPE, // 11
+        SearchSnippetColumns.SNIPPET_DATA1,     // 12
+        SearchSnippetColumns.SNIPPET_DATA4,     // 13
     };
 
     static final String[] LEGACY_PEOPLE_PROJECTION = new String[] {
@@ -340,10 +343,11 @@
     static final int SUMMARY_PRESENCE_STATUS_COLUMN_INDEX = 6;
     static final int SUMMARY_PHOTO_ID_COLUMN_INDEX = 7;
     static final int SUMMARY_LOOKUP_KEY_COLUMN_INDEX = 8;
-    static final int SUMMARY_HAS_PHONE_COLUMN_INDEX = 9;
-    static final int SUMMARY_SNIPPET_MIMETYPE_COLUMN_INDEX = 10;
-    static final int SUMMARY_SNIPPET_DATA1_COLUMN_INDEX = 11;
-    static final int SUMMARY_SNIPPET_DATA4_COLUMN_INDEX = 12;
+    static final int SUMMARY_PHONETIC_NAME_COLUMN_INDEX = 9;
+    static final int SUMMARY_HAS_PHONE_COLUMN_INDEX = 10;
+    static final int SUMMARY_SNIPPET_MIMETYPE_COLUMN_INDEX = 11;
+    static final int SUMMARY_SNIPPET_DATA1_COLUMN_INDEX = 12;
+    static final int SUMMARY_SNIPPET_DATA4_COLUMN_INDEX = 13;
 
     static final String[] PHONES_PROJECTION = new String[] {
         Phone._ID, //0
@@ -2550,6 +2554,7 @@
         public ImageView nonQuickContactPhotoView;
         public CharArrayBuffer highlightedTextBuffer = new CharArrayBuffer(128);
         public TextWithHighlighting textWithHighlighting;
+        public CharArrayBuffer phoneticNameBuffer = new CharArrayBuffer(128);
     }
 
     final static class PinnedHeaderCache {
@@ -2856,6 +2861,7 @@
             int labelColumnIndex;
             int defaultType;
             int nameColumnIndex;
+            int phoneticNameColumnIndex;
             boolean displayAdditionalData = mDisplayAdditionalData;
             boolean highlightingEnabled = false;
             switch(mMode) {
@@ -2863,6 +2869,7 @@
                 case MODE_LEGACY_PICK_PHONE:
                 case MODE_QUERY_PICK_PHONE: {
                     nameColumnIndex = PHONE_DISPLAY_NAME_COLUMN_INDEX;
+                    phoneticNameColumnIndex = -1;
                     dataColumnIndex = PHONE_NUMBER_COLUMN_INDEX;
                     typeColumnIndex = PHONE_TYPE_COLUMN_INDEX;
                     labelColumnIndex = PHONE_LABEL_COLUMN_INDEX;
@@ -2872,6 +2879,7 @@
                 case MODE_PICK_POSTAL:
                 case MODE_LEGACY_PICK_POSTAL: {
                     nameColumnIndex = POSTAL_DISPLAY_NAME_COLUMN_INDEX;
+                    phoneticNameColumnIndex = -1;
                     dataColumnIndex = POSTAL_ADDRESS_COLUMN_INDEX;
                     typeColumnIndex = POSTAL_TYPE_COLUMN_INDEX;
                     labelColumnIndex = POSTAL_LABEL_COLUMN_INDEX;
@@ -2880,6 +2888,7 @@
                 }
                 default: {
                     nameColumnIndex = getSummaryDisplayNameColumnIndex();
+                    phoneticNameColumnIndex = SUMMARY_PHONETIC_NAME_COLUMN_INDEX;
                     dataColumnIndex = -1;
                     typeColumnIndex = -1;
                     labelColumnIndex = -1;
@@ -2998,7 +3007,21 @@
 
             if (!displayAdditionalData) {
                 cache.dataView.setVisibility(View.GONE);
-                cache.labelView.setVisibility(View.GONE);
+
+                if (phoneticNameColumnIndex != -1) {
+
+                    // Set the name
+                    cursor.copyStringToBuffer(phoneticNameColumnIndex, cache.phoneticNameBuffer);
+                    int phoneticNameSize = cache.phoneticNameBuffer.sizeCopied;
+                    if (phoneticNameSize != 0) {
+                        cache.labelView.setText(cache.phoneticNameBuffer.data, 0, phoneticNameSize);
+                        cache.labelView.setVisibility(View.VISIBLE);
+                    } else {
+                        cache.labelView.setVisibility(View.GONE);
+                    }
+                } else {
+                    cache.labelView.setVisibility(View.GONE);
+                }
                 return;
             }