docs: log KC-4 (task menu + Live Activity) with test steps
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -90,4 +90,53 @@ Two changes to the Today view:
|
|||||||
Files: `KisaniCal/Views/TodayView.swift`
|
Files: `KisaniCal/Views/TodayView.swift`
|
||||||
|
|
||||||
### Verification
|
### Verification
|
||||||
Builds cleanly. Committed in `f66f032`.
|
Builds cleanly. Committed in `f66f032` (re-authored `a92e9d4`).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## KC-4 — Unified task context menu + Live Activity + calendar event actions
|
||||||
|
|
||||||
|
**Status:** In Progress (implemented & build-verified; Live Activity pending on-device test)
|
||||||
|
**Reported by:** User
|
||||||
|
**Area:** Tasks / Calendar / Widgets
|
||||||
|
|
||||||
|
### Description
|
||||||
|
Long-pressing a task (in any task list) should show a consistent menu:
|
||||||
|
Pin · Date · Move · Priority · Tags · Add to Live Activity · Delete — and the
|
||||||
|
actions must actually work. Long-pressing a non-subscription calendar event
|
||||||
|
should offer Edit / Delete only.
|
||||||
|
|
||||||
|
### Fix
|
||||||
|
- New shared `TaskMenuItems` (KisaniCal/Views/TaskContextMenu.swift) used by the
|
||||||
|
Today timeline, Matrix (grid + Overdue/Later/Completed lists), and Calendar
|
||||||
|
day timeline. Added `TaskViewModel.setPriority`.
|
||||||
|
- Live Activity (ActivityKit): `TaskActivityAttributes` (shared app+widget),
|
||||||
|
`LiveActivityManager` (start/update/end/toggle, iOS 16.1+), `TaskLiveActivity`
|
||||||
|
widget (lock screen + Dynamic Island), `NSSupportsLiveActivities` via project.yml.
|
||||||
|
- Calendar events (non-subscription, writable only): Edit opens the system
|
||||||
|
`EKEventEditViewController` (`EventEditView`); Delete via `CalendarStore.deleteEvent`.
|
||||||
|
|
||||||
|
Files: `TaskContextMenu.swift`, `TaskActivityAttributes.swift`,
|
||||||
|
`LiveActivityManager.swift`, `TaskLiveActivity.swift`, `TaskItem.swift`,
|
||||||
|
`MatrixView.swift`, `CalendarView.swift`, `TodayView.swift`,
|
||||||
|
`KisaniCalWidgets.swift`, `project.yml`. Committed in `d0d982f`.
|
||||||
|
|
||||||
|
### How to test
|
||||||
|
1. **Menu parity** — long-press a task in Today, in a Matrix quadrant, in a
|
||||||
|
Matrix list (Overdue/Later), and in the Calendar day view. All show the same
|
||||||
|
7 items.
|
||||||
|
2. **Each action** — Pin (row pins), Date → Today/Tomorrow/Next Week/Remove
|
||||||
|
(due date changes), Move (task changes quadrant), Priority (flag changes),
|
||||||
|
Tags (category changes), Delete (removed).
|
||||||
|
3. **Live Activity** — tap "Add to Live Activity" → a banner appears on the Lock
|
||||||
|
Screen / Dynamic Island with the task title + countdown; tap again to end.
|
||||||
|
**Requires a real iOS 16.1+ device** (not visible in the Simulator).
|
||||||
|
4. **Calendar events** — long-press a personal (writable) event → Edit opens the
|
||||||
|
system editor; Delete removes it. A subscribed/RSS event (F1, TV) shows **no**
|
||||||
|
menu.
|
||||||
|
|
||||||
|
### Known limitations
|
||||||
|
- Live Activity visuals only render on a physical device; the design is a first
|
||||||
|
pass (orange accent + timer) and can be refined.
|
||||||
|
- Uses the iOS 16.1 `Activity.request(...contentState:...)` API (deprecation
|
||||||
|
warning on 16.2+, still functional).
|
||||||
|
|||||||
Reference in New Issue
Block a user