Sfoglia il codice sorgente

Added option to show xDrip4iOS instead of NS when tapping BG in header Home View. New toggle in "Nightscout" settings.

(cherry picked from commit e4643181bf9ba3507b960577d53e6194c64a17aa)

Fix mistake

(cherry picked from commit 9439178be5137a78317d0808561589aad6a3d08b)
Jon Mårtensson 5 anni fa
parent
commit
380a1c933d

+ 1 - 0
FreeAPS/Resources/json/defaults/freeaps/freeaps_settings.json

@@ -5,6 +5,7 @@
     "useAutotune": false
     "useAutotune": false
     "isUploadEnabled": false,
     "isUploadEnabled": false,
     "useLocalGlucoseSource": false,
     "useLocalGlucoseSource": false,
+    "dontShowNS": false,
     "localGlucosePort": 8080,
     "localGlucosePort": 8080,
     "debugOptions": false,
     "debugOptions": false,
     "insulinReqFraction": 0.7,
     "insulinReqFraction": 0.7,

+ 1 - 0
FreeAPS/Sources/Models/FreeAPSSettings.swift

@@ -7,6 +7,7 @@ struct FreeAPSSettings: JSON, Equatable {
     var useAutotune: Bool
     var useAutotune: Bool
     var isUploadEnabled: Bool?
     var isUploadEnabled: Bool?
     var useLocalGlucoseSource: Bool?
     var useLocalGlucoseSource: Bool?
+    var dontShowNS: Bool
     var localGlucosePort: Int?
     var localGlucosePort: Int?
     var debugOptions: Bool?
     var debugOptions: Bool?
     var insulinReqFraction: Decimal?
     var insulinReqFraction: Decimal?

+ 6 - 0
FreeAPS/Sources/Modules/Home/HomeViewModel.swift

@@ -257,6 +257,12 @@ extension Home {
         }
         }
 
 
         func openCGM() {
         func openCGM() {
+            guard !settingsManager.settings.dontShowNS else {
+                var url = URL(string: "xdripswift://")!
+                UIApplication.shared.open(url, options: [:], completionHandler: nil)
+                return
+            }
+
             guard var url = nightscoutManager.cgmURL else { return }
             guard var url = nightscoutManager.cgmURL else { return }
 
 
             switch url.absoluteString {
             switch url.absoluteString {

+ 8 - 0
FreeAPS/Sources/Modules/NightscoutConfig/NightscoutConfigViewModel.swift

@@ -14,6 +14,7 @@ extension NightscoutConfig {
 
 
         @Published var useLocalSource = false
         @Published var useLocalSource = false
         @Published var localPort: Decimal = 0
         @Published var localPort: Decimal = 0
+        @Published var dontShowNS = false
 
 
         override func subscribe() {
         override func subscribe() {
             url = keychain.getValue(String.self, forKey: Config.urlKey) ?? ""
             url = keychain.getValue(String.self, forKey: Config.urlKey) ?? ""
@@ -21,6 +22,7 @@ extension NightscoutConfig {
             isUploadEnabled = settingsManager.settings.isUploadEnabled ?? false
             isUploadEnabled = settingsManager.settings.isUploadEnabled ?? false
             useLocalSource = settingsManager.settings.useLocalGlucoseSource ?? false
             useLocalSource = settingsManager.settings.useLocalGlucoseSource ?? false
             localPort = Decimal(settingsManager.settings.localGlucosePort ?? 8080)
             localPort = Decimal(settingsManager.settings.localGlucosePort ?? 8080)
+            dontShowNS = settingsManager.settings.dontShowNS
 
 
             $isUploadEnabled
             $isUploadEnabled
                 .removeDuplicates()
                 .removeDuplicates()
@@ -39,6 +41,12 @@ extension NightscoutConfig {
                 .sink { [weak self] port in
                 .sink { [weak self] port in
                     self?.settingsManager.settings.localGlucosePort = Int(port)
                     self?.settingsManager.settings.localGlucosePort = Int(port)
                 }.store(in: &lifetime)
                 }.store(in: &lifetime)
+
+            $dontShowNS
+                .removeDuplicates()
+                .sink { [weak self] enabled in
+                    self?.settingsManager.settings.dontShowNS = enabled
+                }.store(in: &lifetime)
         }
         }
 
 
         func connect() {
         func connect() {

+ 4 - 0
FreeAPS/Sources/Modules/NightscoutConfig/View/NightscoutConfigRootView.swift

@@ -52,6 +52,10 @@ extension NightscoutConfig {
                         DecimalTextField("", value: $viewModel.localPort, formatter: portFormater)
                         DecimalTextField("", value: $viewModel.localPort, formatter: portFormater)
                     }
                     }
                 }
                 }
+
+                Section(header: Text("Show xDrip4iOS or other CGM instead of NS")) {
+                    Toggle("Don't show NS", isOn: $viewModel.dontShowNS)
+                }
             }
             }
             .navigationBarTitle("Nightscout Config", displayMode: .automatic)
             .navigationBarTitle("Nightscout Config", displayMode: .automatic)
         }
         }

+ 1 - 0
FreeAPS/Sources/Services/SettingsManager/SettingsManager.swift

@@ -38,6 +38,7 @@ final class BaseSettingsManager: SettingsManager, Injectable {
                 useAutotune: false,
                 useAutotune: false,
                 isUploadEnabled: false,
                 isUploadEnabled: false,
                 useLocalGlucoseSource: false,
                 useLocalGlucoseSource: false,
+                dontShowNS: false,
                 localGlucosePort: nil,
                 localGlucosePort: nil,
                 debugOptions: false
                 debugOptions: false
             )
             )