From 4bcfd6a7faf2dab237099ac155457263d494befe Mon Sep 17 00:00:00 2001 From: Trey t Date: Wed, 5 Jul 2023 17:50:33 -0500 Subject: [PATCH] WIP --- .../Views/AllWorkouts/AllWorkoutsView.swift | 74 +++++++++++++------ .../WorkoutDetail/WorkoutDetailView.swift | 19 ++++- 2 files changed, 69 insertions(+), 24 deletions(-) diff --git a/Werkout_ios/Views/AllWorkouts/AllWorkoutsView.swift b/Werkout_ios/Views/AllWorkouts/AllWorkoutsView.swift index fb13fb1..530affe 100644 --- a/Werkout_ios/Views/AllWorkouts/AllWorkoutsView.swift +++ b/Werkout_ios/Views/AllWorkouts/AllWorkoutsView.swift @@ -8,26 +8,28 @@ import Foundation import SwiftUI -struct AllWorkoutsView: View { - enum MainViews: Int, CaseIterable { - case AllWorkout = 0 - case MyWorkouts - - var title: String { - switch self { - - case .AllWorkout: - return "All Workouts" - case .MyWorkouts: - return "Planned Workouts" - } +enum MainViewTypes: Int, CaseIterable { + case AllWorkout = 0 + case MyWorkouts + + var title: String { + switch self { + + case .AllWorkout: + return "All Workouts" + case .MyWorkouts: + return "Planned Workouts" } } +} + +struct AllWorkoutsView: View { + @State var isUpdating = false @State var workouts: [Workout]? var bridgeModule = BridgeModule.shared @State public var needsUpdating: Bool = true - + @ObservedObject var dataStore = DataStore.shared @State private var showWorkoutDetail = false @@ -44,7 +46,7 @@ struct AllWorkoutsView: View { } @State private var showLoginView = false - @State private var selectedSegment: MainViews = .AllWorkout + @State private var selectedSegment: MainViewTypes = .AllWorkout @State var selectedDate: Date = Date() let pub = NotificationCenter.default.publisher(for: NSNotification.Name("CreatedNewWorkout")) @@ -53,17 +55,14 @@ struct AllWorkoutsView: View { ZStack { if let workouts = workouts { VStack { - Picker("", selection: $selectedSegment) { - ForEach(MainViews.allCases, id: \.self) { viewType in - Text(viewType.title) - } - } - .pickerStyle(.segmented) - .padding() + AllWorkoutPickerView(mainViews: MainViewTypes.allCases, + selectedSegment: $selectedSegment, + showCurrentWorkout: { + selectedWorkout = bridgeModule.currentWorkout + }) switch selectedSegment { case .AllWorkout: - if isUpdating { ProgressView() .progressViewStyle(.circular) @@ -178,6 +177,35 @@ struct AllWorkoutsView: View { } } +struct AllWorkoutPickerView: View { + var mainViews: [MainViewTypes] + @Binding var selectedSegment: MainViewTypes + @StateObject var bridgeModule = BridgeModule.shared + var showCurrentWorkout: (() -> Void) + + var body: some View { + HStack { + Picker("", selection: $selectedSegment) { + ForEach(mainViews, id: \.self) { viewType in + Text(viewType.title) + } + } + .pickerStyle(.segmented) + .padding() + + if bridgeModule.isInWorkout { + Button(action: { + showCurrentWorkout() + }, label: { + Image(systemName: "figure.strengthtraining.traditional") + .padding(.trailing) + }) + .tint(.blue) + } + } + } +} + struct AllWorkoutsListView: View { @State var searchString: String = "" let workouts: [Workout] diff --git a/Werkout_ios/Views/WorkoutDetail/WorkoutDetailView.swift b/Werkout_ios/Views/WorkoutDetail/WorkoutDetailView.swift index 971d5c9..c0d8888 100644 --- a/Werkout_ios/Views/WorkoutDetail/WorkoutDetailView.swift +++ b/Werkout_ios/Views/WorkoutDetail/WorkoutDetailView.swift @@ -74,7 +74,6 @@ struct WorkoutDetailView: View { dismiss() }) } - .interactiveDismissDisabled() } } .onChange(of: bridgeModule.currentExercise, perform: { newValue in @@ -96,6 +95,24 @@ struct WorkoutDetailView: View { } }) .onAppear{ + var _url: URL? + if let currentExercise = bridgeModule.currentExercise { + if showNSFWVideos { + let viddd = currentExercise.exercise.nsfwVideoURL + if let url = URL(string: BaseURLs.currentBaseURL + viddd) { + _url = url + } + } else { + let viddd = currentExercise.exercise.videoURL + if let url = URL(string: BaseURLs.currentBaseURL + viddd) { + _url = url + } + } + if let __url = _url { + avPlayer = AVPlayer(url: __url) + avPlayer.play() + } + } bridgeModule.completedWorkout = { if let workoutData = createWorkoutData() { presentedSheet = .completedWorkout(workoutData)