From 3d13ea37739c59a60dd340e8d771e8b7828d1f68 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 5 Jul 2020 08:04:18 +0200 Subject: [PATCH] Prevent deleting executing operations --- app/src/main/java/eu/faircode/email/DaoOperation.java | 6 ++++-- app/src/main/java/eu/faircode/email/ServiceSend.java | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/DaoOperation.java b/app/src/main/java/eu/faircode/email/DaoOperation.java index 918619506d..07cbd77d42 100644 --- a/app/src/main/java/eu/faircode/email/DaoOperation.java +++ b/app/src/main/java/eu/faircode/email/DaoOperation.java @@ -150,6 +150,8 @@ public interface DaoOperation { @Query("DELETE FROM operation WHERE id = :id") int deleteOperation(long id); - @Query("DELETE FROM operation WHERE folder = :folder") - int deleteOperations(long folder); + @Query("DELETE FROM operation" + + " WHERE folder = :folder" + + " AND state <> 'executing'") + int deletePendingOperations(long folder); } diff --git a/app/src/main/java/eu/faircode/email/ServiceSend.java b/app/src/main/java/eu/faircode/email/ServiceSend.java index 12de59dc09..c05c63683f 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSend.java +++ b/app/src/main/java/eu/faircode/email/ServiceSend.java @@ -414,7 +414,7 @@ public class ServiceSend extends ServiceBase { db.folder().setFolderError(outbox.id, null); // Delete pending operations - db.operation().deleteOperations(outbox.id); + db.operation().deletePendingOperations(outbox.id); // Requeue operations NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);