23 lines
985 B
Swift
23 lines
985 B
Swift
import ActivityKit
|
|||
|
|
import Foundation
|
||
|
|
|
||
|
|
/// The one aggregate Live Activity (UX_IOS §5.3, aggregate per §11.4 — a single Activity
|
||
|
|
/// respects iOS's budget better than one per session): "N running, M waiting" plus the most
|
||
|
|
/// urgent session's title. Shared between the app (which starts/updates it) and the widget
|
||
|
|
/// extension (which renders it).
|
||
|
|
struct NucleicSessionAttributes: ActivityAttributes {
|
||
|
|
struct ContentState: Codable, Hashable {
|
||
|
|
/// Sessions actively working a turn.
|
||
|
|
var runningCount: Int
|
||
|
|
/// Sessions blocked on the user (approval or next prompt) — the loud number.
|
||
|
|
var needsYouCount: Int
|
||
|
|
/// The most urgent session's title: the top waiting one, else the busiest running.
|
||
|
|
var topTitle: String?
|
||
|
|
/// Whether `topTitle` is waiting on the user (amber) vs just running (blue).
|
||
|
|
var topNeedsYou: Bool
|
||
|
|
}
|
||
|
|
|
||
|
|
/// The paired Mac's name (static for the Activity's lifetime).
|
||
|
|
var hostName: String
|
||
|
|
}
|