diff --git a/.changeset/pretty-pots-float.md b/.changeset/pretty-pots-float.md new file mode 100644 index 00000000..f3ba77d7 --- /dev/null +++ b/.changeset/pretty-pots-float.md @@ -0,0 +1,5 @@ +--- +'@capawesome/capacitor-app-shortcuts': minor +--- + +feat(android): support custom icons diff --git a/packages/app-shortcuts/android/src/main/java/io/capawesome/capacitorjs/plugins/appshortcuts/AppShortcutsHelper.java b/packages/app-shortcuts/android/src/main/java/io/capawesome/capacitorjs/plugins/appshortcuts/AppShortcutsHelper.java index 45b3e9ec..35e24864 100644 --- a/packages/app-shortcuts/android/src/main/java/io/capawesome/capacitorjs/plugins/appshortcuts/AppShortcutsHelper.java +++ b/packages/app-shortcuts/android/src/main/java/io/capawesome/capacitorjs/plugins/appshortcuts/AppShortcutsHelper.java @@ -60,7 +60,13 @@ public static List createShortcutInfoCompatList(JSArray shor if (androidIcon != null) { try { - int iconResId = context.getResources().getIdentifier((String) androidIcon, "drawable", "android"); + // First try to get drawable from app resources + int iconResId = context.getResources().getIdentifier((String) androidIcon, "drawable", context.getPackageName()); + if (iconResId == 0) { + // If not found in app resources, try system resources + iconResId = context.getResources().getIdentifier((String) androidIcon, "drawable", "android"); + } + shortcutInfoCompat.setIcon(IconCompat.createWithResource(context, iconResId)); } catch (Exception exception) { shortcutInfoCompat.setIcon(IconCompat.createWithResource(context, (int) androidIcon));