From 4452f1c1b29f81b6aa4015bc28914c5c358ccde7 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 20 Jul 2022 20:43:15 +0200 Subject: [PATCH] Added expedite tolerance --- .../main/java/eu/faircode/email/ServiceAuthenticator.java | 2 ++ .../main/java/eu/faircode/email/ServiceSynchronize.java | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/ServiceAuthenticator.java b/app/src/main/java/eu/faircode/email/ServiceAuthenticator.java index 268c38f127..a194dd7b8f 100644 --- a/app/src/main/java/eu/faircode/email/ServiceAuthenticator.java +++ b/app/src/main/java/eu/faircode/email/ServiceAuthenticator.java @@ -151,6 +151,8 @@ public class ServiceAuthenticator extends Authenticator { long now = new Date().getTime(); Long expiration = authState.getAccessTokenExpirationTime(); boolean needsRefresh = (expiration != null && expiration < now); + if (needsRefresh) + authState.setNeedsTokenRefresh(true); if (!needsRefresh && forceRefresh && expiration != null && diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index e127576aed..2248b69b6a 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -64,6 +64,8 @@ import com.sun.mail.imap.IMAPStore; import com.sun.mail.imap.protocol.IMAPProtocol; import com.sun.mail.imap.protocol.IMAPResponse; +import net.openid.appauth.AuthState; + import org.json.JSONObject; import java.io.File; @@ -2356,7 +2358,10 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences if (!account.isTransient(this)) { Long expirationTime = iservice.getAccessTokenExpirationTime(); - if (expirationTime != null && expirationTime < trigger) { + if (expirationTime != null && + expirationTime < trigger && + expirationTime > new Date().getTime()) { + expirationTime += AuthState.EXPIRY_TIME_TOLERANCE_MS; EntityLog.log(this, EntityLog.Type.Debug, "Expedite keep alive" + " from " + new Date(trigger) + " to " + new Date(expirationTime)); trigger = expirationTime;