From 0223efaf8a6a3d532089c3136a48a000199cb69c Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 5 Feb 2021 09:17:34 +0100 Subject: [PATCH] Added retry for sent orphans --- app/src/main/java/eu/faircode/email/DaoMessage.java | 9 +++++++++ .../main/java/eu/faircode/email/FragmentMessages.java | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index c5ff979c2f..636b3a5145 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -805,6 +805,15 @@ public interface DaoMessage { " AND m.msgid = message.msgid)") int deleteOrphans(long folder); + @Query("SELECT * FROM message" + + " WHERE folder = :folder" + + " AND uid IS NULL" + + " AND NOT EXISTS" + + " (SELECT * FROM operation" + + " WHERE operation.message = message.id" + + " AND operation.name = '" + EntityOperation.EXISTS + "')") + List getSentOrphans(long folder); + @Query("SELECT id FROM message" + " WHERE folder = :folder" + " AND received < :before" + diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index b6c23ce331..6dae7bdcc9 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -1519,6 +1519,13 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. force = true; } } + + if (EntityFolder.SENT.equals(folder.type)) { + List orphans = db.message().getSentOrphans(folder.id); + if (orphans != null) + for (EntityMessage orphan : orphans) + EntityOperation.queue(context, orphan, EntityOperation.EXISTS); + } } db.setTransactionSuccessful();