diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 0b3ec85a1b..7e81fc6d9f 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -291,6 +291,9 @@ public class AdapterMessage extends PagedListAdapter 0) - ivAvatar.setImageBitmap(Identicon.generate(message.from[0].toString(), dp24, 5, "light".equals(theme))); - else + Address[] addresses = (outgoing ? message.to : message.from); + if (addresses != null && addresses.length > 0) { + ivAvatar.setImageBitmap(Identicon.generate(addresses[0].toString(), dp24, 5, "light".equals(theme))); + photo = true; + } else ivAvatar.setImageDrawable(null); - photo = true; } ivAvatar.setVisibility(photo ? View.VISIBLE : View.GONE); @@ -328,9 +332,7 @@ public class AdapterMessage extends PagedListAdapter 0 ? View.VISIBLE : View.GONE); - if (EntityFolder.DRAFTS.equals(message.folderType) || - EntityFolder.OUTBOX.equals(message.folderType) || - EntityFolder.SENT.equals(message.folderType)) { + if (outgoing) { tvFrom.setText(MessageHelper.getFormattedAddresses(message.to, !compact)); tvTime.setText(DateUtils.getRelativeTimeSpanString(context, message.sent == null ? message.received : message.sent)); } else { diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 3dcddbc185..db8ca5de3e 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1848,9 +1848,14 @@ public class ServiceSynchronize extends LifecycleService { if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED) { try { - if (message.from != null) - for (int i = 0; i < message.from.length; i++) { - String email = ((InternetAddress) message.from[i]).getAddress(); + boolean outgoing = EntityFolder.DRAFTS.equals(folder.type) || + EntityFolder.OUTBOX.equals(folder.type) || + EntityFolder.SENT.equals(folder.type); + Address[] addresses = (outgoing ? message.to : message.from); + + if (addresses != null) + for (int i = 0; i < addresses.length; i++) { + String email = ((InternetAddress) addresses[i]).getAddress(); Cursor cursor = null; try { ContentResolver resolver = context.getContentResolver(); @@ -1874,7 +1879,7 @@ public class ServiceSynchronize extends LifecycleService { message.avatar = ContactsContract.Contacts.getLookupUri(contactId, lookupKey).toString(); if (!TextUtils.isEmpty(displayName)) - ((InternetAddress) message.from[i]).setPersonal(displayName); + ((InternetAddress) addresses[i]).setPersonal(displayName); } } finally { if (cursor != null)