diff --git a/cue-ios/CueIOS/AppState.swift b/cue-ios/CueIOS/AppState.swift index 018ce34..7dfd29d 100644 --- a/cue-ios/CueIOS/AppState.swift +++ b/cue-ios/CueIOS/AppState.swift @@ -72,6 +72,7 @@ final class AppState { var clDepT: String = "5000" var clMeasT: String = "5000" var clRtia: LpRtia = .r10K + var clManualPeaks: Bool = false // pH var phResult: PhResult? = nil diff --git a/cue-ios/CueIOS/Models/Storage.swift b/cue-ios/CueIOS/Models/Storage.swift index 4ee146f..b6e29fc 100644 --- a/cue-ios/CueIOS/Models/Storage.swift +++ b/cue-ios/CueIOS/Models/Storage.swift @@ -231,9 +231,10 @@ final class Storage: @unchecked Sendable { // MARK: - Observation (for SwiftUI live updates) + @MainActor func observeDataPoints( measurementId: Int64, - onChange: @escaping ([DataPoint]) -> Void + onChange: @escaping @Sendable ([DataPoint]) -> Void ) -> DatabaseCancellable { let observation = ValueObservation.tracking { db in try DataPoint @@ -244,7 +245,8 @@ final class Storage: @unchecked Sendable { return observation.start(in: dbQueue, onError: { _ in }, onChange: onChange) } - func observeSessions(onChange: @escaping ([Session]) -> Void) -> DatabaseCancellable { + @MainActor + func observeSessions(onChange: @escaping @Sendable ([Session]) -> Void) -> DatabaseCancellable { let observation = ValueObservation.tracking { db in try Session.order(Column("startedAt").desc).fetchAll(db) } diff --git a/cue-ios/CueIOS/Views/ChlorineView.swift b/cue-ios/CueIOS/Views/ChlorineView.swift index 66ad192..5c129a9 100644 --- a/cue-ios/CueIOS/Views/ChlorineView.swift +++ b/cue-ios/CueIOS/Views/ChlorineView.swift @@ -43,9 +43,9 @@ struct ChlorineView: View { Button("Start LSV") { state.startLSV() } .buttonStyle(ActionButtonStyle(color: .green)) - Button(state.lsvManualPeaks ? "Manual" : "Auto") { - state.lsvManualPeaks.toggle() - if state.lsvManualPeaks { + Button(state.clManualPeaks ? "Manual" : "Auto") { + state.clManualPeaks.toggle() + if state.clManualPeaks { state.lsvPeaks.removeAll() } else { state.lsvPeaks = detectLsvPeaks(state.lsvPoints)