diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index cb1da3b435..9c95c9b1ee 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1406,6 +1406,7 @@ class Core { db.message().setMessageError(message.id, "Message not found in target folder " + account.name + "/" + folder.name + " msgid=" + message.msgid); db.message().setMessageUiHide(message.id, false); + db.message().setMessageUiBusy(message.id, null); } else { // Mark source read if (autoread) diff --git a/app/src/main/java/eu/faircode/email/EntityOperation.java b/app/src/main/java/eu/faircode/email/EntityOperation.java index 102eb0f7e1..58138bc40b 100644 --- a/app/src/main/java/eu/faircode/email/EntityOperation.java +++ b/app/src/main/java/eu/faircode/email/EntityOperation.java @@ -111,6 +111,7 @@ public class EntityOperation { private static final int MAX_FETCH = 100; // operations private static final long FORCE_WITHIN = 30 * 1000; // milliseconds + private static final long ACROSS_BUSY = 2 * 3600 * 1000L; // milliseconds static void queue(Context context, EntityMessage message, String name, Object... values) { DB db = DB.getInstance(context); @@ -356,8 +357,10 @@ public class EntityOperation { db.message().setMessageUiHide(message.id, true); } } else { - if (!message.ui_deleted) + if (!message.ui_deleted) { db.message().setMessageUiHide(message.id, true); + db.message().setMessageUiBusy(target.id, new Date().getTime() + ACROSS_BUSY); + } } if (message.ui_snoozed != null &&