Two hours before a natural occurrence (AOSP DeskClock's lead), a silent "Upcoming alarm" notification offers Dismiss, and the alarm's row shows the same Dismiss as a chip. Dismissing is dismissUpcoming's own branches: a repeating alarm skips that occurrence, a one-shot is switched off. The notices are synced at the end of every reschedule, after the real registration, and a third AlarmManager slot on its own request code wakes when the next window opens. The sync is wrapped so a notification failure can never stop a ring. Dismiss names the occurrence and is refused once the alarm is ringing or has moved, so it can't get round the dismiss challenge. No challenge is asked before the ring, as in Google Clock. Fixes #16
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.