Переглянути джерело

List all 3 upload toggles to Nightscout in Nightscout Config View instead

Jon Mårtensson 2 роки тому
батько
коміт
aacfc1325d

+ 0 - 13
FreeAPS/Sources/Modules/CGM/CGMStateModel.swift

@@ -28,18 +28,6 @@ extension CGM {
             cgmTransmitterDeviceAddress = UserDefaults.standard.cgmTransmitterDeviceAddress
 
             subscribeSetting(\.useCalendar, on: $createCalendarEvents) { createCalendarEvents = $0 }
-            subscribeSetting(\.uploadGlucose, on: $uploadGlucose, initial: { uploadGlucose = $0 }, didSet: { val in
-                if let cgmManagerG5 = self.cgmManager.glucoseSource.cgmManager as? G5CGMManager {
-                    cgmManagerG5.shouldSyncToRemoteService = val
-                }
-                if let cgmManagerG6 = self.cgmManager.glucoseSource.cgmManager as? G6CGMManager {
-                    cgmManagerG6.shouldSyncToRemoteService = val
-                }
-                if let cgmManagerG7 = self.cgmManager.glucoseSource.cgmManager as? G7CGMManager {
-                    cgmManagerG7.uploadReadings = val
-                }
-            })
-
             subscribeSetting(\.smoothGlucose, on: $smoothGlucose, initial: { smoothGlucose = $0 })
 
             $cgm
@@ -91,7 +79,6 @@ extension CGM.StateModel: CompletionDelegate {
         }
         // refresh the upload options
         uploadGlucose = settingsManager.settings.uploadGlucose
-
         cgmManager.updateGlucoseSource()
     }
 }

+ 0 - 4
FreeAPS/Sources/Modules/CGM/View/CGMRootView.swift

@@ -64,10 +64,6 @@ extension CGM {
                         }
                     }
 
-                    Section(header: Text("Other")) {
-                        Toggle("Upload glucose to Nightscout", isOn: $state.uploadGlucose)
-                    }
-
                     Section(header: Text("Experimental")) {
                         Toggle("Smooth Glucose Value", isOn: $state.smoothGlucose)
                     }

+ 18 - 2
FreeAPS/Sources/Modules/NightscoutConfig/NightscoutConfigStateModel.swift

@@ -1,4 +1,6 @@
+import CGMBLEKit
 import Combine
+import G7SensorKit
 import SwiftDate
 import SwiftUI
 
@@ -8,14 +10,16 @@ extension NightscoutConfig {
         @Injected() private var nightscoutManager: NightscoutManager!
         @Injected() private var glucoseStorage: GlucoseStorage!
         @Injected() private var healthKitManager: HealthKitManager!
+        @Injected() private var cgmManager: FetchGlucoseManager!
 
         @Published var url = ""
         @Published var secret = ""
         @Published var message = ""
         @Published var connecting = false
         @Published var backfilling = false
-        @Published var isUploadEnabled = false
-
+        @Published var isUploadEnabled = false // Allow uploads
+        @Published var uploadStats = false // Upload Statistics
+        @Published var uploadGlucose = true // Upload Glucose
         @Published var useLocalSource = false
         @Published var localPort: Decimal = 0
 
@@ -26,6 +30,18 @@ extension NightscoutConfig {
             subscribeSetting(\.isUploadEnabled, on: $isUploadEnabled) { isUploadEnabled = $0 }
             subscribeSetting(\.useLocalGlucoseSource, on: $useLocalSource) { useLocalSource = $0 }
             subscribeSetting(\.localGlucosePort, on: $localPort.map(Int.init)) { localPort = Decimal($0) }
+            subscribeSetting(\.uploadStats, on: $uploadStats) { uploadStats = $0 }
+            subscribeSetting(\.uploadGlucose, on: $uploadGlucose, initial: { uploadGlucose = $0 }, didSet: { val in
+                if let cgmManagerG5 = self.cgmManager.glucoseSource.cgmManager as? G5CGMManager {
+                    cgmManagerG5.shouldSyncToRemoteService = val
+                }
+                if let cgmManagerG6 = self.cgmManager.glucoseSource.cgmManager as? G6CGMManager {
+                    cgmManagerG6.shouldSyncToRemoteService = val
+                }
+                if let cgmManagerG7 = self.cgmManager.glucoseSource.cgmManager as? G7CGMManager {
+                    cgmManagerG7.uploadReadings = val
+                }
+            })
         }
 
         func connect() {

+ 7 - 1
FreeAPS/Sources/Modules/NightscoutConfig/View/NightscoutConfigRootView.swift

@@ -44,7 +44,13 @@ extension NightscoutConfig {
                 }
 
                 Section {
-                    Toggle("Allow uploads", isOn: $state.isUploadEnabled)
+                    Toggle("Upload to Nightscout", isOn: $state.isUploadEnabled)
+                    if state.isUploadEnabled {
+                        Toggle("Statistics", isOn: $state.uploadStats)
+                        Toggle("Glucose", isOn: $state.uploadGlucose)
+                    }
+                } header: {
+                    Text("Upload to Nightscout")
                 }
 
                 Section(header: Text("Local glucose source")) {

+ 0 - 2
FreeAPS/Sources/Modules/StatConfig/StatConfigStateModel.swift

@@ -5,7 +5,6 @@ extension StatConfig {
         @Published var overrideHbA1cUnit = false
         @Published var low: Decimal = 4 / 0.0555
         @Published var high: Decimal = 10 / 0.0555
-        @Published var uploadStats = false
         @Published var hours: Decimal = 6
         @Published var xGridLines = false
         @Published var yGridLines: Bool = false
@@ -19,7 +18,6 @@ extension StatConfig {
             self.units = units
 
             subscribeSetting(\.overrideHbA1cUnit, on: $overrideHbA1cUnit) { overrideHbA1cUnit = $0 }
-            subscribeSetting(\.uploadStats, on: $uploadStats) { uploadStats = $0 }
             subscribeSetting(\.xGridLines, on: $xGridLines) { xGridLines = $0 }
             subscribeSetting(\.yGridLines, on: $yGridLines) { yGridLines = $0 }
             subscribeSetting(\.rulerMarks, on: $rulerMarks) { rulerMarks = $0 }

+ 0 - 1
FreeAPS/Sources/Modules/StatConfig/View/StatConfigRootView.swift

@@ -28,7 +28,6 @@ extension StatConfig {
             Form {
                 Section(header: Text("Settings")) {
                     Toggle("Change HbA1c Unit", isOn: $state.overrideHbA1cUnit)
-                    Toggle("Allow Upload of Statistics to NS", isOn: $state.uploadStats)
                     Toggle("Display Chart X - Grid lines", isOn: $state.xGridLines)
                     Toggle("Display Chart Y - Grid lines", isOn: $state.yGridLines)
                     Toggle("Display Chart Threshold lines for Low and High", isOn: $state.rulerMarks)