diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index e94cb49112..093bc9c254 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -291,7 +291,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences accounts++; } if (current.accountState.synchronize) - operations += current.accountState.operations; + operations += current.getOperations(); long account = current.command.getLong("account", -1); if (account > 0 && !current.accountState.id.equals(account)) diff --git a/app/src/main/java/eu/faircode/email/TupleAccountNetworkState.java b/app/src/main/java/eu/faircode/email/TupleAccountNetworkState.java index 2ce6a6b6fd..a88fa5eb4b 100644 --- a/app/src/main/java/eu/faircode/email/TupleAccountNetworkState.java +++ b/app/src/main/java/eu/faircode/email/TupleAccountNetworkState.java @@ -69,6 +69,14 @@ public class TupleAccountNetworkState { return (this.networkState.isSuitable() && this.accountState.shouldRun(enabled)); } + public int getOperations() { + boolean unmetered = jconditions.optBoolean("unmetered"); + if (unmetered && !this.networkState.isUnmetered()) + return 0; + + return accountState.operations; + } + @Override public boolean equals(@Nullable Object obj) { if (obj instanceof TupleAccountNetworkState) {