feat(watch): display water lock status indicator during workout
This commit is contained in:
@@ -41,6 +41,9 @@ class WorkoutManager: NSObject, ObservableObject, HKLiveWorkoutBuilderDelegate {
|
||||
@Published var lapDetected = false
|
||||
@Published var healthKitAuthorized = false
|
||||
@Published var isPaused = false
|
||||
@Published var isWaterLockEnabled = false
|
||||
|
||||
private var waterLockCheckTimer: Timer?
|
||||
|
||||
override init() {
|
||||
super.init()
|
||||
@@ -163,6 +166,7 @@ class WorkoutManager: NSObject, ObservableObject, HKLiveWorkoutBuilderDelegate {
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
|
||||
WKInterfaceDevice.current().enableWaterLock()
|
||||
}
|
||||
startWaterLockCheck()
|
||||
WKInterfaceDevice.current().play(.start)
|
||||
}
|
||||
|
||||
@@ -189,6 +193,7 @@ class WorkoutManager: NSObject, ObservableObject, HKLiveWorkoutBuilderDelegate {
|
||||
restTimer?.invalidate()
|
||||
isWorkoutActive = false
|
||||
|
||||
stopWaterLockCheck()
|
||||
stopLapDetection()
|
||||
stopHeartRateQuery()
|
||||
stopCalorieQuery()
|
||||
@@ -199,6 +204,23 @@ class WorkoutManager: NSObject, ObservableObject, HKLiveWorkoutBuilderDelegate {
|
||||
WKInterfaceDevice.current().play(.success)
|
||||
}
|
||||
|
||||
// MARK: - Water Lock Check
|
||||
|
||||
private func startWaterLockCheck() {
|
||||
isWaterLockEnabled = WKInterfaceDevice.current().isWaterLockEnabled
|
||||
waterLockCheckTimer = Timer.scheduledTimer(withTimeInterval: 1.5, repeats: true) { [weak self] _ in
|
||||
DispatchQueue.main.async {
|
||||
self?.isWaterLockEnabled = WKInterfaceDevice.current().isWaterLockEnabled
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func stopWaterLockCheck() {
|
||||
waterLockCheckTimer?.invalidate()
|
||||
waterLockCheckTimer = nil
|
||||
isWaterLockEnabled = false
|
||||
}
|
||||
|
||||
// MARK: - Workout Summary
|
||||
|
||||
private func createWorkoutSummary() {
|
||||
|
||||
Reference in New Issue
Block a user