feat(todo): tasks dragged into place or under another, the add button dropped where the task goes (ADR 0033, D16)

- A project's row, held, is dragged before or after another, or a
  little to the right to become its sub-task, or onto a section's
  heading; its sub-tasks go with it, and Order changed offers Undo
  (TaskRepository.place). The list scrolls at its edges.
- The add button is dragged onto a project's list to add the task
  between two rows, onto a day in Upcoming for that day, onto Today
  for today; dropped back on its place, an ×, it gives up.
- Holding a row now drags it; a swipe to the right selects it.

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 17:28:37 +01:00
commit 36f1e9a25c
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
5 changed files with 903 additions and 92 deletions

View file

@ -165,5 +165,7 @@
"tasksMenu": "Mehr",
"quickAddMore": "Mehr",
"quickAddTokenHint": "Tippe ein hervorgehobenes Wort an, um es als Text zu behalten.",
"deadlineTitle": "Frist"
"deadlineTitle": "Frist",
"orderChanged": "Reihenfolge geändert",
"addTaskCancel": "Hier ablegen zum Abbrechen"
}

View file

@ -449,5 +449,13 @@
"deadlineTitle": "Deadline",
"@deadlineTitle": {
"description": "Quick add's deadline chip and menu entry (D15)."
},
"orderChanged": "Order changed",
"@orderChanged": {
"description": "Snack bar after a task was dragged into another place (ADR 0033, D16)."
},
"addTaskCancel": "Drop here to cancel",
"@addTaskCancel": {
"description": "The × left in the add button's place while it is dragged (D16)."
}
}

View file

@ -1095,6 +1095,18 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'Deadline'**
String get deadlineTitle;
/// Snack bar after a task was dragged into another place (ADR 0033, D16).
///
/// In en, this message translates to:
/// **'Order changed'**
String get orderChanged;
/// The × left in the add button's place while it is dragged (D16).
///
/// In en, this message translates to:
/// **'Drop here to cancel'**
String get addTaskCancel;
}
class _AppLocalizationsDelegate

View file

@ -707,4 +707,10 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get deadlineTitle => 'Frist';
@override
String get orderChanged => 'Reihenfolge geändert';
@override
String get addTaskCancel => 'Hier ablegen zum Abbrechen';
}

View file

@ -706,6 +706,12 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get deadlineTitle => 'Deadline';
@override
String get orderChanged => 'Order changed';
@override
String get addTaskCancel => 'Drop here to cancel';
}
/// The translations for English, as used in the United Kingdom (`en_GB`).