From 25112c1fe38cde569f082cbfacd830467383ceeb Mon Sep 17 00:00:00 2001 From: Grishka Date: Tue, 1 Oct 2024 20:36:25 +0300 Subject: [PATCH] Refresh FCM token every 30 days Fixes #892 --- .../android/api/PushSubscriptionManager.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java b/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java index a903f70d0..b1995dbc5 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java +++ b/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java @@ -45,7 +45,6 @@ import javax.crypto.IllegalBlockSizeException; import javax.crypto.KeyAgreement; import javax.crypto.Mac; import javax.crypto.NoSuchPaddingException; -import javax.crypto.SecretKey; import javax.crypto.spec.GCMParameterSpec; import javax.crypto.spec.SecretKeySpec; @@ -82,6 +81,7 @@ public class PushSubscriptionManager{ private static final String EXTRA_SENDER = "sender"; private static final String EXTRA_SCOPE = "scope"; private static final String KID_VALUE="|ID|1|"; // request ID? + private static final long TOKEN_REFRESH_INTERVAL=30*24*60*60*1000L; private static String deviceToken; private String accountID; @@ -100,11 +100,12 @@ public class PushSubscriptionManager{ public static void tryRegisterFCM(){ deviceToken=getPrefs().getString("deviceToken", null); int tokenVersion=getPrefs().getInt("version", 0); - if(!TextUtils.isEmpty(deviceToken) && tokenVersion==BuildConfig.VERSION_CODE){ + long tokenLastRefreshed=getPrefs().getLong("lastRefresh", 0); + if(!TextUtils.isEmpty(deviceToken) && tokenVersion==BuildConfig.VERSION_CODE && System.currentTimeMillis()-tokenLastRefreshed