feat(todo): Settings' Tasks and Reminders, with Snooze on a reminder (ADR 0033, D4)

Settings gains Todo's own groups, kept in the person's sealed settings
row on every device. Tasks: the weekday weeks start on (the language's
unless set), which the week strip, the date and repeat pickers and the
filters follow; and whether a recurring task done opens its sub-tasks
again (on at first). Reminders: an automatic reminder (none at first)
that TaskRepository writes into a task gaining a time without reminders
of its own, and how long a reminder is snoozed for (15 minutes at first).

Each reminder's notification has a Snooze action on Android and Linux:
the reminder comes back that much later under an ID of its own,
scheduled from what the notification carries, so on Android with the
app closed too (the plugin's ActionBroadcastReceiver declared); the plan
of the person's reminders leaves snoozed ones alone. iOS, macOS and
Windows get it later.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-01 20:25:15 +01:00
commit 51ebed41cd
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -680,5 +680,59 @@
"daysNext": "Later days",
"@daysNext": {
"description": "Upcoming's Display and its 3-day grid (ADR 0033, D17)."
},
"settingsTasks": "Tasks",
"@settingsTasks": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"weekStartTitle": "Start the week on",
"@weekStartTitle": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"weekStartLanguage": "As the language has it",
"@weekStartLanguage": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"resetSubTasksTitle": "Reset sub-tasks",
"@resetSubTasksTitle": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"resetSubTasksHint": "Open them again when a recurring task is done",
"@resetSubTasksHint": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"automaticReminderTitle": "Automatic reminder",
"@automaticReminderTitle": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"automaticReminderHint": "For a task given a time, unless it has reminders of its own",
"@automaticReminderHint": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"automaticReminderNone": "None",
"@automaticReminderNone": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"snoozeTitle": "When snoozed",
"@snoozeTitle": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"snoozeMinutes": "{count, plural, =1{1 minute} other{{count} minutes}}",
"@snoozeMinutes": {
"description": "Settings of tasks and reminders (ADR 0033, D4).",
"placeholders": {
"count": {
"type": "int"
}
}
},
"reminderSnooze": "Snooze {count} min",
"@reminderSnooze": {
"description": "Settings of tasks and reminders (ADR 0033, D4).",
"placeholders": {
"count": {
"type": "int"
}
}
}
}