From 2ff785f013471cf47b1fca847b804d1f4bfcd048 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 1 Oct 2019 17:31:58 +0200 Subject: [PATCH] Simplify/fix auto seen/unflag --- app/src/main/java/eu/faircode/email/Core.java | 27 +++++++++---------- .../eu/faircode/email/EntityOperation.java | 10 ++++--- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index e57c7aaac6..06a8b90ea4 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -762,9 +762,6 @@ class Core { // Get arguments long id = jargs.getLong(0); - boolean autoread = jargs.optBoolean(1, false); - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - boolean autounflag = prefs.getBoolean("autounflag", false); Flags flags = ifolder.getPermanentFlags(); // Get target folder @@ -808,16 +805,16 @@ class Core { file.delete(); // Auto read - if (autoread && flags.contains(Flags.Flag.SEEN)) - icopy.setFlag(Flags.Flag.SEEN, true); + if (flags.contains(Flags.Flag.SEEN)) + icopy.setFlag(Flags.Flag.SEEN, message.ui_seen); // Auto unflag - if (autounflag && flags.contains(Flags.Flag.FLAGGED)) - icopy.setFlag(Flags.Flag.FLAGGED, false); + if (flags.contains(Flags.Flag.FLAGGED)) + icopy.setFlag(Flags.Flag.FLAGGED, message.ui_flagged); // Answered fix - if (message.ui_answered && flags.contains(Flags.Flag.ANSWERED)) - icopy.setFlag(Flags.Flag.ANSWERED, true); + if (flags.contains(Flags.Flag.ANSWERED)) + icopy.setFlag(Flags.Flag.ANSWERED, message.ui_answered); // Set drafts flag icopy.setFlag(Flags.Flag.DRAFT, EntityFolder.DRAFTS.equals(target.type)); @@ -831,16 +828,16 @@ class Core { EntityMessage message = map.get(imessage); // Auto read - if (autoread && flags.contains(Flags.Flag.SEEN)) - imessage.setFlag(Flags.Flag.SEEN, true); + if (flags.contains(Flags.Flag.SEEN)) + imessage.setFlag(Flags.Flag.SEEN, message.ui_seen); // Auto unflag - if (autounflag && flags.contains(Flags.Flag.FLAGGED)) - imessage.setFlag(Flags.Flag.FLAGGED, false); + if (flags.contains(Flags.Flag.FLAGGED)) + imessage.setFlag(Flags.Flag.FLAGGED, message.ui_flagged); // Answered fix - if (message.ui_answered && flags.contains(Flags.Flag.ANSWERED)) - imessage.setFlag(Flags.Flag.ANSWERED, true); + if (flags.contains(Flags.Flag.ANSWERED)) + imessage.setFlag(Flags.Flag.ANSWERED, message.ui_answered); } ifolder.copyMessages(map.keySet().toArray(new Message[0]), itarget); diff --git a/app/src/main/java/eu/faircode/email/EntityOperation.java b/app/src/main/java/eu/faircode/email/EntityOperation.java index 62b281293f..a77471b785 100644 --- a/app/src/main/java/eu/faircode/email/EntityOperation.java +++ b/app/src/main/java/eu/faircode/email/EntityOperation.java @@ -140,13 +140,12 @@ public class EntityOperation { else if (MOVE.equals(name)) { // Parameters: // 0: target folder - // 1: auto read + // (1: auto read) // 2: temporary message SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean autoread = prefs.getBoolean("autoread", false); - autoread = (autoread && jargs.optBoolean(1, true)); - jargs.put(1, autoread); + boolean autounflag = prefs.getBoolean("autounflag", false); EntityFolder source = db.folder().getFolder(message.folder); EntityFolder target = db.folder().getFolder(jargs.getLong(0)); @@ -156,11 +155,14 @@ public class EntityOperation { EntityLog.log(context, "Move message=" + message.id + ":" + message.subject + " source=" + source.id + ":" + source.name + "" + " target=" + target.id + ":" + target.name + - " autoread=" + autoread); + " auto read=" + autoread + " flag=" + autounflag); if (autoread) db.message().setMessageUiSeen(message.id, true); + if (autounflag) + db.message().setMessageUiFlagged(message.id, false, null); + if (!EntityFolder.ARCHIVE.equals(source.type) || EntityFolder.TRASH.equals(target.type) || EntityFolder.JUNK.equals(target.type)) db.message().setMessageUiHide(message.id, true);