Merge pull request #3652 from deltachat/adb/issue-3651

avoid IllegalArgumentException in BaseConversationListFragment.handleAddToHomeScreen
This commit is contained in:
adb 2025-03-07 19:01:43 +00:00 committed by GitHub
commit 64aa0fb49c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

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) {