From b6ee32e65c15233dafa7ea5408af19314157c1b0 Mon Sep 17 00:00:00 2001 From: insaneodyssey26 Date: Sun, 12 Apr 2026 00:34:54 +0530 Subject: [PATCH] FcmRefreshJob: Attempt token retrieval before checking Play Services status (#14662) --- .../securesms/jobs/FcmRefreshJob.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/FcmRefreshJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/FcmRefreshJob.java index 8af65ea7faa..23610f1ec80 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/FcmRefreshJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/FcmRefreshJob.java @@ -85,25 +85,25 @@ public void onRun() throws Exception { Log.i(TAG, "Reregistering FCM..."); - int result = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context); + Optional token = FcmUtil.getToken(context); - if (result != ConnectionResult.SUCCESS) { - notifyFcmFailure(); - } else { - Optional token = FcmUtil.getToken(context); - - if (token.isPresent()) { - String oldToken = SignalStore.account().getFcmToken(); + if (token.isPresent()) { + String oldToken = SignalStore.account().getFcmToken(); - if (!token.get().equals(oldToken)) { - int oldLength = oldToken != null ? oldToken.length() : -1; - Log.i(TAG, "Token changed. oldLength: " + oldLength + " newLength: " + token.get().length()); - } else { - Log.i(TAG, "Token didn't change."); - } + if (!token.get().equals(oldToken)) { + int oldLength = oldToken != null ? oldToken.length() : -1; + Log.i(TAG, "Token changed. oldLength: " + oldLength + " newLength: " + token.get().length()); + } else { + Log.i(TAG, "Token didn't change."); + } - NetworkResultUtil.toBasicLegacy(SignalNetwork.account().setFcmToken(token.get())); - SignalStore.account().setFcmToken(token.get()); + NetworkResultUtil.toBasicLegacy(SignalNetwork.account().setFcmToken(token.get())); + SignalStore.account().setFcmToken(token.get()); + } else { + int result = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context); + if (result != ConnectionResult.SUCCESS) { + Log.w(TAG, "FCM token retrieval failed, and Play Services are not available. Code: " + result); + notifyFcmFailure(); } else { throw new RetryLaterException(new IOException("Failed to retrieve a token.")); }