From b50646d05ee0b45532bde3e42ae671f6faf38607 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 6 Aug 2018 18:11:24 +0000 Subject: [PATCH] Mark outbox messages read on sent --- .../main/java/eu/faircode/email/AdapterMessage.java | 9 ++++++--- .../main/java/eu/faircode/email/FragmentMessage.java | 4 +++- .../java/eu/faircode/email/ServiceSynchronize.java | 10 +++++++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 369a0039..2d3b9fe2 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -98,7 +98,8 @@ public class AdapterMessage extends RecyclerView.Adapter 0 ? View.VISIBLE : View.GONE); - boolean unseen = (message.thread == null ? message.unseen > 0 : !message.seen); + boolean unseen = (message.thread == null && !outbox ? message.unseen > 0 : !message.seen); int visibility = (unseen ? Typeface.BOLD : Typeface.NORMAL); holder.tvFrom.setTypeface(null, visibility); diff --git a/app/src/main/java/eu/faircode/email/FragmentMessage.java b/app/src/main/java/eu/faircode/email/FragmentMessage.java index 6fa520c4..cc8cf387 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessage.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessage.java @@ -25,6 +25,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.graphics.Typeface; import android.os.Bundle; +import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.constraint.Group; @@ -211,12 +212,13 @@ public class FragmentMessage extends FragmentEx { rvAttachment.setAdapter(adapter); final DB db = DB.getInstance(getContext()); + final boolean debug = PreferenceManager.getDefaultSharedPreferences(getContext()).getBoolean("debug", false); // Observe message db.message().liveMessage(id).observe(this, new Observer() { @Override public void onChanged(@Nullable final TupleMessageEx message) { - if (message == null || message.ui_hide) { + if (message == null || (message.ui_hide && !debug)) { // Message gone (moved, deleted) if (FragmentMessage.this.isVisible()) getFragmentManager().popBackStack(); diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 1f7349b5..e08d362c 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -790,7 +790,9 @@ public class ServiceSynchronize extends LifecycleService { Log.i(Helper.TAG, "Sent via " + ident.host + "/" + ident.user + " to " + TextUtils.join(", ", to)); - msg.ui_hide = true; + msg.sent = new Date().getTime(); + msg.seen = true; + msg.ui_seen = true; message.updateMessage(msg); // TODO: purge sent messages } finally { @@ -860,6 +862,12 @@ public class ServiceSynchronize extends LifecycleService { // Response codes: https://www.ietf.org/rfc/rfc821.txt Log.w(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + // There is probably no use in repeating + operation.deleteOperation(op.id); + reportError(null, folder.name, ex); + } catch (NullPointerException ex) { + Log.w(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); + // There is probably no use in repeating operation.deleteOperation(op.id); reportError(null, folder.name, ex);