AdvancedSettingsViewController.swift 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. //
  2. // DebugSettingsViewController.swift
  3. // LoopFollow
  4. //
  5. // Created by Jose Paredes on 7/16/20.
  6. // Copyright © 2020 Jon Fawcett. All rights reserved.
  7. //
  8. import Foundation
  9. import Eureka
  10. import EventKit
  11. import EventKitUI
  12. class AdvancedSettingsViewController: FormViewController {
  13. var appStateController: AppStateController?
  14. override func viewDidLoad() {
  15. super.viewDidLoad()
  16. if UserDefaultsRepository.forceDarkMode.value {
  17. overrideUserInterfaceStyle = .dark
  18. }
  19. buildAdvancedSettings()
  20. }
  21. private func buildAdvancedSettings() {
  22. form
  23. +++ Section("Advanced Settings")
  24. <<< SwitchRow("onlyDownloadBG"){ row in
  25. row.title = "Only Download BG from NS"
  26. row.value = UserDefaultsRepository.onlyDownloadBG.value
  27. }.onChange { [weak self] row in
  28. guard let value = row.value else { return }
  29. UserDefaultsRepository.onlyDownloadBG.value = value
  30. }
  31. <<< SwitchRow("downloadTreatments"){ row in
  32. row.title = "Download Treatments"
  33. row.value = UserDefaultsRepository.downloadTreatments.value
  34. }.onChange { [weak self] row in
  35. guard let value = row.value else { return }
  36. UserDefaultsRepository.downloadTreatments.value = value
  37. }
  38. <<< SwitchRow("downloadPrediction"){ row in
  39. row.title = "Download Prediction"
  40. row.value = UserDefaultsRepository.downloadPrediction.value
  41. }.onChange { [weak self] row in
  42. guard let value = row.value else { return }
  43. UserDefaultsRepository.downloadPrediction.value = value
  44. }
  45. <<< SwitchRow("graphBasal"){ row in
  46. row.title = "Graph Basal"
  47. row.value = UserDefaultsRepository.graphBasal.value
  48. }.onChange { [weak self] row in
  49. guard let value = row.value else { return }
  50. UserDefaultsRepository.graphBasal.value = value
  51. }
  52. <<< SwitchRow("graphBolus"){ row in
  53. row.title = "Graph Bolus"
  54. row.value = UserDefaultsRepository.graphBolus.value
  55. }.onChange { [weak self] row in
  56. guard let value = row.value else { return }
  57. UserDefaultsRepository.graphBolus.value = value
  58. }
  59. <<< SwitchRow("graphCarbs"){ row in
  60. row.title = "Graph Carbs"
  61. row.value = UserDefaultsRepository.graphCarbs.value
  62. }.onChange { [weak self] row in
  63. guard let value = row.value else { return }
  64. UserDefaultsRepository.graphCarbs.value = value
  65. }
  66. <<< SwitchRow("graphOtherTreatments"){ row in
  67. row.title = "Graph Other Treatments"
  68. row.value = UserDefaultsRepository.graphOtherTreatments.value
  69. }.onChange { [weak self] row in
  70. guard let value = row.value else { return }
  71. UserDefaultsRepository.graphOtherTreatments.value = value
  72. }
  73. <<< StepperRow("bgUpdateDelay") { row in
  74. row.title = "BG Update Delay (Sec)"
  75. row.cell.stepper.stepValue = 1
  76. row.cell.stepper.minimumValue = 1
  77. row.cell.stepper.maximumValue = 30
  78. row.value = Double(UserDefaultsRepository.bgUpdateDelay.value)
  79. row.displayValueFor = { value in
  80. guard let value = value else { return nil }
  81. return "\(Int(value))"
  82. }
  83. }.onChange { [weak self] row in
  84. guard let value = row.value else { return }
  85. UserDefaultsRepository.bgUpdateDelay.value = Int(value)
  86. }
  87. <<< SwitchRow("alwaysDownloadAllBG"){ row in
  88. row.title = "Allways Download All BG Values"
  89. row.value = UserDefaultsRepository.alwaysDownloadAllBG.value
  90. }.onChange { [weak self] row in
  91. guard let value = row.value else { return }
  92. UserDefaultsRepository.alwaysDownloadAllBG.value = value
  93. }
  94. <<< SwitchRow("debugLog"){ row in
  95. row.title = "Show Debug Log"
  96. row.value = UserDefaultsRepository.debugLog.value
  97. }.onChange { [weak self] row in
  98. guard let value = row.value else { return }
  99. UserDefaultsRepository.debugLog.value = value
  100. }
  101. +++ ButtonRow() {
  102. $0.title = "DONE"
  103. }.onCellSelection { (row, arg) in
  104. self.dismiss(animated:true, completion: nil)
  105. }
  106. }
  107. }