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:
parent
2939437c74
commit
51ebed41cd
5 changed files with 1204 additions and 69 deletions
|
|
@ -220,5 +220,16 @@
|
|||
"coloringProject": "Projekt",
|
||||
"allDay": "Ganztägig",
|
||||
"daysPrevious": "Frühere Tage",
|
||||
"daysNext": "Spätere Tage"
|
||||
"daysNext": "Spätere Tage",
|
||||
"settingsTasks": "Aufgaben",
|
||||
"weekStartTitle": "Woche beginnt am",
|
||||
"weekStartLanguage": "Wie in der Sprache",
|
||||
"resetSubTasksTitle": "Unteraufgaben zurücksetzen",
|
||||
"resetSubTasksHint": "Wieder öffnen, wenn eine wiederkehrende Aufgabe erledigt ist",
|
||||
"automaticReminderTitle": "Automatische Erinnerung",
|
||||
"automaticReminderHint": "Für eine Aufgabe mit Uhrzeit, wenn sie keine eigene Erinnerung hat",
|
||||
"automaticReminderNone": "Keine",
|
||||
"snoozeTitle": "Schlummern für",
|
||||
"snoozeMinutes": "{count, plural, =1{1 Minute} other{{count} Minuten}}",
|
||||
"reminderSnooze": "{count} Min. schlummern"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1425,6 +1425,72 @@ abstract class AppLocalizations {
|
|||
/// In en, this message translates to:
|
||||
/// **'Later days'**
|
||||
String get daysNext;
|
||||
|
||||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Tasks'**
|
||||
String get settingsTasks;
|
||||
|
||||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Start the week on'**
|
||||
String get weekStartTitle;
|
||||
|
||||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'As the language has it'**
|
||||
String get weekStartLanguage;
|
||||
|
||||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Reset sub-tasks'**
|
||||
String get resetSubTasksTitle;
|
||||
|
||||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Open them again when a recurring task is done'**
|
||||
String get resetSubTasksHint;
|
||||
|
||||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Automatic reminder'**
|
||||
String get automaticReminderTitle;
|
||||
|
||||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'For a task given a time, unless it has reminders of its own'**
|
||||
String get automaticReminderHint;
|
||||
|
||||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'None'**
|
||||
String get automaticReminderNone;
|
||||
|
||||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'When snoozed'**
|
||||
String get snoozeTitle;
|
||||
|
||||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{count, plural, =1{1 minute} other{{count} minutes}}'**
|
||||
String snoozeMinutes(int count);
|
||||
|
||||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Snooze {count} min'**
|
||||
String reminderSnooze(int count);
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
|
|
|||
|
|
@ -876,4 +876,49 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get daysNext => 'Spätere Tage';
|
||||
|
||||
@override
|
||||
String get settingsTasks => 'Aufgaben';
|
||||
|
||||
@override
|
||||
String get weekStartTitle => 'Woche beginnt am';
|
||||
|
||||
@override
|
||||
String get weekStartLanguage => 'Wie in der Sprache';
|
||||
|
||||
@override
|
||||
String get resetSubTasksTitle => 'Unteraufgaben zurücksetzen';
|
||||
|
||||
@override
|
||||
String get resetSubTasksHint =>
|
||||
'Wieder öffnen, wenn eine wiederkehrende Aufgabe erledigt ist';
|
||||
|
||||
@override
|
||||
String get automaticReminderTitle => 'Automatische Erinnerung';
|
||||
|
||||
@override
|
||||
String get automaticReminderHint =>
|
||||
'Für eine Aufgabe mit Uhrzeit, wenn sie keine eigene Erinnerung hat';
|
||||
|
||||
@override
|
||||
String get automaticReminderNone => 'Keine';
|
||||
|
||||
@override
|
||||
String get snoozeTitle => 'Schlummern für';
|
||||
|
||||
@override
|
||||
String snoozeMinutes(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count Minuten',
|
||||
one: '1 Minute',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String reminderSnooze(int count) {
|
||||
return '$count Min. schlummern';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -875,6 +875,51 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get daysNext => 'Later days';
|
||||
|
||||
@override
|
||||
String get settingsTasks => 'Tasks';
|
||||
|
||||
@override
|
||||
String get weekStartTitle => 'Start the week on';
|
||||
|
||||
@override
|
||||
String get weekStartLanguage => 'As the language has it';
|
||||
|
||||
@override
|
||||
String get resetSubTasksTitle => 'Reset sub-tasks';
|
||||
|
||||
@override
|
||||
String get resetSubTasksHint =>
|
||||
'Open them again when a recurring task is done';
|
||||
|
||||
@override
|
||||
String get automaticReminderTitle => 'Automatic reminder';
|
||||
|
||||
@override
|
||||
String get automaticReminderHint =>
|
||||
'For a task given a time, unless it has reminders of its own';
|
||||
|
||||
@override
|
||||
String get automaticReminderNone => 'None';
|
||||
|
||||
@override
|
||||
String get snoozeTitle => 'When snoozed';
|
||||
|
||||
@override
|
||||
String snoozeMinutes(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count minutes',
|
||||
one: '1 minute',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String reminderSnooze(int count) {
|
||||
return 'Snooze $count min';
|
||||
}
|
||||
}
|
||||
|
||||
/// The translations for English, as used in the United Kingdom (`en_GB`).
|
||||
|
|
|
|||
Loading…
Reference in a new issue