// // RuntimeSessionManager.swift // KegingWatch Watch App // // 확장 런타임 세션 (physical-therapy) — 손목을 내려도 타이머·진동이 이어지게 한다. // 세션 시작이 거부돼도 앱이 화면에 떠 있는 동안은 그대로 동작한다. // import WatchKit final class RuntimeSessionManager: NSObject, WKExtendedRuntimeSessionDelegate { static let shared = RuntimeSessionManager() private var session: WKExtendedRuntimeSession? private override init() { super.init() } func start() { stop() let newSession = WKExtendedRuntimeSession() newSession.delegate = self newSession.start() session = newSession } func stop() { session?.invalidate() session = nil } // MARK: WKExtendedRuntimeSessionDelegate nonisolated func extendedRuntimeSessionDidStart(_ extendedRuntimeSession: WKExtendedRuntimeSession) {} nonisolated func extendedRuntimeSessionWillExpire(_ extendedRuntimeSession: WKExtendedRuntimeSession) {} nonisolated func extendedRuntimeSession( _ extendedRuntimeSession: WKExtendedRuntimeSession, didInvalidateWith reason: WKExtendedRuntimeSessionInvalidationReason, error: Error? ) {} }