Quellcode durchsuchen

Merge pull request #187 from bjorkert/bolus_line

Blue Bolus Line -30 minutes and Protein Line -90 minutes
Marion Barker vor 3 Jahren
Ursprung
Commit
efebfac591

+ 2 - 0
LoopFollow/Controllers/AppStateController.swift

@@ -30,6 +30,8 @@ enum ChartSettingsChangeEnum: Int {
   case smallGraphHeight = 2048
   case showDIALinesChanged = 4096
   case showMidnightLinesChanged = 8192
+  case show30MinLineChanged = 16384
+  case show90MinLineChanged = 32768
 }
 
 // General Settings Flags

+ 15 - 0
LoopFollow/Controllers/Graphs.swift

@@ -360,6 +360,13 @@ extension MainViewController {
         ul.lineWidth = 1
         BGChart.xAxis.addLimitLine(ul)
         
+        if UserDefaultsRepository.show30MinLine.value {
+            let ul2 = ChartLimitLine()
+            ul2.limit = Double(dateTimeUtils.getNowTimeIntervalUTC().advanced(by: -30 * 60))
+            ul2.lineColor = NSUIColor.systemBlue.withAlphaComponent(0.5)
+            ul2.lineWidth = 1
+            BGChart.xAxis.addLimitLine(ul2)
+        }
         
         if UserDefaultsRepository.showDIALines.value {
             for i in 1..<7 {
@@ -373,6 +380,14 @@ extension MainViewController {
                 BGChart.xAxis.addLimitLine(ul)
             }
         }
+
+        if UserDefaultsRepository.show90MinLine.value {
+            let ul3 = ChartLimitLine()
+            ul3.limit = Double(dateTimeUtils.getNowTimeIntervalUTC().advanced(by: -90 * 60))
+            ul3.lineColor = NSUIColor.systemOrange.withAlphaComponent(0.5)
+            ul3.lineWidth = 1
+            BGChart.xAxis.addLimitLine(ul3)
+        }
     }
     
     func createMidnightLines() {

+ 26 - 0
LoopFollow/ViewControllers/GraphSettingsViewController.swift

@@ -133,6 +133,32 @@ class GraphSettingsViewController: FormViewController {
                    appState.chartSettingsChanges |= ChartSettingsChangeEnum.showDIALinesChanged.rawValue
                 }
             }
+            <<< SwitchRow("show30MinLine") { row in
+                row.title = "Show -30 min line"
+                row.value = UserDefaultsRepository.show30MinLine.value
+            }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.show30MinLine.value = value
+                
+                // Tell the main screen that graph needs updating
+                if let appState = self!.appStateController {
+                    appState.chartSettingsChanged = true
+                    appState.chartSettingsChanges |= ChartSettingsChangeEnum.show30MinLineChanged.rawValue
+                }
+            }
+            <<< SwitchRow("show90MinLine") { row in
+                row.title = "Show -90 min line"
+                row.value = UserDefaultsRepository.show90MinLine.value
+            }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.show90MinLine.value = value
+                
+                // Tell the main screen that graph needs updating
+                if let appState = self!.appStateController {
+                    appState.chartSettingsChanged = true
+                    appState.chartSettingsChanges |= ChartSettingsChangeEnum.show90MinLineChanged.rawValue
+                }
+            }
             <<< SwitchRow("smallGraphTreatments"){ row in
                 row.title = "Treatments on Small Graph"
                 row.value = UserDefaultsRepository.smallGraphTreatments.value

+ 2 - 0
LoopFollow/repository/UserDefaults.swift

@@ -60,6 +60,8 @@ class UserDefaultsRepository {
     static let minBasalScale = UserDefaultsValue<Double>(key: "minBasalScale", default: 5.0)
     static let minBGScale = UserDefaultsValue<Float>(key: "minBGScale", default: 250.0)
     static let showDIALines = UserDefaultsValue<Bool>(key: "showDIAMarkers", default: true)
+    static let show30MinLine = UserDefaultsValue<Bool>(key: "show30MinLine", default: false)
+    static let show90MinLine = UserDefaultsValue<Bool>(key: "show90MinLine", default: false)
     static let showMidnightLines = UserDefaultsValue<Bool>(key: "showMidnightMarkers", default: false)
     static let lowLine = UserDefaultsValue<Float>(key: "lowLine", default: 70.0)
     static let highLine = UserDefaultsValue<Float>(key: "highLine", default: 180.0)