Kaynağa Gözat

Watch Override variable, speak BG

Jon Fawcett 6 yıl önce
ebeveyn
işleme
bd30e87a5c

+ 10 - 3
LoopFollow/Controllers/Alarms.swift

@@ -7,7 +7,7 @@
 //
 
 import Foundation
-
+import AVFoundation
 
 extension MainViewController {
     
@@ -315,8 +315,15 @@ extension MainViewController {
               alarms.reloadIsSnoozed(key: "alertCAGEIsSnoozed", value: false)
 
           }
-
-          
+        
       }
     
+    func speakBG(sgv: Int) {
+           var speechSynthesizer = AVSpeechSynthesizer()
+           var speechUtterance: AVSpeechUtterance = AVSpeechUtterance(string: "Current BG is " + String(sgv))
+           speechUtterance.rate = AVSpeechUtteranceMaximumSpeechRate / 2
+           speechUtterance.voice = AVSpeechSynthesisVoice(language: "en-US")
+           speechSynthesizer.speak(speechUtterance)
+       }
+    
 }

+ 2 - 2
LoopFollow/Controllers/Graphs.swift

@@ -210,8 +210,8 @@ extension MainViewController {
         
         BGChart.legend.enabled = false
         BGChart.scaleYEnabled = false
-        BGChart.drawGridBackgroundEnabled = true
-        BGChart.gridBackgroundColor = NSUIColor.secondarySystemBackground
+        BGChart.drawGridBackgroundEnabled = false
+        //BGChart.gridBackgroundColor = NSUIColor.secondarySystemBackground
         
         BGChart.data = data
         

+ 3 - 0
LoopFollow/Controllers/NightScout.swift

@@ -140,6 +140,9 @@ 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 {
             // Update the badge, bg, graph settings even if we don't have a new reading.
             self.updateBadge()

+ 9 - 21
LoopFollow/ViewControllers/MainViewController.swift

@@ -70,6 +70,7 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
     var firstGraphLoad: Bool = true
     var firstBasalGraphLoad: Bool = true
     var minAgoBG: Double = 0.0
+    var currentOverride = 0.0
     
     // Vars for NS Pull
     var graphHours:Int=24
@@ -323,6 +324,14 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
             eventTitle = eventTitle.replacingOccurrences(of: "%BG%", with: String(self.bgData[self.bgData.count - 1].sgv))
             eventTitle = eventTitle.replacingOccurrences(of: "%DIRECTION%", with: direction)
             eventTitle = eventTitle.replacingOccurrences(of: "%DELTA%", with: deltaString)
+            if self.currentOverride != 1.0 {
+                let val = Int( self.currentOverride*100)
+               // let overrideText = String(format:"%f1", self.currentOverride*100)
+                let text = String(val) + "%"
+                eventTitle = eventTitle.replacingOccurrences(of: "%OVERRIDE%", with: text)
+            } else {
+                eventTitle = eventTitle.replacingOccurrences(of: "%OVERRIDE%", with: "")
+            }
             var minAgo = ""
             if deltaTime > 5 {
                 // write old BG reading and continue pushing out end date to show last entry
@@ -346,27 +355,6 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
             eventTitle = eventTitle.replacingOccurrences(of: "%COB%", with: cob)
             eventTitle = eventTitle.replacingOccurrences(of: "%BASAL%", with: basal)
             
-            // old
-            /*
-            eventTitle += String(self.bgData[self.bgData.count - 1].sgv) + " "
-            eventTitle += direction + " "
-            eventTitle += deltaString + " "
-            if deltaTime > 5 {
-                // write old BG reading and continue pushing out end date to show last entry
-                eventTitle += ": " + String(Int(deltaTime)) + " min"
-                eventEndDate = eventStartDate.addingTimeInterval((60 * 10) + (deltaTime * 60))
-            }
-            
-            eventTitle += "\n"
-            if self.tableData[1].value != "" {
-               eventTitle += "C:" + self.tableData[1].value + "g "
-            }
-            if self.tableData[0].value != "" {
-                eventTitle += "I: " + self.tableData[0].value + "u"
-            }
-            */
-            
-            
             
             
         // Delete Last Event

Dosya farkı çok büyük olduğundan ihmal edildi
+ 8 - 1
LoopFollow/ViewControllers/SettingsViewController.swift


+ 7 - 0
LoopFollow/ViewControllers/SnoozeViewController.swift

@@ -140,6 +140,13 @@ class SnoozeViewController: UIViewController {
                        alarms.reloadIsSnoozed(key: "alertNotLoopingIsSnoozed", value: true)
                        alarms.reloadSnoozeTime(key: "alertNotLoopingSnoozedTime", setNil: false, value: Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertNotLoopingSnooze.value * 60 * 60)))
        }
+        else if AlarmSound.whichAlarm == "Missed Bolus Alert" {
+                        UserDefaultsRepository.alertMissedBolusIsSnoozed.value = true
+                        UserDefaultsRepository.alertMissedBolusSnoozedTime.value = Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertMissedBolusSnooze.value * 60 * 60))
+                        guard let alarms = self.tabBarController!.viewControllers?[1] as? AlarmViewController else { return }
+                        alarms.reloadIsSnoozed(key: "alertMissedBolusIsSnoozed", value: true)
+                        alarms.reloadSnoozeTime(key: "alertMissedBolusSnoozedTime", setNil: false, value: Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertMissedBolusSnooze.value * 60 * 60)))
+        }
     }
     
     override func viewDidLoad() {

+ 2 - 0
LoopFollow/repository/UserDefaults.swift

@@ -24,6 +24,7 @@ class UserDefaultsRepository {
     
     // General Settings
     static let colorBGText = UserDefaultsValue<Bool>(key: "colorBGText", default: true)
+    static let speakBG = UserDefaultsValue<Bool>(key: "speakBG", default: false)
     static let backgroundRefreshFrequency = UserDefaultsValue<Double>(key: "backgroundRefreshFrequency", default: 1)
     static let backgroundRefresh = UserDefaultsValue<Bool>(key: "backgroundRefresh", default: true)
     static let appBadge = UserDefaultsValue<Bool>(key: "appBadge", default: true)
@@ -139,6 +140,7 @@ class UserDefaultsRepository {
     static let alertMissedBolusActive = UserDefaultsValue<Bool>(key: "alertMissedBolusActive", default: false)
     static let alertMissedBolus = UserDefaultsValue<Int>(key: "alertMissedBolus", default: 10)
     static let alertMissedBolusSnooze = UserDefaultsValue<Int>(key: "alertMissedBolusSnooze", default: 10)
+    static let alertMissedBolusPrebolus = UserDefaultsValue<Int>(key: "alertMissedBolusPrebolus", default: 20)
     static let alertMissedBolusLowGramsActive = UserDefaultsValue<Bool>(key: "alertMissedBolusLowGramsActive", default: false)
     static let alertMissedBolusLowGrams = UserDefaultsValue<Int>(key: "alertMissedBolusLowGrams", default: 10)
     static let alertMissedBolusLowGramsBG = UserDefaultsValue<Int>(key: "alertMissedBolusLowGramsBG", default: 70)