From 482875dfcd71f6b991e7ccd853641a87531a8885 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 4 Feb 2019 11:45:38 +0000 Subject: [PATCH] Get lookup URIs on sync --- .../eu/faircode/email/AdapterMessage.java | 50 +++++++++---------- .../java/eu/faircode/email/ContactInfo.java | 42 ++++++++++++++++ .../java/eu/faircode/email/EntityMessage.java | 2 +- .../eu/faircode/email/ServiceSynchronize.java | 15 +++++- 4 files changed, 80 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 7a536e0a0e..4dfa30e83c 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -638,13 +638,24 @@ public class AdapterMessage extends RecyclerView.Adapter 0 ? R.drawable.baseline_star_24 : R.drawable.baseline_star_border_24); - ivFlagged.setImageTintList(ColorStateList.valueOf(flagged > 0 ? colorAccent : textColorSecondary)); - ivFlagged.setVisibility(message.uid == null ? View.INVISIBLE : View.VISIBLE); + if (message.avatar != null) { + if (autohtml) + properties.setValue("html", message.id, true); + + if (autoimages) + properties.setValue("images", message.id, true); + } + + if (viewType == ViewType.THREAD) { + boolean show_expanded = properties.getValue("expanded", message.id); + if (show_expanded) + bindExpanded(message); + else { + properties.setBody(message.id, null); + properties.setHtml(message.id, null); + } + } } private void clearExpanded() { @@ -675,6 +686,13 @@ public class AdapterMessage extends RecyclerView.Adapter 0 ? R.drawable.baseline_star_24 : R.drawable.baseline_star_border_24); + ivFlagged.setImageTintList(ColorStateList.valueOf(flagged > 0 ? colorAccent : textColorSecondary)); + ivFlagged.setVisibility(message.uid == null ? View.INVISIBLE : View.VISIBLE); + } + private void bindContactInfo(ContactInfo info, TupleMessageEx message) { if (info.hasPhoto()) ivAvatar.setImageBitmap(info.getPhotoBitmap()); @@ -682,26 +700,6 @@ public class AdapterMessage extends RecyclerView.Adapter messageContact = new HashMap<>(); for (TupleMessageEx message : messages) - messageContact.put(message, - ContactInfo.get(this, message.from, false)); + messageContact.put(message, ContactInfo.get(this, message.from, false)); // Build pending intent Intent view = new Intent(this, ActivityView.class); @@ -2673,6 +2672,9 @@ public class ServiceSynchronize extends LifecycleService { message.ui_ignored = seen; message.ui_browsed = browsed; + Uri lookupUri = ContactInfo.getLookupUri(context, message.from); + message.avatar = (lookupUri == null ? null : lookupUri.toString()); + // Check sender Address sender = helper.getSender(); if (sender != null && senders.length > 0) { @@ -2747,6 +2749,15 @@ public class ServiceSynchronize extends LifecycleService { Log.i(folder.name + " updated id=" + message.id + " uid=" + message.uid + " unbrowse"); } + if (message.avatar == null) { + Uri lookupUri = ContactInfo.getLookupUri(context, message.from); + if (lookupUri != null) { + update = true; + message.avatar = lookupUri.toString(); + Log.i(folder.name + " updated id=" + message.id + " lookup=" + lookupUri); + } + } + if (update) db.message().updateMessage(message); }