Fix for bug 2100165.

Change-Id: Id147518259b94b1f398e538d0b7b509afd346006
diff --git a/src/com/android/contacts/model/HardCodedSources.java b/src/com/android/contacts/model/HardCodedSources.java
index f844c96..6b60f9c 100644
--- a/src/com/android/contacts/model/HardCodedSources.java
+++ b/src/com/android/contacts/model/HardCodedSources.java
@@ -715,13 +715,30 @@
         public CharSequence inflateUsing(Context context, Cursor cursor) {
             final EditType type = EntityModifier.getCurrentType(cursor, mKind);
             final boolean validString = (type != null && type.actionRes != 0);
-            return validString ? context.getText(type.actionRes) : null;
+            CharSequence actionString;
+            if (type.customColumn != null) {
+                final int index = cursor.getColumnIndex(type.customColumn);
+                final String customLabel = cursor.getString(index);
+                actionString = String.format(context.getString(type.actionRes),
+                        customLabel);
+            } else {
+                actionString = context.getText(type.actionRes);
+            }
+            return validString ? actionString : null;
         }
 
         public CharSequence inflateUsing(Context context, ContentValues values) {
             final EditType type = EntityModifier.getCurrentType(values, mKind);
             final boolean validString = (type != null && type.actionRes != 0);
-            return validString ? context.getText(type.actionRes) : null;
+            CharSequence actionString;
+            if (type.customColumn != null) {
+                final String customLabel = values.getAsString(type.customColumn);
+                actionString = String.format(context.getString(type.actionRes),
+                        customLabel);
+            } else {
+                actionString = context.getText(type.actionRes);
+            }
+            return validString ? actionString : null;
         }
     }
 
@@ -737,13 +754,30 @@
         public CharSequence inflateUsing(Context context, Cursor cursor) {
             final EditType type = EntityModifier.getCurrentType(cursor, mKind);
             final boolean validString = (type != null && type.actionAltRes != 0);
-            return validString ? context.getText(type.actionAltRes) : null;
+            CharSequence actionString;
+            if (type.customColumn != null) {
+                final int index = cursor.getColumnIndex(type.customColumn);
+                final String customLabel = cursor.getString(index);
+                actionString = String.format(context.getString(type.actionAltRes),
+                        customLabel);
+            } else {
+                actionString = context.getText(type.actionAltRes);
+            }
+            return validString ? actionString : null;
         }
 
         public CharSequence inflateUsing(Context context, ContentValues values) {
             final EditType type = EntityModifier.getCurrentType(values, mKind);
             final boolean validString = (type != null && type.actionAltRes != 0);
-            return validString ? context.getText(type.actionAltRes) : null;
+            CharSequence actionString;
+            if (type.customColumn != null) {
+                final String customLabel = values.getAsString(type.customColumn);
+                actionString = String.format(context.getString(type.actionAltRes),
+                        customLabel);
+            } else {
+                actionString = context.getText(type.actionAltRes);
+            }
+            return validString ? actionString : null;
         }
     }
 }