Skip to content

Dumb phone (Focus mode): finish it, or rebuild it #46

Description

@jsconu

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions