59 lines
2.1 KiB
Swift
59 lines
2.1 KiB
Swift
//
|
|
// BridgeModule+Timer.swift
|
|
// Werkout_ios
|
|
//
|
|
// Created by Trey Tartt on 6/21/24.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
extension BridgeModule {
|
|
func startWorkoutTimer() {
|
|
currentWorkoutRunTimer?.invalidate()
|
|
currentWorkoutRunTimer = nil
|
|
currentWorkoutRunTimer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { timer in
|
|
self.currentWorkoutRunTimeInSeconds += 1
|
|
self.sendCurrentExerciseToWatch()
|
|
})
|
|
currentWorkoutRunTimer?.fire()
|
|
}
|
|
|
|
func startExerciseTimerWith(duration: Int) {
|
|
DispatchQueue.main.async {
|
|
self.currentExerciseTimer?.invalidate()
|
|
self.currentExerciseTimer = nil
|
|
self.currentExerciseTimeLeft = duration
|
|
self.currentExerciseTimer = Timer.scheduledTimer(timeInterval: 1,
|
|
target: self,
|
|
selector: #selector(self.updateCurrentExerciseTimer),
|
|
userInfo: nil,
|
|
repeats: true)
|
|
self.currentExerciseTimer?.fire()
|
|
}
|
|
}
|
|
|
|
@objc func updateCurrentExerciseTimer() {
|
|
if currentExerciseTimeLeft > 1 {
|
|
currentExerciseTimeLeft -= 1
|
|
|
|
if let currentExercise = currentExerciseInfo.allSupersetExecercise, let audioQueues = currentExercise.audioQueues {
|
|
if let audioQueue = audioQueues.first(where: {
|
|
$0.playAt == currentExerciseTimeLeft
|
|
}) {
|
|
switch audioQueue.audioType {
|
|
|
|
case .shortBeep:
|
|
AudioEngine.shared.playBeep()
|
|
case .finishBeep:
|
|
AudioEngine.shared.playFinished()
|
|
case .remoteURL(let url):
|
|
AudioEngine.shared.playRemoteAudio(fromURL: url)
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
nextExercise()
|
|
}
|
|
}
|
|
}
|