diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java
index 8872fec8f3..beaac620d8 100644
--- a/app/src/main/java/eu/faircode/email/FragmentAccount.java
+++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java
@@ -1161,6 +1161,8 @@ public class FragmentAccount extends FragmentBase {
}
}
+ boolean reschedule = (ignore_schedule != jconditions.optBoolean("ignore_schedule"));
+
try {
db.beginTransaction();
@@ -1340,7 +1342,10 @@ public class FragmentAccount extends FragmentBase {
db.endTransaction();
}
- ServiceSynchronize.eval(context, "save account");
+ if (reschedule)
+ ServiceSynchronize.reschedule(context);
+ else
+ ServiceSynchronize.eval(context, "save account");
if (!synchronize) {
NotificationManager nm = Helper.getSystemService(context, NotificationManager.class);
diff --git a/app/src/main/java/eu/faircode/email/FragmentPop.java b/app/src/main/java/eu/faircode/email/FragmentPop.java
index e4ae60f697..05c673f980 100644
--- a/app/src/main/java/eu/faircode/email/FragmentPop.java
+++ b/app/src/main/java/eu/faircode/email/FragmentPop.java
@@ -518,6 +518,8 @@ public class FragmentPop extends FragmentBase {
}
}
+ boolean reschedule = (ignore_schedule != jconditions.optBoolean("ignore_schedule"));
+
try {
db.beginTransaction();
@@ -608,7 +610,10 @@ public class FragmentPop extends FragmentBase {
db.endTransaction();
}
- ServiceSynchronize.eval(context, "POP3");
+ if (reschedule)
+ ServiceSynchronize.reschedule(context);
+ else
+ ServiceSynchronize.eval(context, "POP3");
if (!synchronize) {
NotificationManager nm = Helper.getSystemService(context, NotificationManager.class);
diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
index bd9dbb27d6..6c1500f0a4 100644
--- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
+++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
@@ -1224,7 +1224,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
public void delegate() {
try {
long now = new Date().getTime();
- long[] schedule = ServiceSynchronize.getSchedule(ServiceSynchronize.this);
+ long[] schedule = getSchedule(ServiceSynchronize.this);
boolean scheduled = (schedule == null || (now >= schedule[0] && now < schedule[1]));
boolean work = false;
@@ -2350,7 +2350,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
try {
latch.await(5000L, TimeUnit.MILLISECONDS);
} catch (InterruptedException ex) {
- Log.w(ex);
+ Log.i(ex);
}
// Stop executing operations
@@ -2915,7 +2915,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
am.cancel(pi);
long now = new Date().getTime();
- long[] schedule = ServiceSynchronize.getSchedule(context);
+ long[] schedule = getSchedule(context);
boolean scheduled = (schedule == null || (now >= schedule[0] && now < schedule[1]));
if (schedule != null) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d2c01d6040..a1337fecef 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -951,7 +951,7 @@
Use \'Date\' header (sent time)
Changes will be applied to new messages only
Connect only via unmetered networks
- Sync outside the schedule
+ Synchronize outside the schedule too
Add related identity (SMTP server)
Check
Trust server certificate with fingerprint %1$s