avoid IllegalArgumentException in BaseConversationListFragment.handleAddToHomeScreen

This commit is contained in:
adbenitez 2025-03-06 21:09:41 +01:00 committed by adb
parent c7d903f64a
commit 8fd8927293

View file

@ -333,18 +333,22 @@ public abstract class BaseConversationListFragment extends Fragment implements A
intent.putExtra(ShareActivity.EXTRA_CHAT_ID, chat.getId()); intent.putExtra(ShareActivity.EXTRA_CHAT_ID, chat.getId());
Recipient recipient = new Recipient(activity, chat); Recipient recipient = new Recipient(activity, chat);
Util.runOnAnyBackgroundThread(() -> {
Bitmap avatar = DirectShareUtil.getIconForShortcut(activity, recipient); Bitmap avatar = DirectShareUtil.getIconForShortcut(activity, recipient);
ShortcutInfoCompat shortcutInfoCompat = new ShortcutInfoCompat.Builder(activity, "chat-" + dcContext.getAccountId() + "-" + chat.getId()) ShortcutInfoCompat shortcutInfoCompat = new ShortcutInfoCompat.Builder(activity, "chat-" + dcContext.getAccountId() + "-" + chat.getId())
.setShortLabel(chat.getName()) .setShortLabel(chat.getName())
.setIcon(IconCompat.createWithAdaptiveBitmap(avatar)) .setIcon(IconCompat.createWithAdaptiveBitmap(avatar))
.setIntent(intent) .setIntent(intent)
.build(); .build();
Util.runOnMain(() -> {
if (!ShortcutManagerCompat.requestPinShortcut(activity, shortcutInfoCompat, null)) { if (!ShortcutManagerCompat.requestPinShortcut(activity, shortcutInfoCompat, null)) {
Toast.makeText(activity, "ErrAddToHomescreen: requestPinShortcut() failed", Toast.LENGTH_LONG).show(); Toast.makeText(activity, "ErrAddToHomescreen: requestPinShortcut() failed", Toast.LENGTH_LONG).show();
} else if (actionMode != null) { } else if (actionMode != null) {
actionMode.finish(); actionMode.finish();
actionMode = null; actionMode = null;
} }
});
});
} }
private void updateActionModeItems(Menu menu) { private void updateActionModeItems(Menu menu) {