Repository navigation
Releases: JonathanKChang/chrono
Release list
2026-08-18 Keep Screen On option
Implements #2
- Option to Keep Screen On that will keep the screen from turning off if the app is in the foreground
Full Changelog: 2026-08-13...2026-08-18
2026-08-13 Remove additional unnecessary boot receivers
Removed additional receivers that are not necessary, as per @p1usminus
com.pravera.flutter_foreground_task.service.RebootReceivercom.pravera.flutter_foreground_task.service.RestartReceiver
Full Changelog: 2026-08-03...2026-08-13
2026-08-03 Fix Crash on unlock after Android restart
Addresses Issue #517 -
- Removed a background component that was redundant and caused crashes on some Android 12+ devices after reboot
Full Changelog: 2026-06-15...2026-08-03
Technical details
On Android 12+ with Direct Boot enabled, flutter_boot_receiver's BootHandlerService.onCreate() calls getSharedPreferences("com.flux.flutter_boot_receiver", 0) to retrieve callback dispatcher and handle values needed to spawn a background Dart isolate. On Android 12+, when an app targets API 33+ and has directBootAware="true", the application context uses credential-encrypted SharedPreferences by default. These are only accessible after the user unlocks their device for the first time post-boot, but the boot receiver runs before unlock, causing a crash.
It turns out flutter_boot_receiver provided no unique functionality: its entire job (handleBoot() → updateAlarms() + updateTimers()) is already performed by the main app startup flow in main.dart, which runs identically after every reboot when the user opens the app.
flutter_boot_receiver was popular in earlier Flutter versions when V2 embedding wasn't the default and background isolates couldn't access plugins automatically. It handled registering plugins in a background isolate before running user code. With V2 embedding (auto-registers plugins via reflection), any package spawning a background isolate like android_alarm_manager_plus gets plugin access for free, making flutter_boot_receiver redundant.
Thanks @p1usminus
2026-06-15 Default Reliability Settings
Changes from 2026-05-28
- Updated default reliability settings to fix some issues on Android 16 reliability with minimal battery impact
Full Changelog: 2026-05-28...2026-06-15
Changes from v0.6.0 to 2026-05-28
- Implements custom snooze duration selection via a new UI action on active alarm and timer notifications, gated behind an opt-in settings toggle ("General > Interactions > Enable Custom Snooze").
- Add a “Delete After Finishing” option for timers that removes one‑shot timers from storage automatically when they are dismissed.
- vicolo-dev's 0.6.1 development changes
- Rising volume fix
- Added input mode switch to Numpad input
- Repeat option for timers
- One-timer override for timers
- Automatically open ringing notification when opening the app
- Fixed issue with timers and alarms going off and not being able to dismiss one of the ringtones
- handle JSON parse errors when loading from storage
- Robust Serialization: use atomic writes for writing to storage
Full Changelog: v0.6.0...2026-05-28
v0.6.0 + Robust Serialization
2026-05-28 Robust Serialization
Changes from 2026-05-27
- handle JSON parse errors when loading from storage
- use atomic writes for writing to storage
Full Changelog: 2026-05-27...2026-05-28
Changes from v0.6.0 to 2026-05-27
- Implements custom snooze duration selection via a new UI action on active alarm and timer notifications, gated behind an opt-in settings toggle ("General > Interactions > Enable Custom Snooze").
- Add a “Delete After Finishing” option for timers that removes one‑shot timers from storage automatically when they are dismissed.
- vicolo-dev's 0.6.1 development changes
- Rising volume fix
- Added input mode switch to Numpad input
- Repeat option for timers
- One-timer override for timers
- Automatically open ringing notification when opening the app
- Fixed issue with timers and alarms going off and not being able to dismiss one of the ringtones
Full Changelog: v0.6.0...2026-05-28
2026-05-27
Changes from v0.6.0
- Implements custom snooze duration selection via a new UI action on active alarm and timer notifications, gated behind an opt-in settings toggle ("General > Interactions > Enable Custom Snooze").
- Add a “Delete After Finishing” option for timers that removes one‑shot timers from storage automatically when they are dismissed.
- vicolo-dev's 0.6.1 development changes
- Rising volume fix
- Added input mode switch to Numpad input
- Repeat option for timers
- One-timer override for timers
- Automatically open ringing notification when opening the app
- Fixed issue with timers and alarms going off and not being able to dismiss one of the ringtones
Full Changelog
v0.6.0...2026-05-27
Notes
I’ve submitted some PRs upstream but in the meantime will publish some of my builds if anyone is interested.
v0.6.0 + One Shot Timers
Changes
Add a “Delete After Finishing” option for timers that removes one‑shot timers from storage automatically when they are dismissed.
Full Changelog: v0.6.0...feature/one-shot-timers
Notes
I’ve submitted a PR upstream, but in the meantime I’ve published a temporary fork release that fixes this issue: #433
I’ll remove it if/when the upstream merges the fix.
Full Changelog: https://github.com/JonathanKChang/chrono/commits/one-shot-timers
v0.6.0 + Custom Snooze
Changes
Implements custom snooze duration selection via a new UI action on active alarm and timer notifications, gated behind an opt-in settings toggle ("General > Interactions > Enable Custom Snooze").
Full Changelog: v0.6.0...feature/custom-snooze
Notes
I’ve submitted a PR upstream, but in the meantime I’ve published a temporary fork release that addresses issue #364 and to some extent #480, #509.
I’ll remove it if/when the upstream merges the fix.