Skip to content

K2GO-553 feat(boot): show a "Preparing system" screen while the box makes its values - #745

Merged
luisguzman-adfa merged 3 commits into
mainfrom
feat/K2GO-553-preparing-system-screen
Nov 6, 2026
Merged

luisguzman-adfa merged 3 commits into
mainfrom
feat/K2GO-553-preparing-system-screen

Conversation

@luisguzman-adfa

Copy link
Copy Markdown
Collaborator

What changes

  • New "Preparing system" screen (boxidentity/presentation/PreparingSystemScreen): text-free Lottie (light in res/raw, dark in res/raw-night), a fixed headline, and a random word that slides in every 2.5 s. Reduce Motion: first frame and one word, no slide.
  • It covers the boot gate (LibraryActivity) and Finishing setup (SetupProgressActivity) when the box prints [k2go-box-identity] begin, and hides when the server answers. Then the normal flow continues (OPEN flip, or the content downloads).
  • EnvironmentProgress.preparingLaunch(): in-memory latch "this launch printed begin and has not answered yet". The reconciler can boot the box during the splash, before any screen listens.
  • The boot gate safety timeout (25 s) waits while the screen holds. The screen caps its own hold at 3 min.
    • UI changes:
      • New headline: "Preparing the last touches for your system".
      • New words: "Personalizing...", "Organizing...", "Polishing...", "Tuning...", "Arranging...", "Setting things up...", "Making it yours...", "Almost there...".
      • All 33 locales added (machine translation, open to review). Light and dark verified.

Why

  • K2GO-549 fix(rootfs): ship no per-box secrets; the box makes them at first start #742 makes the first start about 20-30 s longer (per-box secrets, Kolibri provisioning). The normal gate gave no reason for the wait.
  • The latch is not a duplicate truth. The box line is its only source, EnvironmentProgress is the one owner of the environment's progress facts, and no other code holds this fact. Lifecycle: the begin line sets it; the first answer (reconciler), a new launch, a stop, or process death clears it.

Verifications

  • OnePlus 7T, light and dark, both entry points: boot gate, and Finishing setup (Get More book while the box relaunches). Wait simulated with a temporary script copy (sleep after begin); script restored after.
  • Real clean install from the dev channel (Full + 1 book, OnePlus 7T, prototype build before the one-owner refactor): the screen showed during the real first start; Finishing setup then completed.
  • Normal start: no begin line, gate unchanged.
  • Unit tests: BoxIdentityLine, WordCycle; env tests green. Lint: 0 errors, no MissingTranslation.

Notes

  • "..." is ASCII on purpose (lint TypographyEllipsis warnings only).
  • The boot gate keeps its fixed light paper, so in dark mode the OPEN flip after the screen is light (pre-existing).

…akes its values

The boot gate and Finishing setup show it when the box prints "[k2go-box-identity] begin" and keep it until the server answers. Light and dark animation variants.
…strings

PreparingSystemScreen owns show-while-preparing and hide-on-answer for both entry points. The reconciler ends the "this launch printed begin" latch when the box answers, so a later services stop in the same launch is not a preparing boot. Headline and words added to strings.xml in all locales.
@luisguzman-adfa luisguzman-adfa added the ui change or edit to UI label Nov 6, 2026
… system

After an install with no content the box boots with the Library already on screen, so the screen showed only over the boot gate or Finishing setup. The Library now covers whenever it is not closing, and the feedback FAB hides while the screen is up.
@luisguzman-adfa

Copy link
Copy Markdown
Collaborator Author

Update (8a63804)

  • Third entry point: after an install with no content, the box boots with the Library already on screen. The preparing screen now covers the open Library too (the Library covers whenever it is not closing). The feedback button hides while the screen is up.
  • Found on a real clean install on a 32-bit farm phone (Q8, Android 12): the step ran 2 min 38 s (Kolibri provisioning 138 s), and the screen did not show before this fix.
  • Verified on the OnePlus 7T: open Library in light and dark; boot gate, Finishing setup and a normal start unchanged.

@luisguzman-adfa
luisguzman-adfa merged commit 5aa00fe into main Nov 6, 2026
3 checks passed
@luisguzman-adfa
luisguzman-adfa deleted the feat/K2GO-553-preparing-system-screen branch November 6, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ui change or edit to UI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant