From bc6bb15fded5766cc61bb88cbad0684c4692a90d Mon Sep 17 00:00:00 2001
From: M66B <M66B@users.noreply.github.com>
Date: Thu, 20 Sep 2018 11:24:34 +0000
Subject: [PATCH] Use contact display names

Fixes #117
---
 .../eu/faircode/email/ServiceSynchronize.java    | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
index ac2e029d..35e5a0a0 100644
--- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
+++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
@@ -1660,21 +1660,29 @@ public class ServiceSynchronize extends LifecycleService {
                         == PackageManager.PERMISSION_GRANTED) {
                     try {
                         if (message.from != null)
-                            for (Address from : message.from) {
-                                String email = ((InternetAddress) from).getAddress();
+                            for (int i = 0; i < message.from.length; i++) {
+                                String email = ((InternetAddress) message.from[i]).getAddress();
                                 Cursor cursor = null;
                                 try {
                                     ContentResolver resolver = context.getContentResolver();
                                     cursor = resolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
-                                            new String[]{ContactsContract.CommonDataKinds.Photo.CONTACT_ID},
+                                            new String[]{
+                                                    ContactsContract.CommonDataKinds.Photo.CONTACT_ID,
+                                                    ContactsContract.Contacts.DISPLAY_NAME
+                                            },
                                             ContactsContract.CommonDataKinds.Email.ADDRESS + " = ?",
                                             new String[]{email}, null);
                                     if (cursor.moveToNext()) {
                                         int colContactId = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Photo.CONTACT_ID);
+                                        int colDisplayName = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
                                         long contactId = cursor.getLong(colContactId);
+                                        String displayName = cursor.getString(colDisplayName);
+
                                         Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactId);
                                         message.avatar = uri.toString();
-                                        break;
+
+                                        if (!TextUtils.isEmpty(displayName))
+                                            ((InternetAddress) message.from[i]).setPersonal(displayName);
                                     }
                                 } finally {
                                     if (cursor != null)