feat(app): launch film behind sign-in and Data & Privacy; drop the Get started page

YI
12m ago
+934-452

Split out of #21711 so that PR stays about Home.

Summary

Sign-in and Data & Privacy are the first two screens every new reader sees, before any onboarding arm (so the same for control, reid and yinka).

  • Launch film behind sign-in and Data & Privacy. OnboardingHeroFilm plays the Omi launch film full-screen, muted and looping, under white type (it holds its first frame under Reduce Motion). It replaces the photo background on those two steps only; every other onboarding step keeps today's background. OnboardingHero.video was a debug-only design switch; it is now the look for everyone.
  • New asset: app/assets/videos/onboarding_launch_loop.mp4, 3.6 MB (720Ɨ1284, 20 s). This adds 3.6 MB to the app download.
  • Text stays readable over the film. The film has notification cards burned in near the bottom, right where the consent text sits. The bottom shade is now near-solid there (97% black from 72% of the screen height), so the cards don't show through.
  • Data & Privacy: a short summary, the AI providers named (Deepgram & OpenAI), Agree & Continue, and Use a Different Account (back to sign-in without agreeing). Use a Different Account is a plain TextButton in the film's palette: OmiButton's tertiary variant paints its label in the app theme's text colour, which is near-black in light mode and disappeared on the film.
  • The old "Get started" page is removed. Signed-out readers open on sign-in (MobileApp → OnboardingWrapper). Sign-in now fires onboardingWelcomeShown, which the Get started page used to fire, so the onboarding funnel still has its first step. onboardingGetStartedTapped is no longer fired.
  • New strings consentShortMessage and consentAiProviders in all 49 locales (added with scripts/l10n.py).

Screenshots

Sign-inData & Privacy
Sign-in over the launch filmData & Privacy over the launch film

001: iOS simulator, local test build (one local sign-in button where store builds show Apple and Google). 002: the real Data & Privacy widget rendered at iPhone size in a widget test over a frame of the film where a notification card sits behind the text (a simulator build did not fit on this machine's disk).

Testing

  • flutter analyze on the touched files: no issues.
  • New test/widgets/ai_consent_use_different_account_test.dart: Data & Privacy shows Agree & Continue, and Use a Different Account goes back without agreeing.
  • Onboarding, wrapper, sign-in and spine tests pass (test/widgets/onboarding_*, session_expired_reauthentication, semantics_baseline, first_capture, device_onboarding_*, speech_profile_onboarding, test/spine/, test/pages/onboarding, test/unit/onboarding_*): 259 passed.
  • python3 scripts/l10n.py check: ok.
  • make preflight: 27 checks pass.
  • Not yet run on a device from this branch.

Product invariants affected

none

Failure-Class: none

šŸ¤– Generated with Claude Code