A plain home screen keeping only calls, texts, sign-in codes and a short list of allowed apps — with a Travel profile for adults and an "All apps" escape hatch after a pause. It is written and it is switched off, because it isn't good enough to put in front of a family.
It ships disabled via a single constant, Features.DUMB_PHONE, rather than deleted. Whoever takes this on starts from working code and a considered design instead of an empty file.
Why it's off
Replacing a phone's home screen touches three things at once — the launcher role, the foreground guard, and the app list — and getting it wrong leaves someone holding a phone that won't open anything. That's a bad failure for a tool a family depends on, and a worse one for a child.
While the flag is false: nothing offers it, the phone never asks to become the home app, the launcher activity stays disabled in the manifest, and a focusMode flag arriving from a parent's phone is ignored rather than enforced (FocusDevice.sync).
What's already there
FocusMode, FocusConfig, isFocusAllowed, focusHomePackages — the rules about what stays reachable
FocusHome, FocusLauncherScreen — the home screen itself
FocusDevice — the launcher role, the saved state, and the "open for 10 minutes" window
FocusModeSection — the parent-facing settings, in both apps
- Profile fields:
focusMode, focusProfile, focusAllowedPackages, travelAllowedPackages
What finishing it probably means
- Real devices, several makes. This is where it breaks: launcher behaviour varies a lot, and an emulator won't tell you.
- A way out that always works, including when the app crashes or is force-stopped — a phone must never be bricked into a home screen that won't load.
- Deciding what happens on reboot, on update, and when the app loses the launcher role.
- Whether a child should be able to leave it at all without a parent's passcode, and what happens in an emergency.
- The ideas the README used to list: schedules, per-contact rules, richer profiles, an e-ink friendly layout.
Before starting
Please open a comment here with the approach you want to take — this is the kind of change worth agreeing before anyone writes code. CONTEXT.md has the domain language and CONTRIBUTING.md the code map. Keep to the project's design line: calm, plain, and never a hook.
A plain home screen keeping only calls, texts, sign-in codes and a short list of allowed apps — with a Travel profile for adults and an "All apps" escape hatch after a pause. It is written and it is switched off, because it isn't good enough to put in front of a family.
It ships disabled via a single constant,
Features.DUMB_PHONE, rather than deleted. Whoever takes this on starts from working code and a considered design instead of an empty file.Why it's off
Replacing a phone's home screen touches three things at once — the launcher role, the foreground guard, and the app list — and getting it wrong leaves someone holding a phone that won't open anything. That's a bad failure for a tool a family depends on, and a worse one for a child.
While the flag is false: nothing offers it, the phone never asks to become the home app, the launcher activity stays disabled in the manifest, and a
focusModeflag arriving from a parent's phone is ignored rather than enforced (FocusDevice.sync).What's already there
FocusMode,FocusConfig,isFocusAllowed,focusHomePackages— the rules about what stays reachableFocusHome,FocusLauncherScreen— the home screen itselfFocusDevice— the launcher role, the saved state, and the "open for 10 minutes" windowFocusModeSection— the parent-facing settings, in both appsfocusMode,focusProfile,focusAllowedPackages,travelAllowedPackagesWhat finishing it probably means
Before starting
Please open a comment here with the approach you want to take — this is the kind of change worth agreeing before anyone writes code.
CONTEXT.mdhas the domain language andCONTRIBUTING.mdthe code map. Keep to the project's design line: calm, plain, and never a hook.