Restore delay send alarms

pull/178/head
M66B 5 years ago
parent c93ac65b0c
commit 9fa208930f

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

Loading…
Cancel
Save