feat(todo): Snooze on a reminder on iOS, macOS and Windows (ADR 0033, D4)
Apple's systems take actions from categories registered at start: one for each length a snooze can be, its action in the language the app starts in, not to the foreground, so that iOS snoozes in the plugin's isolate with the app closed (AppDelegate registers the plugins for it). Windows hands back only the button's arguments, which carry the notification's ID and payload. macOS and Windows launch the app for an action while it is closed, and the gateway snoozes what launched it as it starts. Not yet tried on any of the three devices. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
0b6f79244f
commit
e26ba47fb9
1 changed files with 264 additions and 63 deletions
|
|
@ -94,9 +94,19 @@ the rail, a wash of strawberry, settings grouped as theirs. What the screenshots
|
|||
under an ID of its own, scheduled from what the notification carries (`snooze.dart`),
|
||||
so on Android with the app closed too (`snoozeInBackground`, the plugin's
|
||||
`ActionBroadcastReceiver` declared), and on Linux by the running app, as its reminders;
|
||||
the plan of the person's reminders leaves the snoozed ones alone. iOS and macOS
|
||||
register a notification's actions once, as the app starts and before its texts are
|
||||
known, and Windows answers an action by starting the app: Snooze comes there later.
|
||||
the plan of the person's reminders leaves the snoozed ones alone. On iOS, macOS and
|
||||
Windows since 1 Nov 2026 (the developer asked for it): Apple's systems take a
|
||||
notification's actions from categories registered as the app starts, so there is one
|
||||
for each length a snooze can be (`snoozeCategory`, `snoozeCategories`), its action
|
||||
in the language the app starts in (the device's, as `resolveAppLocale` picks it; a
|
||||
language changed meanwhile shows from the next start) and not to the foreground, so
|
||||
that on iOS the plugin's isolate snoozes with the app closed, as on Android
|
||||
(`AppDelegate` registers the plugins for it). Windows hands back only the button's
|
||||
arguments, so the button carries the notification's ID and payload
|
||||
(`windowsSnoozeArguments`, read by `snoozeOf` as the others' action). macOS and
|
||||
Windows launch the app for an action while it is closed: the gateway snoozes what
|
||||
launched it as it starts. Built and tested on Linux alone: none of the three was
|
||||
tried on a device yet.
|
||||
- **D5 Todo's rows are sealed, always, as Train's (ADR 0030, D7, D15)**, synced with
|
||||
`serverpod_offline_sync`: every payload ADR 0017's sealed content under the person's
|
||||
data key (`content_key`, halkyon_app's `PayloadEnvelope`), nothing readable in a column,
|
||||
|
|
|
|||
Loading…
Reference in a new issue