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);
Bitmap avatar = DirectShareUtil.getIconForShortcut(activity, recipient); Util.runOnAnyBackgroundThread(() -> {
ShortcutInfoCompat shortcutInfoCompat = new ShortcutInfoCompat.Builder(activity, "chat-" + dcContext.getAccountId() + "-" + chat.getId()) Bitmap avatar = DirectShareUtil.getIconForShortcut(activity, recipient);
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();
if (!ShortcutManagerCompat.requestPinShortcut(activity, shortcutInfoCompat, null)) { Util.runOnMain(() -> {
Toast.makeText(activity, "ErrAddToHomescreen: requestPinShortcut() failed", Toast.LENGTH_LONG).show(); if (!ShortcutManagerCompat.requestPinShortcut(activity, shortcutInfoCompat, null)) {
} else if (actionMode != null) { Toast.makeText(activity, "ErrAddToHomescreen: requestPinShortcut() failed", Toast.LENGTH_LONG).show();
actionMode.finish(); } else if (actionMode != null) {
actionMode = null; actionMode.finish();
} actionMode = null;
}
});
});
} }
private void updateActionModeItems(Menu menu) { private void updateActionModeItems(Menu menu) {