Android: 28 permissions down to 5 #18

Merged
backmeupplz merged 2 commits from android-fewer-permissions into main 2026-10-17 22:51:17 +00:00
backmeupplz commented 2026-10-17 22:46:47 +00:00 (Migrated from github.com)

Raised on the F-Droid MR (!52830: "why these many permissions for a to do app").

Merged manifest, before → after:

  • Removed: 22 launcher-badge permissions ShortcutBadger adds (Samsung, HTC, Sony, Huawei, Oppo…), USE_BIOMETRIC / USE_FINGERPRINT (Credential Manager's passkey prompt, unused by Google sign-in; Play build only), VIBRATE (swipe feedback now uses Compose haptics).
  • Kept: INTERNET, ACCESS_NETWORK_STATE (sync on reconnect), RECEIVE_BOOT_COMPLETED + POST_NOTIFICATIONS (opt-in daily planning reminder), the app-internal DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION, and CAMERA in the F-Droid build only (ZXing, asked at scan time).

The launcher badge still works on launchers that take ShortcutBadger's broadcast without a permission. Play Services stays in the play flavor (Google sign-in, Google's QR scanner).

Checked: processPlayReleaseManifest, processFdroidReleaseManifest, assemblePlayDebug, assembleFdroidDebug and testPlayDebugUnitTest all pass. Not tried on a device yet.

🤖 Generated with Claude Code

Raised on the F-Droid MR (!52830: "why these many permissions for a to do app"). Merged manifest, before → after: - **Removed:** 22 launcher-badge permissions ShortcutBadger adds (Samsung, HTC, Sony, Huawei, Oppo…), `USE_BIOMETRIC` / `USE_FINGERPRINT` (Credential Manager's passkey prompt, unused by Google sign-in; Play build only), `VIBRATE` (swipe feedback now uses Compose haptics). - **Kept:** `INTERNET`, `ACCESS_NETWORK_STATE` (sync on reconnect), `RECEIVE_BOOT_COMPLETED` + `POST_NOTIFICATIONS` (opt-in daily planning reminder), the app-internal `DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION`, and `CAMERA` in the F-Droid build only (ZXing, asked at scan time). The launcher badge still works on launchers that take ShortcutBadger's broadcast without a permission. Play Services stays in the play flavor (Google sign-in, Google's QR scanner). Checked: `processPlayReleaseManifest`, `processFdroidReleaseManifest`, `assemblePlayDebug`, `assembleFdroidDebug` and `testPlayDebugUnitTest` all pass. Not tried on a device yet. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No description provided.