A one-shot alarm can now ring on a chosen date, and a repeating alarm can be paused for a range of days. Both are local dates: the date is a floor and the pause a hole in the occurrence sequence, so DST and zone changes resolve as for any other alarm. A missed date behaves like a missed one-shot, and each clears itself once it can no longer change a candidate. Picking a repeat day clears the date, as in Google Clock; "skip next" stays the quick version of a pause. The editor uses the M3 date and date-range pickers, which offer no past day. The list, the next-alarm widget and the self-check read the resolver, so they follow. The schema goes to v4 with a migration, and the backup format to v2, which still imports v1 files. SET_ALARM no longer re-uses an alarm that carries a date or a pause. Fixes #21
69 lines
3.9 KiB
Markdown
69 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.
|
||
- Schedule a one-off alarm for a date, such as a flight next Thursday, and
|
||
pause a repeating alarm for a range of days, such as a holiday. The list
|
||
shows "Scheduled for Wed, Oct 28" or "Paused Oct 26 – 28", and a pause ends
|
||
on its own.
|
||
- 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.
|
||
- **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.
|