split files up, fix complete workout screen not showing if remove workout details screen
This commit is contained in:
58
iphone/Werkout_ios/BridgeModule+Timer.swift
Normal file
58
iphone/Werkout_ios/BridgeModule+Timer.swift
Normal file
@@ -0,0 +1,58 @@
|
||||
//
|
||||
// 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
|
||||
})
|
||||
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.playBeep()
|
||||
case .finishBeep:
|
||||
AudioEngine.playFinished()
|
||||
case .remoteURL(let url):
|
||||
AudioEngine.playRemoteAudio(fromURL: url)
|
||||
}
|
||||
}
|
||||
}
|
||||
sendCurrentExerciseToWatch()
|
||||
} else {
|
||||
nextExercise()
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user