Files
clockula/CHANGELOG.md
T
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

68 lines
3.9 KiB
Markdown

# Changelog
All notable changes to Clockula are documented here.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Tag sections feed the release notes; see [`docs/RELEASING.md`](docs/RELEASING.md).
## [Unreleased]
The first release of Clockula: alarms, timers, a stopwatch and a world clock.
### Added
- **Alarms.** Alarms are scheduled as real alarm clocks, exempt from
battery saving and shown on the lock screen and in the status bar. They
survive a reboot, a process kill and a change of the device's clock, and
daylight-saving nights neither skip nor double one. If the full-screen or
notification permission is denied, an alarm still rings, and when no sound
can play it vibrates.
- An alarm list that shows when each alarm will ring and marks the next one.
Changes apply as you make them, with no Save button.
- Repeat days that start on your locale's first day of the week, and a "skip
next alarm" switch so you can sleep in once without turning the alarm off.
- Per-alarm sound, vibration, gradual volume, snooze length and limit, and a
dismiss challenge (a quick sum or a two-second hold). Each one can follow the
app default, so changing a default later still reaches it.
- Your own sounds: the device's alarm tones, the "Timer expired" sound from
Android's own Clock, a file you pick, Silent (which still vibrates), or
music from an app that shares its library, such as VLC or AntennaPod. If
the music can't play, or might not be heard, the alarm rings with the
default sound instead.
- A ring screen over the lock screen with snooze and dismiss. The dismiss
challenge always gives you a way out, works with a screen reader, and Back
can't silence an alarm.
- **Timers.** Run several at once, each with its own label, length and sound,
set from a keypad with saved presets. Pause, resume, reset and +1 min work
from the timer, from the live pill and from the notification. A finished
timer turns the screen on and opens over the lock screen with Stop and
+1 min. Timers keep counting through a reboot and aren't affected by changes
to the clock.
- Timers have their own vibration switch, off by default, and an optional
gradual volume, both apart from the alarms'. A kitchen timer can just beep
while alarms still vibrate; a silent timer still vibrates.
- **Stopwatch** with laps, the fastest and slowest marked, and Lap and Pause
in the notification. It keeps counting while the app is closed.
- **World clock.** An analog face for your own time, plus cities from the
device's time-zone database, searchable in your language. Each city shows
the offset from your time and whether it's a different day there. Reorder
them by dragging or with a screen reader, and set a home time zone or follow
the device.
- A live pill that shows whatever is counting from every tab.
- Swipe between tabs on phones. Tablets and foldables get a side rail.
- Other apps can set, show, snooze and dismiss alarms and timers through
Android's standard alarm intents, so assistants and automation apps work
with Clockula. A voice-set alarm cleans up after itself once dismissed.
- Settings: theme, dynamic colour, language, and the defaults every new alarm
and timer inherits.
- Back up alarms, timers, world clocks and settings to a JSON file, and restore
them on this device or another one.
- "Why might my alarm not ring?", a self-check that reads your device's real
state: permissions, battery optimisation, Do Not Disturb, alarm volume, and
whether the system has Clockula's next alarm. It links straight to the
setting that fixes each problem.
- Home-screen widgets: next alarm, timer (with controls), a quick timer, and
analog and digital clocks that show your world clocks at larger sizes. Each
widget can follow the system theme or stay light or dark, and choose what a
tap opens.