A ringing alarm and a finished timer used to stop after a fixed ten minutes. Settings > Alarms and Settings > Timers now each have a "Silence after" row with Google Clock's choices: 1, 5, 10, 15, 20 or 25 minutes, or Never. Ten minutes stays the default, so nothing changes on upgrade. The value is app-wide; a per-alarm override would need a new column, a migration and an editor row, and is left out. "Never" rings for an hour, then stops. The backstop is also what keeps a phone left at home from ringing its battery flat, what bounds the ring services' wake locks, and what stops a reboot hours later from resuming a ring nobody was there for. A truly unbounded ring would give all of that up, so Never maps to a one-hour hard stop, longer than any finite choice, and the settings hint says so. Stored values clamp to 0..60 on read, on write and from a backup. The window is read everywhere the fixed constant was: the resolver's ringing and late-snooze checks (which now take it without a default), the backstop onFire arms, how late a snooze fire may arrive, whether an interrupted ring is resumed after a reboot, upcoming(), the timer ring policy, the lapsed-session check and the timer ring screen. Both ring services' wake-lock timeouts now derive from the hard stop instead of a hard-coded fifteen minutes. When the resolver closes a ring (the window was shortened mid-ring, the clock jumped, the alarm was switched off), the engine now also stops the ring service and cancels the backstop. Before, it only cleared ringingSince and left the sound to a backstop armed for the old window. Both values are backed up as default_alarm_silence_after_minutes and default_timer_silence_after_minutes; a file without them imports as ten minutes. Fixes #17
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.