Mobile: Add support for home screen shortcuts on Android

Feature Request: Add Support for Home Screen Shortcuts on Android

I primarily use Joplin on Android and Linux, where it serves as my primary note-taking application.

Problem

My task management relies on a dedicated "Tasks" notebook. However, switching to this notebook every time I need to add or modify a task is disruptive to my workflow. While I’ve implemented a workaround using an external app ("Shortcut Maker") to create Android shortcuts to specific notebooks, this requires manual setup (copying notebook URLs from the desktop app) and an additional app installation.

Proposed solution

Add native support for creating home screen shortcuts (pinned shortcuts) to notebooks or notes directly within Joplin.

  • For notes, a menu item "Add to home screen" could be added.
  • For the notebook, an "Add to home screen" button could be added to the dialog where the notebook can be edited or deleted.

The name of the shortcut should just be the name of the note or notebook. Using the Joplin icon for the shortcut would make it clear that this is a link to a Joplin note/notebook.

This reduces note/task capture and update to a single tap from the home screen.

Related proposals

Feature requests for a Joplin widget have been discussed in the past. Most of them did not get implemented because of their complexity. This proposal could achieve similar results with much less additional code.

Technical Details

Joplin already processes Android intents to open specific notebooks/notes. Using the Android app "Shortcut Maker," I can create a shortcut that sends the necessary android.intent.action.VIEW intent, including the Joplin-URL for the notebook. This works fine. What is missing is a way to create home screen shortcuts (pinned shortcuts if I understand the Android documentation correctly) directly from within Joplin. The name of the shortcut could just be the name of the selected note or notebook. If the internal ID of the note or notebook is used as the shortcut ID, then the user could even update the shortcut (if the name of the note or notebook changes) by just adding it again via the UI.

I found a React Native package that implements this functionality: expo-pin-shortcut. Not having done any React Native development, I cannot say anything about its quality. Maybe it can serve as a template for a native implementation.

Platform Considerations

There seems not to be an equivalent feature to pinned shortcuts on iOS. On this platform, the menu entry/button should be hidden.

I've done some Android development in the past, but my experience is not enough to tackle this myself. I hope that someone more familiar with the Joplin codebase might be able to take this forward.