From 08b8d7162c06ba8f04a5007bedfdae78d825864e Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 12 Jul 2023 07:01:59 +0200 Subject: [PATCH] Prevent crash --- .../java/eu/faircode/email/Shortcuts.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Shortcuts.java b/app/src/main/java/eu/faircode/email/Shortcuts.java index 38b4bd1d53..77b2ac8a56 100644 --- a/app/src/main/java/eu/faircode/email/Shortcuts.java +++ b/app/src/main/java/eu/faircode/email/Shortcuts.java @@ -339,11 +339,32 @@ class Shortcuts { } static boolean can(Context context) { - return ShortcutManagerCompat.isRequestPinShortcutSupported(context.getApplicationContext()); + try { + return ShortcutManagerCompat.isRequestPinShortcutSupported(context.getApplicationContext()); + } catch (Throwable ex) { + Log.e(ex); + /* + java.lang.IllegalStateException: User 10 is locked or not running + at android.os.Parcel.createExceptionOrNull(Parcel.java:2394) + at android.os.Parcel.createException(Parcel.java:2370) + at android.os.Parcel.readException(Parcel.java:2353) + at android.os.Parcel.readException(Parcel.java:2295) + at android.content.pm.IShortcutService$Stub$Proxy.isRequestPinItemSupported(IShortcutService.java:1253) + at android.content.pm.ShortcutManager.isRequestPinShortcutSupported(ShortcutManager.java:542) + at androidx.core.content.pm.ShortcutManagerCompat$$InternalSyntheticApiModelOutline$1$8e6ce95527e1069e0571cafad12c473a04f9df49417a7f35f83879c4b29aa5f0$2.m(ShortcutManagerCompat) + at androidx.core.content.pm.ShortcutManagerCompat.isRequestPinShortcutSupported(ShortcutManagerCompat:155) + at eu.faircode.email.Shortcuts.can(Shortcuts:342) + */ + return false; + } } static void requestPinShortcut(Context context, ShortcutInfoCompat info) { - ShortcutManagerCompat.requestPinShortcut(context.getApplicationContext(), info, null); + try { + ShortcutManagerCompat.requestPinShortcut(context.getApplicationContext(), info, null); + } catch (Throwable ex) { + Log.e(ex); + } } static void cleanup(Context context) {