fix(bedtime): DST-safe windows, ordered edits, quieter passes

Whether the wake time is the same night or the next morning is now
decided on the local times, so a bedtime in a spring-forward gap no
longer turns a 45-minute window into a day-long one. Screen edits start
undispatched so they reach the engine's lock in the order they were made,
and an edit that rewrites the rule also re-asserts the mode, in case the
platform reset its state.

The launch-time bedtime pass runs even if an earlier engine pass failed,
a restore that never applied settings no longer forces the mode, and a
user who never turned bedtime on pays nothing for it at launch or boot.
The screen says when equal bedtime and wake-up times mean it never starts.

Refs #1
This commit is contained in:
makiolaj committed 2026-10-22 11:53:39 +02:00
1 parent 2dce78281a
commit 1a443c066f
11 files changed
+87 -38

No files matched your search

+1 -1
View File
@@ -164,7 +164,7 @@ generic advice: exact-alarm permission, notification permission, full-screen-int
permission, battery-optimisation exemption, **whether DND currently blocks alarms**
(read via `NotificationManager.getCurrentInterruptionFilter()`; the self-check never
changes DND itself, it only reports what the user already has. The one place Clockula
touches DND is the opt-in bedtime mode added after v1, which needs the user to grant
touches DND is the opt-in bedtime mode (issue #1), which needs the user to grant
`ACCESS_NOTIFICATION_POLICY` by hand and always lets alarms through; see
`ARCHITECTURE.md` §18), whether the OEM has Clockula under an aggressive app-killer, and
the next scheduled fire time as the system sees it (`getNextAlarmClock()`), compared