AdvancedSettingsView.swift 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. //
  2. // AdvancedSettingsView.swift
  3. // LoopFollow
  4. //
  5. // Created by Jonas Björkert on 2025-01-23.
  6. // Copyright © 2025 Jon Fawcett. All rights reserved.
  7. //
  8. import SwiftUI
  9. struct AdvancedSettingsView: View {
  10. @ObservedObject var viewModel: AdvancedSettingsViewModel
  11. @Environment(\.presentationMode) var presentationMode
  12. var body: some View {
  13. NavigationView {
  14. Form {
  15. Section(header: Text("Advanced Settings")) {
  16. Toggle("Download Treatments", isOn: $viewModel.downloadTreatments)
  17. Toggle("Download Prediction", isOn: $viewModel.downloadPrediction)
  18. Toggle("Graph Basal", isOn: $viewModel.graphBasal)
  19. Toggle("Graph Bolus", isOn: $viewModel.graphBolus)
  20. Toggle("Graph Carbs", isOn: $viewModel.graphCarbs)
  21. Toggle("Graph Other Treatments", isOn: $viewModel.graphOtherTreatments)
  22. }
  23. Section(header: Text("BG Delay Settings")) {
  24. Toggle("Dynamic BG Delay", isOn: $viewModel.bgDelayDynamicEnabled)
  25. if viewModel.bgDelayDynamicEnabled {
  26. HStack {
  27. Text("Dynamic BG Delay (Sec)")
  28. Spacer()
  29. Text("\(viewModel.bgDelayDynamicDelay, specifier: "%.0f")")
  30. .foregroundColor(.secondary)
  31. }
  32. } else {
  33. Stepper(value: $viewModel.bgUpdateDelay, in: 1...30, step: 1) {
  34. Text("BG Update Delay (Sec): \(viewModel.bgUpdateDelay)")
  35. }
  36. }
  37. }
  38. Section(header: Text("Logging Options")) {
  39. Toggle("Debug Log Level", isOn: $viewModel.debugLogLevel)
  40. }
  41. }
  42. .navigationBarTitle("Advanced Settings", displayMode: .inline)
  43. .toolbar {
  44. ToolbarItem(placement: .navigationBarTrailing) {
  45. Button("Done") {
  46. presentationMode.wrappedValue.dismiss()
  47. }
  48. }
  49. }
  50. }
  51. }
  52. }