Merge develop -> main: full session (KC-51 through KC-71) #28

Merged
kutesir merged 64 commits from develop into main 2026-07-12 22:57:14 +00:00
3 changed files with 23 additions and 2 deletions
Showing only changes of commit 3c71a233d7 - Show all commits

View File

@@ -2229,3 +2229,24 @@ unwanted friction, not a fix — restored the KC-52 behavior where Finish
skips the dialog only when `done == total` (nothing to override at that skips the dialog only when `done == total` (nothing to override at that
point). Partial-completion "Finish Anyway" still confirms. The point). Partial-completion "Finish Anyway" still confirms. The
always-visible progress dots from this issue's first change are untouched. always-visible progress dots from this issue's first change are untouched.
## KC-64 — Xcode warning: deprecated `Activity.end(using:dismissalPolicy:)`
Status: Implemented (not build-verified — no iOS runtime here)
Reported by: User, Xcode warning screenshot ("'end(using:dismissalPolicy:)'
was deprecated in iOS 16.2: Use end(content:dismissalPolicy:)")
Area: Live Activities
### Description
Both Live Activity "stop" call sites called `activity.end(dismissalPolicy:
.immediate)` with no content argument. ActivityKit has two overloads —
`end(_:dismissalPolicy:)` (current) and the deprecated `end(using:
dismissalPolicy:)` — and omitting the first argument entirely resolved to
the deprecated one.
### Change
Pass `nil` explicitly as the unlabeled first argument so it binds to the
non-deprecated overload: `activity.end(nil, dismissalPolicy: .immediate)`.
Files: `KisaniCal/Managers/LiveActivityManager.swift`,
`KisaniCalWidgets/StopCountdownIntent.swift`.

View File

@@ -61,7 +61,7 @@ enum LiveActivityManager {
Task { Task {
for activity in Activity<TaskActivityAttributes>.activities for activity in Activity<TaskActivityAttributes>.activities
where activity.attributes.taskID == taskID { where activity.attributes.taskID == taskID {
await activity.end(dismissalPolicy: .immediate) await activity.end(nil, dismissalPolicy: .immediate)
} }
} }
} }

View File

@@ -19,7 +19,7 @@ struct StopCountdownIntent: LiveActivityIntent {
func perform() async throws -> some IntentResult { func perform() async throws -> some IntentResult {
for activity in Activity<TaskActivityAttributes>.activities for activity in Activity<TaskActivityAttributes>.activities
where activity.attributes.taskID == taskID { where activity.attributes.taskID == taskID {
await activity.end(dismissalPolicy: .immediate) await activity.end(nil, dismissalPolicy: .immediate)
} }
return .result() return .result()
} }