Restore delay send alarms

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

@ -465,8 +465,10 @@ public interface DaoMessage {
" AND operation.name = '" + EntityOperation.ADD + "')") " AND operation.name = '" + EntityOperation.ADD + "')")
List<EntityMessage> getOrphans(long folder); List<EntityMessage> getOrphans(long folder);
@Query("SELECT * FROM message WHERE NOT ui_snoozed IS NULL") @Query("SELECT * FROM message" +
List<EntityMessage> getSnoozed(); " 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" + @Query("SELECT id AS _id, subject AS suggestion FROM message" +
" WHERE subject LIKE :query" + " WHERE subject LIKE :query" +

@ -284,7 +284,7 @@ public class ServiceSend extends ServiceBase {
switch (op.name) { switch (op.name) {
case EntityOperation.SYNC: case EntityOperation.SYNC:
db.folder().setFolderError(outbox.id, null); onSync(outbox);
break; break;
case EntityOperation.SEND: 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 { private void onSend(EntityMessage message) throws MessagingException, IOException {
DB db = DB.getInstance(this); DB db = DB.getInstance(this);
@ -545,6 +555,7 @@ public class ServiceSend extends ServiceBase {
public void run() { public void run() {
try { try {
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
EntityFolder outbox = db.folder().getOutbox(); EntityFolder outbox = db.folder().getOutbox();
if (outbox != null) { if (outbox != null) {
int operations = db.operation().getOperations(outbox.id).size(); int operations = db.operation().getOperations(outbox.id).size();

@ -1770,7 +1770,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
db.message().clearNotifyingMessages(); db.message().clearNotifyingMessages();
// Restore snooze timers // Restore snooze timers
for (EntityMessage message : db.message().getSnoozed()) for (EntityMessage message : db.message().getSnoozed(null))
EntityMessage.snooze(context, message.id, message.ui_snoozed); EntityMessage.snooze(context, message.id, message.ui_snoozed);
db.setTransactionSuccessful(); db.setTransactionSuccessful();

@ -107,7 +107,7 @@ public class WorkerCleanup extends Worker {
Log.i("Cleared message headers=" + headers); Log.i("Cleared message headers=" + headers);
// Restore alarms // Restore alarms
for (EntityMessage message : db.message().getSnoozed()) for (EntityMessage message : db.message().getSnoozed(null))
EntityMessage.snooze(context, message.id, message.ui_snoozed); EntityMessage.snooze(context, message.id, message.ui_snoozed);
ServiceSynchronize.reschedule(context); ServiceSynchronize.reschedule(context);

Loading…
Cancel
Save