mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-13 12:33:42 +02:00
Restore delay send alarms
This commit is contained in:
@@ -465,8 +465,10 @@ public interface DaoMessage {
|
||||
" AND operation.name = '" + EntityOperation.ADD + "')")
|
||||
List<EntityMessage> getOrphans(long folder);
|
||||
|
||||
@Query("SELECT * FROM message WHERE NOT ui_snoozed IS NULL")
|
||||
List<EntityMessage> getSnoozed();
|
||||
@Query("SELECT * FROM message" +
|
||||
" WHERE (:folder IS NULL OR folder = :folder)" +
|
||||
" AND NOT ui_snoozed IS NULL")
|
||||
List<EntityMessage> getSnoozed(Long folder);
|
||||
|
||||
@Query("SELECT id AS _id, subject AS suggestion FROM message" +
|
||||
" WHERE subject LIKE :query" +
|
||||
|
||||
@@ -284,7 +284,7 @@ public class ServiceSend extends ServiceBase {
|
||||
|
||||
switch (op.name) {
|
||||
case EntityOperation.SYNC:
|
||||
db.folder().setFolderError(outbox.id, null);
|
||||
onSync(outbox);
|
||||
break;
|
||||
|
||||
case EntityOperation.SEND:
|
||||
@@ -344,6 +344,16 @@ public class ServiceSend extends ServiceBase {
|
||||
}
|
||||
}
|
||||
|
||||
private void onSync(EntityFolder outbox) {
|
||||
DB db = DB.getInstance(this);
|
||||
|
||||
db.folder().setFolderError(outbox.id, null);
|
||||
|
||||
// Restore snooze timers
|
||||
for (EntityMessage message : db.message().getSnoozed(outbox.id))
|
||||
EntityMessage.snooze(this, message.id, message.ui_snoozed);
|
||||
}
|
||||
|
||||
private void onSend(EntityMessage message) throws MessagingException, IOException {
|
||||
DB db = DB.getInstance(this);
|
||||
|
||||
@@ -545,6 +555,7 @@ public class ServiceSend extends ServiceBase {
|
||||
public void run() {
|
||||
try {
|
||||
DB db = DB.getInstance(context);
|
||||
|
||||
EntityFolder outbox = db.folder().getOutbox();
|
||||
if (outbox != null) {
|
||||
int operations = db.operation().getOperations(outbox.id).size();
|
||||
|
||||
@@ -1770,7 +1770,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
|
||||
db.message().clearNotifyingMessages();
|
||||
|
||||
// Restore snooze timers
|
||||
for (EntityMessage message : db.message().getSnoozed())
|
||||
for (EntityMessage message : db.message().getSnoozed(null))
|
||||
EntityMessage.snooze(context, message.id, message.ui_snoozed);
|
||||
|
||||
db.setTransactionSuccessful();
|
||||
|
||||
@@ -107,7 +107,7 @@ public class WorkerCleanup extends Worker {
|
||||
Log.i("Cleared message headers=" + headers);
|
||||
|
||||
// Restore alarms
|
||||
for (EntityMessage message : db.message().getSnoozed())
|
||||
for (EntityMessage message : db.message().getSnoozed(null))
|
||||
EntityMessage.snooze(context, message.id, message.ui_snoozed);
|
||||
|
||||
ServiceSynchronize.reschedule(context);
|
||||
|
||||
Reference in New Issue
Block a user