feat(todo): reminders at a time of their own planned and set in a task's sheet, durations in its date sheet

planReminders plans each reminder at a time of its own of an open task,
whatever its date, under an ID of its own; the notification says
"Reminder" for a task without a time. The task's sheet always has its
reminders' row: those before its time where it has one, those at a time
of their own each with its remove button and "Remind at a time" (a day,
then a time), the permission asked as a first one is chosen. The date
sheet sets a duration once there is a time (none, 15 minutes to 4
hours, as Todoist's), a time cleared taking it with it. Recorded as
ADR 0033, D18 (the developer's, 3 Nov 2026).

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-03 13:56:19 +01:00
commit f5b657dfad
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -844,6 +844,60 @@ abstract class AppLocalizations {
/// **'Reminders come on each of your devices that opens your tasks.'**
String get remindersOnThisDevice;
/// No description provided for @reminderBody.
///
/// In en, this message translates to:
/// **'Reminder'**
String get reminderBody;
/// No description provided for @remindersAtTimes.
///
/// In en, this message translates to:
/// **'At a time of their own'**
String get remindersAtTimes;
/// No description provided for @reminderAddTime.
///
/// In en, this message translates to:
/// **'Remind at a time'**
String get reminderAddTime;
/// No description provided for @reminderRemove.
///
/// In en, this message translates to:
/// **'Remove the reminder'**
String get reminderRemove;
/// No description provided for @durationTitle.
///
/// In en, this message translates to:
/// **'Duration'**
String get durationTitle;
/// No description provided for @durationNone.
///
/// In en, this message translates to:
/// **'No duration'**
String get durationNone;
/// No description provided for @durationHours.
///
/// In en, this message translates to:
/// **'{hours} h'**
String durationHours(int hours);
/// No description provided for @durationMinutes.
///
/// In en, this message translates to:
/// **'{minutes} min'**
String durationMinutes(int minutes);
/// No description provided for @durationHoursMinutes.
///
/// In en, this message translates to:
/// **'{hours} h {minutes} min'**
String durationHoursMinutes(int hours, int minutes);
/// No description provided for @weekPrevious.
///
/// In en, this message translates to: