Description
Allow users to delete a task from the Task Detail screen by tapping the "Delete" button. Since deletion is destructive and irreversible, a confirmation dialog must be shown before the task is actually deleted.
The confirmation dialog should clearly state what will be deleted and offer two actions: "Delete" (destructive, confirms) and "Cancel" (dismisses the dialog). Upon confirmation, the task is removed from the repository and the user is navigated back to the previous screen.
Depends on #129 (Task detail screen).
Scope
In scope: delete confirmation dialog, task deletion from the repository, navigation back after deletion, and string resources.
Out of scope: undo/restore deleted task, swipe-to-delete (separate ticket), batch deletion.
Acceptance criteria
Description
Allow users to delete a task from the Task Detail screen by tapping the "Delete" button. Since deletion is destructive and irreversible, a confirmation dialog must be shown before the task is actually deleted.
The confirmation dialog should clearly state what will be deleted and offer two actions: "Delete" (destructive, confirms) and "Cancel" (dismisses the dialog). Upon confirmation, the task is removed from the repository and the user is navigated back to the previous screen.
Depends on #129 (Task detail screen).
Scope
In scope: delete confirmation dialog, task deletion from the repository, navigation back after deletion, and string resources.
Out of scope: undo/restore deleted task, swipe-to-delete (separate ticket), batch deletion.
Acceptance criteria
WHEN they tap the "Delete" button
THEN a confirmation dialog is shown
WHEN the dialog renders
THEN it clearly states that the task will be permanently deleted
WHEN the user taps "Cancel"
THEN the dialog is dismissed and the task is not deleted
WHEN the user taps "Delete"
THEN the task is removed from the repository and the user is navigated back to the previous screen
WHEN they return to the previous screen
THEN the deleted task is no longer visible in the task list
WHEN the app renders the dialog
THEN all visible text comes from string resources