init
This commit is contained in:
55
Werkout_ios/BridgeModule.swift
Normal file
55
Werkout_ios/BridgeModule.swift
Normal file
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// TimerModule.swift
|
||||
// Werkout_ios
|
||||
//
|
||||
// Created by Trey Tartt on 6/14/23.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
class BridgeModule: ObservableObject {
|
||||
static let shared = BridgeModule()
|
||||
@Published var isShowingOnExternalDisplay = false
|
||||
|
||||
private var timer: Timer?
|
||||
@Published var timeLeft: Int = 0
|
||||
|
||||
var timerCompleted: (() -> Void)?
|
||||
@Published var currentExercise: ExerciseElement?
|
||||
@Published var currentWorkout: Workout?
|
||||
@Published var currentExerciseIdx: Int = -1
|
||||
|
||||
private func startTimerWith(duration: Int) {
|
||||
timer?.invalidate()
|
||||
timer = nil
|
||||
timeLeft = duration
|
||||
timer = Timer.scheduledTimer(timeInterval: 1,
|
||||
target: self,
|
||||
selector: #selector(updateCounter),
|
||||
userInfo: nil,
|
||||
repeats: true)
|
||||
timer?.fire()
|
||||
}
|
||||
|
||||
@objc func updateCounter() {
|
||||
if timeLeft > 0 {
|
||||
timeLeft -= 1
|
||||
} else {
|
||||
timer?.invalidate()
|
||||
timer = nil
|
||||
timerCompleted?()
|
||||
}
|
||||
}
|
||||
|
||||
func updateCurrent(workout: Workout) {
|
||||
self.currentWorkout = workout
|
||||
}
|
||||
|
||||
func updateCurrent(exercise: ExerciseElement) {
|
||||
self.currentExercise = exercise
|
||||
|
||||
if let duration = exercise.duration {
|
||||
startTimerWith(duration: duration)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user