Files
clockula/docs
makiolaj f37c5f2f84 feat(ringtones): let a music app play the alarm
"Choose from a music app…" in the sound picker browses any app that shares
its library through Android's MediaBrowserService and stores the choice as a
clockula://media URI in the existing ringtone field — no schema change, no
new permission, no internet. The music app streams with its own.

At ring time the app is asked to play through its media session. Every wait
is bounded and any failure falls back to the ordinary alarm sound: the app
won't connect or start, stalls or buffers too long, or the media stream
might not be heard (headphones or a classic Bluetooth device connected, Do
Not Disturb muting media). The ramp drives the media stream and the user's
media volume is restored when the last media ring ends.

RingAudioPlayer.start no longer suspends: vibration starts up front, the
timer collector is not held up, and a generation token keeps late work from
reviving a stopped ring.
2026-10-02 20:44:58 +02:00
..
2026-10-01 22:34:07 +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 — 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 Any third-party code carried in-tree and under what licence. Created only if we actually lift something (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.