add details to phone workout view

This commit is contained in:
Trey t
2024-06-16 18:24:00 -05:00
parent 1fbb0c90f4
commit 0ac3835a9f
6 changed files with 56 additions and 14 deletions

View File

@@ -12,6 +12,6 @@ enum BaseURLs: String {
case dev = "https://dev.werkout.fitness"
static var currentBaseURL: String {
return BaseURLs.dev.rawValue
return BaseURLs.local.rawValue
}
}

View File

@@ -51,7 +51,8 @@ class BridgeModule: NSObject, ObservableObject {
// tells the watch app to stop the workout
public private(set) var workoutEndDate: Date?
@Published public private(set) var healthKitUUID: UUID?
@Published var isPaused = false
var audioPlayer: AVAudioPlayer?
var avPlayer: AVPlayer?
@@ -64,6 +65,7 @@ class BridgeModule: NSObject, ObservableObject {
currentWorkoutRunTimeInSeconds = 0
currentWorkoutRunTimer?.invalidate()
currentWorkoutRunTimer = nil
isPaused = false
if let superetExercise = currentExerciseInfo.currentExercise {
updateCurrent(exercise: superetExercise)
@@ -161,7 +163,9 @@ class BridgeModule: NSObject, ObservableObject {
if let _ = currentExerciseTimer {
currentExerciseTimer?.invalidate()
currentExerciseTimer = nil
isPaused = true
} else {
isPaused = false
startExerciseTimerWith(duration: currentExerciseTimeLeft)
}
}

View File

@@ -20,6 +20,22 @@ class CurrentWorkoutInfo {
return workout?.supersets?.sorted(by: { $0.order < $1.order }) ?? [Superset]()
}
var numberOfRoundsInCurrentSuperSet: Int {
guard let workout = workout else { return -1 }
guard let supersets = workout.supersets else { return -1 }
if supersetIndex >= supersets.count {
return -1
}
let currentSuperSet = supersets[supersetIndex]
if exerciseIndex >= currentSuperSet.exercises.count {
return -1
}
return currentSuperSet.rounds
}
var currentExercise: SupersetExercise? {
guard let supersets = workout?.supersets else { return nil }

View File

@@ -34,14 +34,14 @@ struct ExternalWorkoutDetailView: View {
ExtExerciseList(workout: workout,
allSupersetExecerciseIndex: bridgeModule.currentExerciseInfo.allSupersetExecerciseIndex)
if let currentExercisePositionString = bridgeModule.currentExercisePositionString {
Text(currentExercisePositionString)
.font(Font.system(size: 75))
.scaledToFit()
.minimumScaleFactor(0.01)
.lineLimit(1)
.padding()
}
// if let currentExercisePositionString = bridgeModule.currentExercisePositionString {
// Text(currentExercisePositionString)
// .font(Font.system(size: 75))
// .scaledToFit()
// .minimumScaleFactor(0.01)
// .lineLimit(1)
// .padding()
// }
}
.frame(width: metrics.size.width * 0.4, height: metrics.size.height * 0.8)
}

View File

@@ -70,12 +70,17 @@ struct ActionsView: View {
Button(action: {
bridgeModule.pauseWorkout()
}, label: {
Image(systemName: "pause.circle.fill")
.font(.title)
.frame(maxWidth: .infinity, maxHeight: .infinity)
bridgeModule.isPaused ?
Image(systemName: "play.circle.fill")
.font(.title)
.frame(maxWidth: .infinity, maxHeight: .infinity)
:
Image(systemName: "pause.circle.fill")
.font(.title)
.frame(maxWidth: .infinity, maxHeight: .infinity)
})
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(.yellow)
.background(bridgeModule.isPaused ? .mint : .yellow)
.foregroundColor(.white)
Button(action: {

View File

@@ -89,6 +89,23 @@ struct WorkoutDetailView: View {
InfoView(workout: workout)
.padding(.bottom)
if bridgeModule.isInWorkout {
Divider()
HStack {
Text("Round \(bridgeModule.currentExerciseInfo.currentRound) of \(bridgeModule.currentExerciseInfo.numberOfRoundsInCurrentSuperSet)")
.font(.title3)
.lineLimit(1)
.padding()
.bold()
Text("Current: \(bridgeModule.currentExerciseInfo.allSupersetExecerciseIndex+1) of \(bridgeModule.currentExerciseInfo.workout?.allSupersetExecercise?.count ?? -99)")
.font(.title3)
.lineLimit(1)
.padding()
.bold()
}
}
ExerciseListView(workout: workout, showExecersizeInfo: $showExecersizeInfo)
ActionsView(completedWorkout: {