Repository navigation
Phase 7: onboarding, Play disclosure, English - #9
Merged
Merged
Conversation
- Onboarding (spec §31): intro → how it works → prominent disclosure (spec §30 word for word) → switching the service on, detected on return → calibration (card / automatic) → optional time in app (D19). OnboardingFlow (pure Kotlin) decides what can be skipped: nothing before the service is on, everything after. - MainActivity shows the app only after the onboarding; a debug developer screen from the launch intent skips it. - AccessibilityGate: the dashboard banner and Nastavení reach Android's accessibility settings only through the disclosure while it has not been accepted (DisclosureRoute). - values-en with every string; number_locale per language; generated locale config (cs, en) for Android 13+ per-app language; library translations filtered to cs + en. - Privacy screen: nothing goes to a cloud backup or a new phone. - Tests: onboarding rules, gate, translations in step (keys, format arguments, plurals), disclosure and privacy text pinned to the spec. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- ADR-032: onboarding, the disclosure gate, step-4 hints, languages, claim. - accessibility-policy.md: where the disclosure is enforced, release provider allowlist. - play-listing.md: listing texts cs/en, Accessibility declaration answers, Data safety, permissions, privacy policy text, video scenario, rating and audience. - architecture.md, README: onboarding, languages, status. - Step 4 hides the setup instructions once the service is on. - PolicyGuardTest: only MainActivity builds the accessibility settings intent. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…le icon, double tap - Step 4 on Android 13+: an "Otevřít informace o aplikaci" button next to the restricted-settings hint (App info is where Android offers "Allow restricted settings"); the hint is hidden below 13, where the block does not exist. - The welcome illustration is the launcher icon as the home screen shows it (white mark on its blue) — the bare white foreground was nearly invisible on the light theme. - The disclosure screen's accept button disables itself, so a double tap cannot open the accessibility settings twice. - Step titles are headings for TalkBack. - English: "compared with the automatic estimate: +2.1 %". Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…at reports - Onboarding step 3: the consent button follows the four paragraphs inside the scroll. - A settings read error after the acceptance no longer bounces step 4 back to the disclosure. - "Smazat data i nastavení" runs in an application scope and reports, although the onboarding replaces the settings screen mid-way. - NavHost gets the loaded acceptance from MainActivity (no default in the first frames). - PolicyGuardTest: settings actions as strings and the details page count too; the NavHost may not hand the ungated callback on (with a self-test). TranslationsTest sees every format specifier. - Docs: ADR-032 amendments, the gate screen opens the settings after consent, the class name in the privacy text; handoff Phase 7 exit report. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
Phase 7 — Onboarding a policy (PLAN.md)
Scope: onboarding in five steps + the optional time-in-app step (SPEC §31, D19): Kolik toho denně nascrolluješ → Jak měření funguje → prominent disclosure (SPEC §30 word for word) → Zapni měření (Android's settings, detected on return; Android 13+ restricted-settings hint with a one-tap App info button) → calibration (card / automatic) → Čas v aplikacích (Povolit / Teď ne). The app shows the dashboard only after the onboarding; every other path into the accessibility settings goes through the disclosure (
AccessibilityGate).values-en/with every string, per-app language (Android 13+), library translations filtered to cs + en. Final privacy screen,docs/accessibility-policy.md, newdocs/play-listing.md. ADR-032.DoD
TranslationsTest) + what is stored / never / no backupisAccessibilityTool=false; text pinned against the specOnboardingFlow, tests)TranslationsTest: keys, format arguments, plurals)docs/accessibility-policy.mdfinal,docs/play-listing.md(listing cs/en, Accessibility declaration answers incl. "UsageStats gives only time, not scroll deltas", Data safety, privacy-policy text, video scenario)Verification
testDebugUnitTest lintDebug assembleDebug assembleReleasegreen — 259 JVM tests; lint only the 6 oldSetTextI18nin the Phase 1 debug surface; tools tests; manifest policy (onlyandroid:localeConfigadded). No new permission, nothing new exported./impactHIGH (app entry gate + Play policy boundary)./topshit: restricted-settings one-tap, visible launcher icon, double-tap guard, headings, English phrasing (1b27cf0). Stage 2 functional + security (Fable): no HIGH / MEDIUM, no hard-rule violation; 6× LOW fixed ine979f23(consent after the text, stable gate on read errors, erase reporting across the screen swap, stronger gate and format guards, docs).handoff.md„Dluh ověření“ V7 (sideloaded install with Android's restricted settings on the OnePlus, per-app language on ColorOS).CI
GitHub Actions are still blocked by the account's billing / spending limit (open point in
handoff.md). The merge relies on the CI-equivalent gate run in a clean checkout of this branch (same commands as.github/workflows/ci.yml+assembleRelease, JDK 21).🤖 Generated with Claude Code