Skip to content

Hide granted permissions, keep screen on for updates, add processing hint - #22

Merged
neteinstein merged 1 commit into
mainfrom
feature/hide-granted-permissions-settings
Jul 21, 2026
Merged

Hide granted permissions, keep screen on for updates, add processing hint#22
neteinstein merged 1 commit into
mainfrom
feature/hide-granted-permissions-settings

Conversation

@neteinstein

Copy link
Copy Markdown
Owner

Description

Three related Settings/Share UX improvements, all touching feature:settings, feature:share, and core:designsystem:

  • Settings permissions section: only lists permissions that aren't granted yet, and the whole "Permissions" section disappears once none remain (currently just POST_NOTIFICATIONS, so today this means the section only shows up if that one permission is missing).
  • "Update to latest" reliability: keeps the screen on for the duration of the check/download (KeepScreenOnWhile in SettingsScreen) so a screen timeout mid-download can't drop the install-prompt Intent - Android 10+ silently blocks/drops (doesn't queue) startActivity calls made from a non-foreground app context. SettingsViewModel.downloadAndInstall was also reordered so installPackage(...) fires before updateStatus flips away from Downloading, keeping the screen-on flag active at the exact moment the install intent launches. Also adds explanatory copy above the button that it checks/downloads from the InstaMaps GitHub releases page.
  • Share processing screen hint: adds an info banner reassuring the user they can leave/background the app while a share is processing. ProcessSharedUrlWorker already runs as expedited, foreground-notification-backed WorkManager work and posts a result notification when done, so the claim was already true - this just surfaces it in the UI.

WarningBanner (core:designsystem) gains optional actionLabel/onActionClick (default null) to support a purely informational banner with no action, which the new processing-screen hint needed. Backward compatible - the two existing call sites (feature:settings's sideloading warning, feature:share's Instagram-connect nudge) already use named arguments exclusively.

agents.md updated to reflect all three behavior changes.

How to Test

  • ./gradlew ktlintCheck compileDebugKotlin compileDebugUnitTestKotlin test (full project) - all pass.
  • Manual:
    • Open Settings with POST_NOTIFICATIONS granted - confirm the "Permissions" section is gone entirely.
    • Revoke the notification permission from system Settings, reopen the app's Settings screen - confirm the section reappears listing only that permission.
    • Tap "Update to latest" with a newer release available - confirm the screen stays on (doesn't sleep) through the download, and read the new explanatory text above the button.
    • Share an Instagram/TikTok link into the app - confirm the processing screen shows the new "you can leave, we'll notify you" banner, then background the app and confirm a result notification still arrives.

Checklist

  • ./gradlew ktlintCheck passes (or ktlintFormat was run to fix style)
  • ./gradlew test passes for all affected modules
  • New/changed logic has unit test coverage (domain and data layers especially) - N/A, all changes are in presentation/Compose UI layers, which this project's Kover config excludes from the coverage target (no framework-glue-only test scaffolding exists for these modules).
  • agents.md / README.md updated if this changes architecture, setup, or dev workflow
  • No secrets, API keys, or credentials committed

…g background hint

Three related Settings/Share UX improvements:

- Settings only lists permissions that aren't granted yet, and the whole
  "Permissions" section disappears once none remain.
- "Update to latest" now keeps the screen on for the duration of the
  check/download so a screen timeout can't drop the install-prompt Intent
  (blocked/dropped silently by Android 10+ when the app isn't foregrounded).
  Also adds explanatory copy that it checks/downloads from the InstaMaps
  GitHub releases page.
- The share processing screen now shows an info banner reassuring the user
  they can leave/background the app - the worker already runs as expedited,
  foreground-notification-backed WorkManager work and posts a result
  notification, so the claim was already true, just not surfaced in the UI.

WarningBanner (core:designsystem) gains optional actionLabel/onActionClick
(default null) to support a purely informational banner with no action,
which the new processing-screen hint needed. Backward compatible with the
two existing call sites, which already use named arguments exclusively.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@neteinstein
neteinstein merged commit 44cdd69 into main Jul 21, 2026
4 checks passed
@neteinstein
neteinstein deleted the feature/hide-granted-permissions-settings branch July 21, 2026 12:40
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