From f6aaef14340a93b91885a93c8a3fe087e4998b68 Mon Sep 17 00:00:00 2001 From: Alan Evans Date: Fri, 12 Feb 2021 11:24:12 -0400 Subject: [PATCH] Ensure MessageProcessReceiver pending result finished is called timely. --- .../messageprocessingalarm/MessageProcessReceiver.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/messageprocessingalarm/MessageProcessReceiver.java b/app/src/main/java/org/thoughtcrime/securesms/messageprocessingalarm/MessageProcessReceiver.java index e8c32ed1e3..b65ca28828 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messageprocessingalarm/MessageProcessReceiver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messageprocessingalarm/MessageProcessReceiver.java @@ -6,6 +6,8 @@ import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.os.Handler; +import android.os.Looper; import android.os.SystemClock; import androidx.annotation.NonNull; @@ -44,6 +46,8 @@ public final class MessageProcessReceiver extends BroadcastReceiver { } else if (BROADCAST_ACTION.equals(intent.getAction())) { PendingResult pendingResult = goAsync(); + new Handler(Looper.getMainLooper()).postDelayed(pendingResult::finish, JOB_TIMEOUT); + SignalExecutors.BOUNDED.submit(() -> { Log.i(TAG, "Running PushNotificationReceiveJob"); @@ -51,8 +55,6 @@ public final class MessageProcessReceiver extends BroadcastReceiver { .runSynchronously(PushNotificationReceiveJob.withDelayedForegroundService(FOREGROUND_DELAY), JOB_TIMEOUT); Log.i(TAG, "PushNotificationReceiveJob ended: " + (jobState.isPresent() ? jobState.get().toString() : "Job did not complete")); - - pendingResult.finish(); }); } }