From ad196bf03c9c543cfa29df8d7fcb33b38007a093 Mon Sep 17 00:00:00 2001 From: Clark Date: Wed, 14 Jun 2023 10:54:21 -0400 Subject: [PATCH] Fix stopForegroundTask crash. --- .../securesms/service/GenericForegroundService.java | 4 ++-- .../securesms/service/NotificationController.java | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/GenericForegroundService.java b/app/src/main/java/org/thoughtcrime/securesms/service/GenericForegroundService.java index ddcd9a7be4..dfef9da6c0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/GenericForegroundService.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/GenericForegroundService.java @@ -187,13 +187,13 @@ public final class GenericForegroundService extends Service { return new NotificationController(context, id); } - public static void stopForegroundTask(@NonNull Context context, int id) { + public static void stopForegroundTask(@NonNull Context context, int id) throws UnableToStartException, IllegalStateException { Intent intent = new Intent(context, GenericForegroundService.class); intent.setAction(ACTION_STOP); intent.putExtra(EXTRA_ID, id); Log.i(TAG, String.format(Locale.US, "Stopping foreground service id=%d", id)); - ForegroundServiceUtil.startWhenCapableOrThrow(context, intent); + ForegroundServiceUtil.startWhenCapable(context, intent); } synchronized void replaceTitle(int id, @NonNull String title) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/NotificationController.java b/app/src/main/java/org/thoughtcrime/securesms/service/NotificationController.java index 15d1eb1d21..7416afd9b0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/NotificationController.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/NotificationController.java @@ -9,6 +9,7 @@ import android.os.IBinder; import androidx.annotation.NonNull; import org.signal.core.util.logging.Log; +import org.thoughtcrime.securesms.jobs.UnableToStartException; import java.util.concurrent.atomic.AtomicReference; @@ -54,7 +55,7 @@ public final class NotificationController implements AutoCloseable, } GenericForegroundService.stopForegroundTask(context, id); - } catch (IllegalArgumentException e) { + } catch (IllegalStateException | UnableToStartException e) { Log.w(TAG, "Failed to unbind service...", e); } }