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:
parent
d40eca6e50
commit
f5b657dfad
5 changed files with 603 additions and 70 deletions
|
|
@ -124,6 +124,15 @@
|
|||
"remindersChannel": "Erinnerungen an Aufgaben",
|
||||
"remindersNotAllowed": "Benachrichtigungen sind für Halkyon Todo aus: Erinnerungen erscheinen, sobald du sie in den Systemeinstellungen erlaubst.",
|
||||
"remindersOnThisDevice": "Erinnerungen kommen auf jedem deiner Geräte, das deine Aufgaben öffnet.",
|
||||
"reminderBody": "Erinnerung",
|
||||
"remindersAtTimes": "Zu einer eigenen Uhrzeit",
|
||||
"reminderAddTime": "Zu einer Uhrzeit erinnern",
|
||||
"reminderRemove": "Erinnerung entfernen",
|
||||
"durationTitle": "Dauer",
|
||||
"durationNone": "Keine Dauer",
|
||||
"durationHours": "{hours} Std.",
|
||||
"durationMinutes": "{minutes} Min.",
|
||||
"durationHoursMinutes": "{hours} Std. {minutes} Min.",
|
||||
"weekPrevious": "Vorige Woche",
|
||||
"weekNext": "Folgende Woche",
|
||||
"searchTitle": "Suchen",
|
||||
|
|
|
|||
|
|
@ -343,6 +343,39 @@
|
|||
"remindersChannel": "Task reminders",
|
||||
"remindersNotAllowed": "Notifications are off for Halkyon Todo: reminders show once you allow them in the system's settings.",
|
||||
"remindersOnThisDevice": "Reminders come on each of your devices that opens your tasks.",
|
||||
"reminderBody": "Reminder",
|
||||
"remindersAtTimes": "At a time of their own",
|
||||
"reminderAddTime": "Remind at a time",
|
||||
"reminderRemove": "Remove the reminder",
|
||||
"durationTitle": "Duration",
|
||||
"durationNone": "No duration",
|
||||
"durationHours": "{hours} h",
|
||||
"@durationHours": {
|
||||
"placeholders": {
|
||||
"hours": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"durationMinutes": "{minutes} min",
|
||||
"@durationMinutes": {
|
||||
"placeholders": {
|
||||
"minutes": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"durationHoursMinutes": "{hours} h {minutes} min",
|
||||
"@durationHoursMinutes": {
|
||||
"placeholders": {
|
||||
"hours": {
|
||||
"type": "int"
|
||||
},
|
||||
"minutes": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"weekPrevious": "Previous week",
|
||||
"weekNext": "Following week",
|
||||
"searchTitle": "Search",
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -527,6 +527,39 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get remindersOnThisDevice =>
|
||||
'Erinnerungen kommen auf jedem deiner Geräte, das deine Aufgaben öffnet.';
|
||||
|
||||
@override
|
||||
String get reminderBody => 'Erinnerung';
|
||||
|
||||
@override
|
||||
String get remindersAtTimes => 'Zu einer eigenen Uhrzeit';
|
||||
|
||||
@override
|
||||
String get reminderAddTime => 'Zu einer Uhrzeit erinnern';
|
||||
|
||||
@override
|
||||
String get reminderRemove => 'Erinnerung entfernen';
|
||||
|
||||
@override
|
||||
String get durationTitle => 'Dauer';
|
||||
|
||||
@override
|
||||
String get durationNone => 'Keine Dauer';
|
||||
|
||||
@override
|
||||
String durationHours(int hours) {
|
||||
return '$hours Std.';
|
||||
}
|
||||
|
||||
@override
|
||||
String durationMinutes(int minutes) {
|
||||
return '$minutes Min.';
|
||||
}
|
||||
|
||||
@override
|
||||
String durationHoursMinutes(int hours, int minutes) {
|
||||
return '$hours Std. $minutes Min.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get weekPrevious => 'Vorige Woche';
|
||||
|
||||
|
|
|
|||
|
|
@ -527,6 +527,39 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get remindersOnThisDevice =>
|
||||
'Reminders come on each of your devices that opens your tasks.';
|
||||
|
||||
@override
|
||||
String get reminderBody => 'Reminder';
|
||||
|
||||
@override
|
||||
String get remindersAtTimes => 'At a time of their own';
|
||||
|
||||
@override
|
||||
String get reminderAddTime => 'Remind at a time';
|
||||
|
||||
@override
|
||||
String get reminderRemove => 'Remove the reminder';
|
||||
|
||||
@override
|
||||
String get durationTitle => 'Duration';
|
||||
|
||||
@override
|
||||
String get durationNone => 'No duration';
|
||||
|
||||
@override
|
||||
String durationHours(int hours) {
|
||||
return '$hours h';
|
||||
}
|
||||
|
||||
@override
|
||||
String durationMinutes(int minutes) {
|
||||
return '$minutes min';
|
||||
}
|
||||
|
||||
@override
|
||||
String durationHoursMinutes(int hours, int minutes) {
|
||||
return '$hours h $minutes min';
|
||||
}
|
||||
|
||||
@override
|
||||
String get weekPrevious => 'Previous week';
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue