Files
clockula/docs
makiolaj fbc3a192bf feat(timers): give timers their own vibration and gradual volume
Timers vibrated by the alarm vibration default and never ramped. Both are
now the timers' own app-wide settings, next to the default timer sound in
Settings > Timers: a Vibrate switch and the same Gradual volume picker
alarms use. Timer.resolveSettings reads them instead of the alarm default
and the old TimerRing.RAMP_SECONDS constant.

A fresh install starts with timer vibration off, as Google Clock does, and
no ramp. An existing install keeps what its timers did: a one-shot DataStore
migration writes the new key from the alarm vibration default before the
first read, so nobody's kitchen timer silently stops buzzing on update. A
fresh install is told apart by an empty store (anything that has run once
has written its boot id); the migration writes the default there too, so it
never runs twice.

Backups carry both new fields. A file without them restores the alarm
vibration default as the timers' (what that install's timers did) and a
flat ring.

Silent plus vibration off still signals: Silent gives the player no
sources, and its onSilenced callback starts the vibrator whatever the
setting says. The settings row says so.

Fixes #22
2026-10-21 18:49:45 +02:00
..

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.