瀏覽代碼

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 年之前
父節點
當前提交
380a1c933d

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

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

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

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

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

@@ -257,6 +257,12 @@ extension Home {
         }
 
         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 }
 
             switch url.absoluteString {

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

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

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

@@ -52,6 +52,10 @@ extension NightscoutConfig {
                         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)
         }

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

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