Hide granted permissions, keep screen on for updates, add processing hint - #22
Merged
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Three related Settings/Share UX improvements, all touching
feature:settings,feature:share, andcore:designsystem:POST_NOTIFICATIONS, so today this means the section only shows up if that one permission is missing).KeepScreenOnWhileinSettingsScreen) so a screen timeout mid-download can't drop the install-promptIntent- Android 10+ silently blocks/drops (doesn't queue)startActivitycalls made from a non-foreground app context.SettingsViewModel.downloadAndInstallwas also reordered soinstallPackage(...)fires beforeupdateStatusflips away fromDownloading, 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.ProcessSharedUrlWorkeralready runs as expedited, foreground-notification-backedWorkManagerwork and posts a result notification when done, so the claim was already true - this just surfaces it in the UI.WarningBanner(core:designsystem) gains optionalactionLabel/onActionClick(defaultnull) 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.mdupdated to reflect all three behavior changes.How to Test
./gradlew ktlintCheck compileDebugKotlin compileDebugUnitTestKotlin test(full project) - all pass.POST_NOTIFICATIONSgranted - confirm the "Permissions" section is gone entirely.Checklist
./gradlew ktlintCheckpasses (orktlintFormatwas run to fix style)./gradlew testpasses for all affected modulespresentation/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.mdupdated if this changes architecture, setup, or dev workflow