Launcher Store
Snapshot-backed launcher settings, persisted to SharedPreferences.
Types
What an import would restore — shown for confirmation before applyBackup.
Properties
User-taught nicknames: alias text (lowercase) → AppEntry.key. These are the highest-confidence resolution tier — "bank" → HDFC opens instantly, before fuzzy matching or any model call.
Custom daily budgets, package → ms. Apps without one fall back to the global DISTRACTION_THRESHOLD_MS if they're marked distracting.
Curated background tone (#16); DEFAULT follows the theme.
Clock style; migrates the old show/hide boolean (hidden → OFF).
Packages the user treats as time-sinks (seeded with common ones).
Epoch ms when focus ends; 0 = off, Long.MAX_VALUE = until turned off. Persisted, so focus survives a launcher process restart.
Keys of apps hidden from the default drawer browse list.
null = never run, otherwise the human-readable self-test outcome.
Launch counts keyed by app key, used to float most-used apps.
Functions
Drops the installed model and its saved url/label so setup starts fresh.
Cycles none → 15m → 30m → 1h → 2h → none, like the other setting rows.
Everything restorable as versioned JSON. Deliberately excludes the HF token.
The app list as focus allows it: distracting apps vanish while active.
Copies in a model the user already has on-device, picked via SAF.
Drops all stored state for a package that was uninstalled from profile userSerial, so favorites/hidden/usage don't accumulate ghosts. The package-only distracting list is touched only for the personal profile.
Loads the downloaded model and runs a one-word prompt so setup ends with proof the model actually answers, not just that a file arrived (#2).
durationMs null = until manually ended.