The visibility check counted the ring service's own foreground service as a visible window, so every ring opened its screen directly: over any app without the setting, and on a locked phone on top of the full-screen intent. Started activities are now tracked through lifecycle callbacks. The decision moves into DirectLaunchPolicy with JVM tests. It needs a phone in use, leaves a screen already showing this ring alone so a restart no longer resets a dismiss challenge, and never covers a call from another app. The switch stores the choice only once the overlay permission is granted and clears it when the permission is gone, so it can't stick or come back on by itself. It falls back to the app details page where the permission page is missing. One shared intent opens the ring screens, and the architecture notes no longer say a timer never takes the screen.
Clockula — documentation
Clockula is a Material 3 Expressive clock app for Android: alarms, timers,
stopwatch and world clock. Third floret of the bloom, after
Calendula (calendar) and
Agendula (tasks). See the top-level
../README.md for the pitch.
Unlike its siblings, Clockula owns its storage, because there is no open provider behind
a clock. What that costs and how the open-standards commitment is honoured anyway
is the first section of PLAN.md.
Index
| Doc | What it covers |
|---|---|
PLAN.md |
The spec. Thesis, locked decisions, the alarm engine, data model, system interop, identity, pipeline, and how ClockMaster is used. The "why". |
ROADMAP.md |
Status and the work queue: milestones M0–M11 and post-v1. What the build loop works through. |
ARCHITECTURE.md |
How Clockula is built today: layers, the data seam, the alarm engine, DI, build/tooling, manifest. Written from M2 onward. |
RELEASING.md |
How to cut a release. Written at M0 alongside the pipeline. |
PROVENANCE.md |
Third-party code and assets carried in-tree, and under what licence (PLAN.md §11). |
Also: ../CHANGELOG.md (Keep a Changelog format; tag sections
feed the release notes).
How the docs relate
- PLAN is the design decisions (stable; the "why").
- ARCHITECTURE is the current shape of the code (kept in sync as it grows).
- ROADMAP is the moving status layer (updated as milestones land).
- RELEASING is the operational runbook.