From 46b69f1c0970dcaf542803b5383b1d2c844d01d2 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 1 Feb 2021 09:06:56 +0100 Subject: [PATCH] Refactoring --- .../main/java/eu/faircode/email/EntityMessage.java | 9 +++++++-- .../java/eu/faircode/email/FragmentCompose.java | 14 ++++++++++---- .../main/java/eu/faircode/email/MessageHelper.java | 2 +- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/EntityMessage.java b/app/src/main/java/eu/faircode/email/EntityMessage.java index dca95e6844..d41ca5e8cf 100644 --- a/app/src/main/java/eu/faircode/email/EntityMessage.java +++ b/app/src/main/java/eu/faircode/email/EntityMessage.java @@ -29,6 +29,7 @@ import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.preference.PreferenceManager; +import androidx.room.ColumnInfo; import androidx.room.Entity; import androidx.room.ForeignKey; import androidx.room.Index; @@ -101,6 +102,9 @@ public class EntityMessage implements Serializable { static final Integer PRIORITIY_NORMAL = 1; static final Integer PRIORITIY_HIGH = 2; + static final Integer DSN_NONE = 0; + static final Integer DSN_RECEIPT = 1; + static final Long SWIPE_ACTION_ASK = -1L; static final Long SWIPE_ACTION_SEEN = -2L; static final Long SWIPE_ACTION_SNOOZE = -3L; @@ -132,7 +136,8 @@ public class EntityMessage implements Serializable { public Integer priority; public Integer importance; public Boolean auto_submitted; - public Boolean receipt; // is receipt + @ColumnInfo(name = "receipt") + public Integer dsn; public Boolean receipt_request; public Address[] receipt_to; public Boolean dkim; @@ -481,7 +486,7 @@ public class EntityMessage implements Serializable { Objects.equals(this.wasforwardedfrom, other.wasforwardedfrom) && Objects.equals(this.thread, other.thread) && Objects.equals(this.priority, other.priority) && - Objects.equals(this.receipt, other.receipt) && + Objects.equals(this.dsn, other.dsn) && Objects.equals(this.receipt_request, other.receipt_request) && MessageHelper.equal(this.receipt_to, other.receipt_to) && Objects.equals(this.dkim, other.dkim) && diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 2a9c93a155..bb81b2d640 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -3668,7 +3668,7 @@ public class FragmentCompose extends FragmentBase { if ("reply_all".equals(action)) data.draft.cc = ref.getAllRecipients(data.identities, ref.account); else if ("receipt".equals(action)) { - data.draft.receipt = true; + data.draft.dsn = EntityMessage.DSN_RECEIPT; data.draft.receipt_request = false; } @@ -5931,8 +5931,12 @@ public class FragmentCompose extends FragmentBase { cbPlainOnly.setChecked(draft.plain_only != null && draft.plain_only); cbReceipt.setChecked(draft.receipt_request != null && draft.receipt_request); - cbPlainOnly.setVisibility(draft.receipt != null && draft.receipt ? View.GONE : View.VISIBLE); - cbReceipt.setVisibility(draft.receipt != null && draft.receipt ? View.GONE : View.VISIBLE); + cbPlainOnly.setVisibility( + draft.dsn != null && !EntityMessage.DSN_NONE.equals(draft.dsn) + ? View.GONE : View.VISIBLE); + cbReceipt.setVisibility( + draft.dsn != null && !EntityMessage.DSN_NONE.equals(draft.dsn) + ? View.GONE : View.VISIBLE); int encrypt = (draft.ui_encrypt == null ? EntityMessage.ENCRYPT_NONE : draft.ui_encrypt); for (int i = 0; i < encryptValues.length; i++) @@ -5941,7 +5945,9 @@ public class FragmentCompose extends FragmentBase { spEncrypt.setSelection(i); break; } - spEncrypt.setVisibility(draft.receipt != null && draft.receipt ? View.GONE : View.VISIBLE); + spEncrypt.setVisibility( + draft.dsn != null && !EntityMessage.DSN_NONE.equals(draft.dsn) + ? View.GONE : View.VISIBLE); int priority = (draft.priority == null ? 1 : draft.priority); spPriority.setTag(priority); diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 42c0c93e18..def4753094 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -539,7 +539,7 @@ public class MessageHelper { } static void build(Context context, EntityMessage message, List attachments, EntityIdentity identity, boolean send, MimeMessage imessage) throws IOException, MessagingException { - if (message.receipt != null && message.receipt) { + if (EntityMessage.DSN_RECEIPT.equals(message.dsn)) { // https://www.ietf.org/rfc/rfc3798.txt Multipart report = new MimeMultipart("report; report-type=disposition-notification");