Repository navigation
feat(app): launch film behind sign-in and Data & Privacy; drop the Get started page - #21761
YinkaAdepoju wants to merge 2 commits into
Conversation
…t started page Sign-in and Data & Privacy draw the Omi launch film full-screen under white type (OnboardingHeroFilm, assets/videos/onboarding_launch_loop.mp4, 3.6 MB). The bottom shade is near-solid where the text sits, so the notification cards burned into the film don't show through the consent text. Signed-out readers go straight to sign-in (OnboardingWrapper); the old Get started page is removed, and sign-in now fires onboardingWelcomeShown. Data & Privacy keeps Agree & Continue and Use a Different Account (a plain TextButton in the film's palette: OmiButton's tertiary label is near-black in light mode and vanished on the film), with a short summary that names the AI providers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks @YinkaAdepoju — this is a well-put-together first contribution: cohesive scope, honest write-up of the 3.6 MB asset cost, a changelog fragment, UI evidence, and a widget test for the consent escape hatch. What I verified, file by file:
No approval from me — this needs a product call, not just a code read. Two decisions for a maintainer: (1) sign-in-first entry with the Get started step removed and the film as the default first impression, and (2) the consent copy now naming specific AI processors. Leaving for human maintainer review on those points. by AI on behalf of David — if you need David’s attention urgently, please @Git-on-my-level and escalate with |
# Conflicts: # app/lib/l10n/app_ar.arb # app/lib/l10n/app_be.arb # app/lib/l10n/app_bg.arb # app/lib/l10n/app_bn.arb # app/lib/l10n/app_bs.arb # app/lib/l10n/app_ca.arb # app/lib/l10n/app_cs.arb # app/lib/l10n/app_da.arb # app/lib/l10n/app_de.arb # app/lib/l10n/app_el.arb # app/lib/l10n/app_en.arb # app/lib/l10n/app_es.arb # app/lib/l10n/app_et.arb # app/lib/l10n/app_fa.arb # app/lib/l10n/app_fi.arb # app/lib/l10n/app_fr.arb # app/lib/l10n/app_he.arb # app/lib/l10n/app_hi.arb # app/lib/l10n/app_hr.arb # app/lib/l10n/app_hu.arb # app/lib/l10n/app_id.arb # app/lib/l10n/app_it.arb # app/lib/l10n/app_ja.arb # app/lib/l10n/app_kn.arb # app/lib/l10n/app_ko.arb # app/lib/l10n/app_localizations.dart # app/lib/l10n/app_localizations_ar.dart # app/lib/l10n/app_localizations_be.dart # app/lib/l10n/app_localizations_bg.dart # app/lib/l10n/app_localizations_bn.dart # app/lib/l10n/app_localizations_bs.dart # app/lib/l10n/app_localizations_ca.dart # app/lib/l10n/app_localizations_cs.dart # app/lib/l10n/app_localizations_da.dart # app/lib/l10n/app_localizations_de.dart # app/lib/l10n/app_localizations_el.dart # app/lib/l10n/app_localizations_en.dart # app/lib/l10n/app_localizations_es.dart # app/lib/l10n/app_localizations_et.dart # app/lib/l10n/app_localizations_fa.dart # app/lib/l10n/app_localizations_fi.dart # app/lib/l10n/app_localizations_fr.dart # app/lib/l10n/app_localizations_he.dart # app/lib/l10n/app_localizations_hi.dart # app/lib/l10n/app_localizations_hr.dart # app/lib/l10n/app_localizations_hu.dart # app/lib/l10n/app_localizations_id.dart # app/lib/l10n/app_localizations_it.dart # app/lib/l10n/app_localizations_ja.dart # app/lib/l10n/app_localizations_kn.dart # app/lib/l10n/app_localizations_ko.dart # app/lib/l10n/app_localizations_lt.dart # app/lib/l10n/app_localizations_lv.dart # app/lib/l10n/app_localizations_mk.dart # app/lib/l10n/app_localizations_mr.dart # app/lib/l10n/app_localizations_ms.dart # app/lib/l10n/app_localizations_nl.dart # app/lib/l10n/app_localizations_no.dart # app/lib/l10n/app_localizations_pl.dart # app/lib/l10n/app_localizations_pt.dart # app/lib/l10n/app_localizations_ro.dart # app/lib/l10n/app_localizations_ru.dart # app/lib/l10n/app_localizations_sk.dart # app/lib/l10n/app_localizations_sl.dart # app/lib/l10n/app_localizations_sr.dart # app/lib/l10n/app_localizations_sv.dart # app/lib/l10n/app_localizations_ta.dart # app/lib/l10n/app_localizations_te.dart # app/lib/l10n/app_localizations_th.dart # app/lib/l10n/app_localizations_tl.dart # app/lib/l10n/app_localizations_tr.dart # app/lib/l10n/app_localizations_uk.dart # app/lib/l10n/app_localizations_ur.dart # app/lib/l10n/app_localizations_vi.dart # app/lib/l10n/app_localizations_zh.dart # app/lib/l10n/app_lt.arb # app/lib/l10n/app_lv.arb # app/lib/l10n/app_mk.arb # app/lib/l10n/app_mr.arb # app/lib/l10n/app_ms.arb # app/lib/l10n/app_nl.arb # app/lib/l10n/app_no.arb # app/lib/l10n/app_pl.arb # app/lib/l10n/app_pt.arb # app/lib/l10n/app_ro.arb # app/lib/l10n/app_ru.arb # app/lib/l10n/app_sk.arb # app/lib/l10n/app_sl.arb # app/lib/l10n/app_sr.arb # app/lib/l10n/app_sv.arb # app/lib/l10n/app_ta.arb # app/lib/l10n/app_te.arb # app/lib/l10n/app_th.arb # app/lib/l10n/app_tl.arb # app/lib/l10n/app_tr.arb # app/lib/l10n/app_uk.arb # app/lib/l10n/app_ur.arb # app/lib/l10n/app_vi.arb # app/lib/l10n/app_zh.arb
|
Thanks @YinkaAdepoju — this is a cohesive, carefully documented change and the diff matches the description. File-by-file notes on head 9a1b4eb:
On fit: a full-screen film for every new user and the removal of the Get started page is a product/UX direction decision with consent-disclosure wording attached, so the final sign-off belongs to a human maintainer — the implementation itself looks careful and I found no blocking code issue. AI-generated maintainer feedback on behalf of the Omi maintainers. Human review needed for: onboarding funnel direction (sign-in first, film across all arms) and the shortened consent disclosure wording / provider list. by AI on behalf of David — if you need David’s attention urgently, please @Git-on-my-level and escalate with |
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).
OnboardingHeroFilmplays 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.videowas a debug-only design switch; it is now the look for everyone.app/assets/videos/onboarding_launch_loop.mp4, 3.6 MB (720×1284, 20 s). This adds 3.6 MB to the app download.TextButtonin 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.MobileApp→OnboardingWrapper). Sign-in now firesonboardingWelcomeShown, which the Get started page used to fire, so the onboarding funnel still has its first step.onboardingGetStartedTappedis no longer fired.consentShortMessageandconsentAiProvidersin all 49 locales (added withscripts/l10n.py).Screenshots
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 analyzeon the touched files: no issues.test/widgets/ai_consent_use_different_account_test.dart: Data & Privacy shows Agree & Continue, and Use a Different Account goes back without agreeing.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.Product invariants affected
none
Failure-Class: none
🤖 Generated with Claude Code