Kaynağa Gözat

feat: toggle SMB in main chart

bastiaanv 2 ay önce
ebeveyn
işleme
ca360ff1c1

+ 3 - 0
Trio/Sources/Localizations/Main/Localizable.xcstrings

@@ -209296,6 +209296,9 @@
         }
       }
     },
+    "Show SMB in Chart" : {
+
+    },
     "Show X-Axis Grid Lines" : {
       "localizations" : {
         "bg" : {

+ 1 - 0
Trio/Sources/Models/TrioSettings.swift

@@ -54,6 +54,7 @@ struct TrioSettings: JSON, Equatable {
     var xGridLines: Bool = true
     var yGridLines: Bool = true
     var rulerMarks: Bool = true
+    var showSmbInChart: Bool = true
     var forecastDisplayType: ForecastDisplayType = .cone
     var maxCarbs: Decimal = 250
     var maxFat: Decimal = 250

+ 5 - 0
Trio/Sources/Modules/Home/HomeStateModel+Setup/PumpHistorySetup.swift

@@ -38,6 +38,11 @@ extension Home.StateModel {
     }
 
     @MainActor private func updateInsulinArray(with insulinObjects: [PumpEventStored]) {
+        var insulinObjects = insulinObjects
+        if !showSmb {
+            insulinObjects = insulinObjects.filter({ $0.bolus == nil || $0.bolus?.isSMB != true })
+        }
+
         insulinFromPersistence = insulinObjects
 
         manualTempBasal = apsManager.isManualTempBasal

+ 4 - 0
Trio/Sources/Modules/Home/HomeStateModel.swift

@@ -76,6 +76,7 @@ extension Home {
         var displayXgridLines: Bool = false
         var displayYgridLines: Bool = false
         var thresholdLines: Bool = false
+        var showSmb: Bool = true
         var hours: Int16 = 6
         var totalBolus: Decimal = 0
         var isLoopStatusPresented: Bool = false
@@ -404,6 +405,7 @@ extension Home {
             eA1cDisplayUnit = settingsManager.settings.eA1cDisplayUnit
             displayXgridLines = settingsManager.settings.xGridLines
             displayYgridLines = settingsManager.settings.yGridLines
+            showSmb = settingsManager.settings.showSmbInChart
             thresholdLines = settingsManager.settings.rulerMarks
             showCarbsRequiredBadge = settingsManager.settings.showCarbsRequiredBadge
             forecastDisplayType = settingsManager.settings.forecastDisplayType
@@ -668,12 +670,14 @@ extension Home.StateModel:
         displayXgridLines = settingsManager.settings.xGridLines
         displayYgridLines = settingsManager.settings.yGridLines
         thresholdLines = settingsManager.settings.rulerMarks
+        showSmb = settingsManager.settings.showSmbInChart
         showCarbsRequiredBadge = settingsManager.settings.showCarbsRequiredBadge
         forecastDisplayType = settingsManager.settings.forecastDisplayType
         cgmAvailable = (fetchGlucoseManager.cgmGlucoseSourceType != CGMType.none)
         displayPumpStatusHighlightMessage()
         displayPumpStatusBadge()
         setupBatteryArray()
+        setupInsulinArray()
         Task {
             await setupCGMSettings()
         }

+ 2 - 0
Trio/Sources/Modules/UserInterfaceSettings/UserInterfaceSettingsStateModel.swift

@@ -7,6 +7,7 @@ extension UserInterfaceSettings {
         @Published var xGridLines = false
         @Published var yGridLines: Bool = false
         @Published var rulerMarks: Bool = true
+        @Published var showSmbInChart: Bool = true
         @Published var forecastDisplayType: ForecastDisplayType = .cone
         @Published var showCarbsRequiredBadge: Bool = true
         @Published var carbsRequiredThreshold: Decimal = 0
@@ -23,6 +24,7 @@ extension UserInterfaceSettings {
             subscribeSetting(\.xGridLines, on: $xGridLines) { xGridLines = $0 }
             subscribeSetting(\.yGridLines, on: $yGridLines) { yGridLines = $0 }
             subscribeSetting(\.rulerMarks, on: $rulerMarks) { rulerMarks = $0 }
+            subscribeSetting(\.showSmbInChart, on: $showSmbInChart) { showSmbInChart = $0 }
 
             subscribeSetting(\.forecastDisplayType, on: $forecastDisplayType) { forecastDisplayType = $0 }
 

+ 1 - 0
Trio/Sources/Modules/UserInterfaceSettings/View/UserInterfaceSettingsRootView.swift

@@ -162,6 +162,7 @@ extension UserInterfaceSettings {
                         VStack {
                             Toggle("Show X-Axis Grid Lines", isOn: $state.xGridLines)
                             Toggle("Show Y-Axis Grid Lines", isOn: $state.yGridLines)
+                            Toggle("Show SMB in Chart", isOn: $state.showSmbInChart)
 
                             HStack(alignment: .center) {
                                 Text(