Просмотр исходного кода

Updates: SpeakBG Fix, Advanced Settings Cleanup, Loop/FreeAPS User toggle, Data settings cleanup,

Jon Fawcett 4 лет назад
Родитель
Сommit
b887441c21

+ 4 - 3
LoopFollow/Controllers/NightScout.swift

@@ -271,12 +271,13 @@ extension MainViewController {
             bgData.removeAll()
         } else if bgData[bgData.count - 1].date != pullDate {
             bgData.removeFirst()
-            if data.count > 0 && UserDefaultsRepository.speakBG.value {
-                speakBG(sgv: data[data.count - 1].sgv)
-            }
+            
         } else {
             if data.count > 0 {
                 self.updateBadge(val: data[data.count - 1].sgv)
+                if UserDefaultsRepository.speakBG.value {
+                    speakBG(sgv: data[data.count - 1].sgv)
+                }
             }
             return
         }

+ 4 - 4
LoopFollow/Controllers/Timers.swift

@@ -167,7 +167,7 @@ extension MainViewController {
     @objc func deviceStatusTimerDidEnd(_ timer:Timer) {
         
         // reset timer to 1 minute if settings aren't entered
-        if UserDefaultsRepository.url.value == "" || UserDefaultsRepository.onlyDownloadBG.value {
+        if UserDefaultsRepository.url.value == "" || !UserDefaultsRepository.loopUser.value {
             startDeviceStatusTimer(time: 60)
             return
         }
@@ -192,7 +192,7 @@ extension MainViewController {
         
         
         // reset timer to 1 minute if settings aren't entered
-        if UserDefaultsRepository.url.value == "" || UserDefaultsRepository.onlyDownloadBG.value {
+        if UserDefaultsRepository.url.value == "" || !UserDefaultsRepository.loopUser.value {
             startTreatmentsTimer(time: 60)
             return
         }
@@ -217,7 +217,7 @@ extension MainViewController {
     @objc func profileTimerDidEnd(_ timer:Timer) {
         
         // reset timer to 1 minute if settings aren't entered
-        if UserDefaultsRepository.url.value == "" || UserDefaultsRepository.onlyDownloadBG.value {
+        if UserDefaultsRepository.url.value == "" || !UserDefaultsRepository.loopUser.value {
             startProfileTimer(time: 60)
             return
         }
@@ -242,7 +242,7 @@ extension MainViewController {
     @objc func cageSageTimerDidEnd(_ timer:Timer) {
         
         // reset timer to 1 minute if settings aren't entered
-        if UserDefaultsRepository.url.value == "" || UserDefaultsRepository.onlyDownloadBG.value {
+        if UserDefaultsRepository.url.value == "" || !UserDefaultsRepository.loopUser.value {
             startCageSageTimer(time: 60)
             return
         }

+ 1 - 22
LoopFollow/ViewControllers/AdvancedSettingsViewController.swift

@@ -26,14 +26,6 @@ class AdvancedSettingsViewController: FormViewController {
         form
             +++ Section("Advanced Settings")
             
-            <<< SwitchRow("onlyDownloadBG"){ row in
-                row.title = "Only Download BG from NS"
-                row.value = UserDefaultsRepository.onlyDownloadBG.value
-            }.onChange { [weak self] row in
-                guard let value = row.value else { return }
-                UserDefaultsRepository.onlyDownloadBG.value = value
-            }
-            
             <<< SwitchRow("downloadTreatments"){ row in
                 row.title = "Download Treatments"
                 row.value = UserDefaultsRepository.downloadTreatments.value
@@ -90,20 +82,7 @@ class AdvancedSettingsViewController: FormViewController {
                     guard let value = row.value else { return }
                     UserDefaultsRepository.bgUpdateDelay.value = Int(value)
             }
-            <<< SwitchRow("alwaysDownloadAllBG"){ row in
-                row.title = "Allways Download All BG Values"
-                row.value = UserDefaultsRepository.alwaysDownloadAllBG.value
-            }.onChange { [weak self] row in
-                guard let value = row.value else { return }
-                UserDefaultsRepository.alwaysDownloadAllBG.value = value
-            }
-            <<< SwitchRow("debugLog"){ row in
-                row.title = "Show Debug Log"
-                row.value = UserDefaultsRepository.debugLog.value
-            }.onChange { [weak self] row in
-                guard let value = row.value else { return }
-                UserDefaultsRepository.debugLog.value = value
-            }
+
 
             
             

+ 13 - 13
LoopFollow/ViewControllers/AlarmViewController.swift

@@ -391,7 +391,6 @@ class AlarmViewController: FormViewController {
         buildCOB()
         
         buildSnoozeAll()
-        buildAppInactive()
         buildAlarmSettings()
         
     }
@@ -403,7 +402,7 @@ class AlarmViewController: FormViewController {
     func showHideNSDetails() {
         var isHidden = false
         var isEnabled = true
-        if UserDefaultsRepository.url.value == "" {
+        if UserDefaultsRepository.url.value == ""  || !UserDefaultsRepository.loopUser.value {
             isHidden = true
             isEnabled = false
         }
@@ -433,8 +432,19 @@ class AlarmViewController: FormViewController {
             row4.evaluateHidden()
             UserDefaultsRepository.alertUrgentLowPredictiveMinutes.value = 0
         }
+        if let row5 = form.rowBy(tag: "alertAutoSnoozeCGMStart") as? SwitchRow {
+            row5.hidden = .function(["hide"],  {form in
+                return isHidden
+            })
+            row5.evaluateHidden()
+        }
         
         
+        
+        if UserDefaultsRepository.url.value != "" {
+            isEnabled = true
+        }
+        
         guard let nightscoutTab = self.tabBarController?.tabBar.items![3] else { return }
         nightscoutTab.isEnabled = isEnabled
         
@@ -2127,17 +2137,7 @@ class AlarmViewController: FormViewController {
         }
     }
     
-    func buildAppInactive(){
-         form
-            +++ Section(header: "App Inactive", footer: "Attempt to alert if IOS kills the app in the background")
-        <<< SwitchRow("alertAppInactive"){ row in
-        row.title = "Active"
-        row.value = UserDefaultsRepository.alertAppInactive.value
-        }.onChange { [weak self] row in
-                guard let value = row.value else { return }
-                UserDefaultsRepository.alertAppInactive.value = value
-        }
-    }
+
     
     func buildSage(){
         form

+ 1 - 1
LoopFollow/ViewControllers/GraphSettingsViewController.swift

@@ -29,7 +29,7 @@ class GraphSettingsViewController: FormViewController {
     func showHideNSDetails() {
         var isHidden = false
         var isEnabled = true
-        if UserDefaultsRepository.url.value == "" {
+        if UserDefaultsRepository.url.value == "" || !UserDefaultsRepository.loopUser.value {
             isHidden = true
             isEnabled = false
         }

+ 11 - 2
LoopFollow/ViewControllers/MainViewController.swift

@@ -155,7 +155,11 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
         UserDefaultsRepository.infoNames.value.append("CAGE")
         UserDefaultsRepository.infoNames.value.append("Rec. Bolus")
         UserDefaultsRepository.infoNames.value.append("Pred.")
- 
+        
+        // Reset deprecated settings
+        UserDefaultsRepository.debugLog.value = false;
+        UserDefaultsRepository.alwaysDownloadAllBG.value = true;
+        
         // table view
         //infoTable.layer.borderColor = UIColor.darkGray.cgColor
         //infoTable.layer.borderWidth = 1.0
@@ -385,7 +389,7 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
     func showHideNSDetails() {
         var isHidden = false
         var isEnabled = true
-        if UserDefaultsRepository.url.value == "" {
+        if UserDefaultsRepository.url.value == "" || !UserDefaultsRepository.loopUser.value {
             isHidden = true
             isEnabled = false
         }
@@ -393,6 +397,11 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
         LoopStatusLabel.isHidden = isHidden
         PredictionLabel.isHidden = isHidden
         infoTable.isHidden = isHidden
+        
+        if UserDefaultsRepository.url.value != "" {
+            isEnabled = true
+        }
+        
         guard let nightscoutTab = self.tabBarController?.tabBar.items![3] else { return }
         nightscoutTab.isEnabled = isEnabled
         

+ 28 - 22
LoopFollow/ViewControllers/SettingsViewController.swift

@@ -18,7 +18,8 @@ class SettingsViewController: FormViewController {
     func showHideNSDetails() {
         var isHidden = false
         var isEnabled = true
-        if UserDefaultsRepository.url.value == "" {
+        var isLoopHidden = false;
+        if UserDefaultsRepository.url.value == "" || !UserDefaultsRepository.loopUser.value {
             isHidden = true
             isEnabled = false
         }
@@ -30,6 +31,10 @@ class SettingsViewController: FormViewController {
             row1.evaluateHidden()
         }
         
+        if UserDefaultsRepository.url.value != "" {
+            isEnabled = true
+        }
+        
         guard let nightscoutTab = self.tabBarController?.tabBar.items![3] else { return }
         nightscoutTab.isEnabled = isEnabled
         
@@ -49,7 +54,15 @@ class SettingsViewController: FormViewController {
         }
                         
         form
-        +++ Section(header: "Nightscout Settings", footer: "Changing Nightscout settings requires an app restart.")
+        +++ Section(header: "Data Settings", footer: "")
+       <<< SegmentedRow<String>("units") { row in
+           row.title = "Units"
+           row.options = ["mg/dL", "mmol/L"]
+           row.value = UserDefaultsRepository.units.value
+       }.onChange { row in
+           guard let value = row.value else { return }
+           UserDefaultsRepository.units.value = value
+       }
        <<< SwitchRow("showNS"){ row in
        row.title = "Show Nightscout Settings"
        row.value = UserDefaultsRepository.showNS.value
@@ -95,16 +108,17 @@ class SettingsViewController: FormViewController {
             UserDefaultsRepository.token.value = value
             globalVariables.nsVerifiedAlert = 0
         }
-        <<< SegmentedRow<String>("units") { row in
-            row.title = "Units"
-            row.options = ["mg/dL", "mmol/L"]
-            row.value = UserDefaultsRepository.units.value
-            row.hidden = "$showNS == false"
-        }.onChange { row in
-            guard let value = row.value else { return }
-            UserDefaultsRepository.units.value = value
-        }
-        +++ Section("Dexcom Settings")
+       
+       <<< SwitchRow("loopUser"){ row in
+           row.title = "Download Loop/FreeAPS Data"
+           row.tag = "loopUser"
+           row.value = UserDefaultsRepository.loopUser.value
+           row.hidden = "$showNS == false"
+       }.onChange { [weak self] row in
+                   guard let value = row.value else { return }
+                   UserDefaultsRepository.loopUser.value = value
+           }
+        
        <<< SwitchRow("showDex"){ row in
        row.title = "Show Dexcom Settings"
        row.value = UserDefaultsRepository.showDex.value
@@ -152,6 +166,7 @@ class SettingsViewController: FormViewController {
         }
         
         +++ Section("App Settings")
+       
         <<< ButtonRow() {
            $0.title = "General Settings"
            $0.presentationMode = .show(
@@ -219,16 +234,7 @@ class SettingsViewController: FormViewController {
            ), onDismiss: nil)
             
         }
-            <<< LabelRow("Refresh Graph"){ row in
-                row.title = "Refresh Graph"
-            }.onCellSelection{ cell,row  in
-                if UserDefaultsRepository.saveImage.value {
-                    guard let mainScreen = self.tabBarController!.viewControllers?[0] as? MainViewController else { return }
-                    
-                    mainScreen.updateBGGraphSettings()
-                    self.tabBarController?.selectedIndex = 0
-                }
-            }
+
   
     
             +++ Section(header: "App Expiration", footer: String(expiration.description))

+ 0 - 9
LoopFollow/ViewControllers/SnoozeViewController.swift

@@ -50,10 +50,6 @@ class SnoozeViewController: UIViewController, UNUserNotificationCenterDelegate {
         snoozeForMinuteStepper.isHidden = true
         snoozeForMinuteLabel.isHidden = true
         
-        if UserDefaultsRepository.debugLog.value {
-            debugTextView.isHidden = false
-        }
-        
     }
     
     @IBAction func snoozeForMinuteValChanged(_ sender: UIStepper) {
@@ -465,11 +461,6 @@ class SnoozeViewController: UIViewController, UNUserNotificationCenterDelegate {
         SnoozeButton.contentEdgeInsets = UIEdgeInsets(top: 10,left: 10,bottom: 10,right: 10)
         clockLabel.text = ""
         startClockTimer(time: 1)
-        
-        if UserDefaultsRepository.debugLog.value {
-            debugTextView.isHidden = false
-            clockLabel.isHidden = true
-        }
     }
 
 

+ 1 - 1
LoopFollow/ViewControllers/WatchSettingsViewController.swift

@@ -27,7 +27,7 @@ class WatchSettingsViewController: FormViewController {
     func showHideNSDetails() {
         var isHidden = false
         var isEnabled = true
-        if UserDefaultsRepository.url.value == "" {
+        if UserDefaultsRepository.url.value == "" || !UserDefaultsRepository.loopUser.value {
             isHidden = true
             isEnabled = false
         }

+ 2 - 1
LoopFollow/repository/UserDefaults.swift

@@ -38,6 +38,7 @@ class UserDefaultsRepository {
     static let url = UserDefaultsValue<String>(key: "url", default: "")
     static let token = UserDefaultsValue<String>(key: "token", default: "")
     static let units = UserDefaultsValue<String>(key: "units", default: "mg/dL")
+    static let loopUser = UserDefaultsValue<Bool>(key: "loopUser", default: false)
     
     // Dexcom Share Settings
     static let showDex = UserDefaultsValue<Bool>(key: "showDex", default: false)
@@ -84,7 +85,7 @@ class UserDefaultsRepository {
     })
     
     // Advanced Settings
-    static let onlyDownloadBG = UserDefaultsValue<Bool>(key: "onlyDownloadBG", default: false)
+    //static let onlyDownloadBG = UserDefaultsValue<Bool>(key: "onlyDownloadBG", default: false)
     static let downloadTreatments = UserDefaultsValue<Bool>(key: "downloadTreatments", default: true)
     static let downloadPrediction = UserDefaultsValue<Bool>(key: "downloadPrediction", default: true)
     static let graphOtherTreatments = UserDefaultsValue<Bool>(key: "graphOtherTreatments", default: true)