UI: display bestID when formattedName is empty

This commit use bestID of last used contactMethod associated with
contact if formattedName is empty. It prevents SmartList and Contacts
from displaying placeholder text.

Change-Id: Ieb22697cb22c150af26d3de7caee49a9f92bc04a
Tuleap: #1585
Reviewed-by: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
diff --git a/src/SmartViewVC.mm b/src/SmartViewVC.mm
index 97f5d81..f6e02e3 100644
--- a/src/SmartViewVC.mm
+++ b/src/SmartViewVC.mm
@@ -261,7 +261,20 @@
     }
 
     NSTextField* displayName = [result viewWithTag:DISPLAYNAME_TAG];
-    [displayName setStringValue:qIdx.data((int)Ring::Role::Name).toString().toNSString()];
+    NSString* displayNameString = qIdx.data((int)Ring::Role::Name).toString().toNSString();
+    if(displayNameString.length == 0) {
+        QVector<ContactMethod*> contactMethods = RecentModel::instance().getContactMethods(qIdx);
+        if(contactMethods.count() > 0) {
+            ContactMethod* method = contactMethods[0];
+            for(int i = 0; i < contactMethods.count(); i++) {
+                if (contactMethods[i]->lastUsed() > method->lastUsed()) {
+                    method = contactMethods[i];
+                }
+            }
+            displayNameString = method->getBestId().toNSString();
+        }
+    }
+    [displayName setStringValue:displayNameString];
     NSImageView* photoView = [result viewWithTag:IMAGE_TAG];
 
     [photoView setImage:QtMac::toNSImage(qvariant_cast<QPixmap>(qIdx.data(Qt::DecorationRole)))];