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);