Drops CODE_QUALITY_REVIEW.md as well: 11ea9be fixed all eight of its
findings, and git history keeps the review.
65 lines
3.7 KiB
Markdown
65 lines
3.7 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.
|
|
- **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.
|