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`
|
||||
|
||||
### 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