From 8fd8927293adab12da16a514b875c89d35fd7883 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Thu, 6 Mar 2025 21:09:41 +0100 Subject: [PATCH] avoid IllegalArgumentException in BaseConversationListFragment.handleAddToHomeScreen --- .../BaseConversationListFragment.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java b/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java index 96c3b5199..b6cca750f 100644 --- a/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java @@ -333,18 +333,22 @@ public abstract class BaseConversationListFragment extends Fragment implements A intent.putExtra(ShareActivity.EXTRA_CHAT_ID, chat.getId()); Recipient recipient = new Recipient(activity, chat); - Bitmap avatar = DirectShareUtil.getIconForShortcut(activity, recipient); - ShortcutInfoCompat shortcutInfoCompat = new ShortcutInfoCompat.Builder(activity, "chat-" + dcContext.getAccountId() + "-" + chat.getId()) + Util.runOnAnyBackgroundThread(() -> { + Bitmap avatar = DirectShareUtil.getIconForShortcut(activity, recipient); + ShortcutInfoCompat shortcutInfoCompat = new ShortcutInfoCompat.Builder(activity, "chat-" + dcContext.getAccountId() + "-" + chat.getId()) .setShortLabel(chat.getName()) .setIcon(IconCompat.createWithAdaptiveBitmap(avatar)) .setIntent(intent) .build(); - if (!ShortcutManagerCompat.requestPinShortcut(activity, shortcutInfoCompat, null)) { - Toast.makeText(activity, "ErrAddToHomescreen: requestPinShortcut() failed", Toast.LENGTH_LONG).show(); - } else if (actionMode != null) { - actionMode.finish(); - actionMode = null; - } + Util.runOnMain(() -> { + if (!ShortcutManagerCompat.requestPinShortcut(activity, shortcutInfoCompat, null)) { + Toast.makeText(activity, "ErrAddToHomescreen: requestPinShortcut() failed", Toast.LENGTH_LONG).show(); + } else if (actionMode != null) { + actionMode.finish(); + actionMode = null; + } + }); + }); } private void updateActionModeItems(Menu menu) {