Skip to content

Add support for launching pinned shortcuts (PWAs)#214

Open
watchdogeditor wants to merge 1 commit into
markusfisch:masterfrom
watchdogeditor:master
Open

Add support for launching pinned shortcuts (PWAs)#214
watchdogeditor wants to merge 1 commit into
markusfisch:masterfrom
watchdogeditor:master

Conversation

@watchdogeditor

Copy link
Copy Markdown

Browsers pin a shortcut (via ShortcutManager.requestPinShortcut) when you "Add to Home screen" for a site they can't package as a WebAPK -- self-hosted pages, Firefox, or devices without Play Services. HomeActivity already declared the CONFIRM_PIN_SHORTCUT intent filter, but nothing handled the request, so the pinned shortcut was silently dropped.

Handle it and treat a pinned shortcut as a first-class launcher item:

  • Represent it as an AppIcon with a synthetic ComponentName plus shortcutPackage/shortcutId, so it flows through the existing app map, drawer, search, pie menu and menu persistence unchanged.
  • Launch via LauncherApps.startShortcut() from the single dispatch point in AppLauncher.launchApp().
  • Persist in a new pinned_shortcuts table (db version 4) and re-inject on every index so shortcuts survive reindexing and reboots.
  • Accept the request in HomeActivity (onCreate and onNewIntent), auto-adding with a toast.
  • Remove a shortcut by dragging it onto the pie editor's uninstall target (ending edit mode cleanly); "Show app info" opens the owning app instead.

Browsers pin a shortcut (via ShortcutManager.requestPinShortcut) when you
"Add to Home screen" for a site they can't package as a WebAPK -- self-hosted
pages, Firefox, or devices without Play Services. HomeActivity already declared
the CONFIRM_PIN_SHORTCUT intent filter, but nothing handled the request, so the
pinned shortcut was silently dropped.

Handle it and treat a pinned shortcut as a first-class launcher item:

- Represent it as an AppIcon with a synthetic ComponentName plus
  shortcutPackage/shortcutId, so it flows through the existing app map, drawer,
  search, pie menu and menu persistence unchanged.
- Launch via LauncherApps.startShortcut() from the single dispatch point in
  AppLauncher.launchApp().
- Persist in a new pinned_shortcuts table (db version 4) and re-inject on every
  index so shortcuts survive reindexing and reboots.
- Accept the request in HomeActivity (onCreate and onNewIntent), auto-adding
  with a toast.
- Remove a shortcut by dragging it onto the pie editor's uninstall target
  (ending edit mode cleanly); "Show app info" opens the owning app instead.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant