浏览代码

Add: Low Pump Reservoir Alert

Jon Fawcett 5 年之前
父节点
当前提交
669320fa09

+ 21 - 0
LoopFollow/Controllers/Alarms.swift

@@ -273,6 +273,17 @@ extension MainViewController {
                     return
                 }
             }
+            
+            // Check Pump
+            if UserDefaultsRepository.alertPump.value && !UserDefaultsRepository.alertPumpIsSnoozed.value {
+                let alertAt = Double(UserDefaultsRepository.alertPumpAt.value)
+                if latestPumpVolume <= alertAt {
+                    AlarmSound.whichAlarm = "Low Insulin Alert"
+                    if UserDefaultsRepository.alertPumpRepeat.value { numLoops = -1 }
+                    triggerAlarm(sound: UserDefaultsRepository.alertPumpSound.value, snooozedBGReadingTime: nil, overrideVolume: UserDefaultsRepository.overrideSystemOutputVolume.value, numLoops: numLoops)
+                    return
+                }
+            }
         }
         
         
@@ -469,6 +480,15 @@ extension MainViewController {
 
         }
         
+        if UserDefaultsRepository.alertPumpIsSnoozed.value {
+            UserDefaultsRepository.alertPumpSnoozedTime.setNil(key: "alertPumpSnoozedTime")
+            UserDefaultsRepository.alertPumpIsSnoozed.value = false
+            alarms.reloadSnoozeTime(key: "alertPumpSnoozedTime", setNil: true)
+            alarms.reloadIsSnoozed(key: "alertPumpIsSnoozed", value: false)
+
+        }
+        
+        
       }
     
     func checkQuietHours() {
@@ -513,6 +533,7 @@ extension MainViewController {
         
     }
     
+    
     func speakBG(sgv: Int) {
            var speechSynthesizer = AVSpeechSynthesizer()
            var speechUtterance: AVSpeechUtterance = AVSpeechUtterance(string: "Current BG is " + bgUnits.toDisplayUnits(String(sgv)))

+ 2 - 0
LoopFollow/Controllers/NightScout.swift

@@ -439,8 +439,10 @@ extension MainViewController {
         if let lastPumpRecord = lastDeviceStatus?["pump"] as! [String : AnyObject]? {
             if let lastPumpTime = formatter.date(from: (lastPumpRecord["clock"] as! String))?.timeIntervalSince1970  {
                 if let reservoirData = lastPumpRecord["reservoir"] as? Double {
+                    latestPumpVolume = reservoirData
                     tableData[5].value = String(format:"%.0f", reservoirData) + "U"
                 } else {
+                    latestPumpVolume = 50.0
                     tableData[5].value = "50+U"
                 }
                 

+ 122 - 7
LoopFollow/ViewControllers/AlarmViewController.swift

@@ -174,7 +174,7 @@ class AlarmViewController: FormViewController {
             let otherRow2 = self?.form.rowBy(tag: "otherAlerts") as! SegmentedRow<String>
             otherRow2.value = nil
             otherRow2.reload()
-            let otherRow3 = self?.form.rowBy(tag: "overrideAlerts") as! SegmentedRow<String>
+            let otherRow3 = self?.form.rowBy(tag: "otherAlerts2") as! SegmentedRow<String>
             otherRow3.value = nil
             otherRow3.reload()
             row.value = value
@@ -191,7 +191,7 @@ class AlarmViewController: FormViewController {
                let otherRow2 = self?.form.rowBy(tag: "otherAlerts") as! SegmentedRow<String>
                otherRow2.value = nil
                otherRow2.reload()
-            let otherRow3 = self?.form.rowBy(tag: "overrideAlerts") as! SegmentedRow<String>
+            let otherRow3 = self?.form.rowBy(tag: "otherAlerts2") as! SegmentedRow<String>
             otherRow3.value = nil
             otherRow3.reload()
             row.value = value
@@ -212,14 +212,14 @@ class AlarmViewController: FormViewController {
            let otherRow2 = self?.form.rowBy(tag: "bgAlerts") as! SegmentedRow<String>
            otherRow2.value = nil
            otherRow2.reload()
-            let otherRow3 = self?.form.rowBy(tag: "overrideAlerts") as! SegmentedRow<String>
+            let otherRow3 = self?.form.rowBy(tag: "otherAlerts2") as! SegmentedRow<String>
             otherRow3.value = nil
             otherRow3.reload()
             row.value = value
         }
-        <<< SegmentedRow<String>("overrideAlerts"){ row in
+        <<< SegmentedRow<String>("otherAlerts2"){ row in
                 row.title = ""
-                row.options = ["Override Start", "Override End"]
+                row.options = ["Override Start", "Override End", "Pump"]
                 if UserDefaultsRepository.url.value == "" {
                     row.hidden = true
                 }
@@ -262,6 +262,7 @@ class AlarmViewController: FormViewController {
         
         buildOverrideStart()
         buildOverrideEnd()
+        buildPump()
         
         buildSnoozeAll()
         buildAppInactive()
@@ -1784,7 +1785,7 @@ class AlarmViewController: FormViewController {
     func buildOverrideStart(){
         form
             +++ Section(header: "Override Started Alert", footer: "Alert will trigger without repeat once when override is activated. There is no need to snooze this alert") { row in
-                row.hidden = "$overrideAlerts != 'Override Start'"
+                row.hidden = "$otherAlerts2 != 'Override Start'"
             }
             <<< SwitchRow("alertOverrideStart"){ row in
                 row.title = "Active"
@@ -1869,7 +1870,7 @@ class AlarmViewController: FormViewController {
     func buildOverrideEnd(){
         form
             +++ Section(header: "Override Ended Alert", footer: "Alert will trigger without repeat once when an override is turned off. There is no need to snooze this alert") { row in
-                row.hidden = "$overrideAlerts != 'Override End'"
+                row.hidden = "$otherAlerts2 != 'Override End'"
             }
             <<< SwitchRow("alertOverrideEnd"){ row in
                 row.title = "Active"
@@ -1950,6 +1951,120 @@ class AlarmViewController: FormViewController {
         }
         
     }
+    
+    func buildPump() {
+        form
+            +++ Section(header: "Pump", footer: "Alert will trigger when pump reservoir is below value") { row in
+                row.hidden = "$otherAlerts2 != 'Pump'"
+            }
+            <<< SwitchRow("alertPump"){ row in
+                row.title = "Active"
+                row.value = UserDefaultsRepository.alertPump.value
+            }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.alertPump.value = value
+            }
+            
+            <<< StepperRow("alertPumpAt") { row in
+                row.title = "Units Remaining"
+                row.cell.stepper.stepValue = 1
+                row.cell.stepper.minimumValue = 1
+                row.cell.stepper.maximumValue = 49
+                row.value = Double(UserDefaultsRepository.alertPumpAt.value)
+                row.displayValueFor = { value in
+                    guard let value = value else { return nil }
+                    return "\(Int(value))"
+                }
+            }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.alertPumpAt.value = Int(value)
+            }
+            
+            <<< StepperRow("alertPumpSnoozeHours") { row in
+                row.title = "Snooze Hours"
+                row.cell.stepper.stepValue = 1
+                row.cell.stepper.minimumValue = 1
+                row.cell.stepper.maximumValue = 24
+                row.value = Double(UserDefaultsRepository.alertPumpSnoozeHours.value)
+                row.displayValueFor = { value in
+                    guard let value = value else { return nil }
+                    return "\(Int(value))"
+                }
+            }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.alertPumpSnoozeHours.value = Int(value)
+            }
+            <<< PickerInputRow<String>("alertPumpSound") { row in
+                row.title = "Sound"
+                row.options = soundFiles
+                row.value = UserDefaultsRepository.alertPumpSound.value
+                row.displayValueFor = { value in
+                    guard let value = value else { return nil }
+                    return "\(String(value.replacingOccurrences(of: "_", with: " ")))"
+                }
+            }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.alertPumpSound.value = value
+                AlarmSound.setSoundFile(str: value)
+                AlarmSound.stop()
+                AlarmSound.playTest()
+        }
+        <<< SwitchRow("alertPumpQuiet"){ row in
+        row.title = "Use Quiet Hours"
+        row.value = UserDefaultsRepository.alertPumpQuiet.value
+        }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.alertPumpQuiet.value = value
+        }
+        <<< SwitchRow("alertPumpRepeat"){ row in
+        row.title = "Repeat Sound"
+        row.value = UserDefaultsRepository.alertPumpRepeat.value
+        }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.alertPumpRepeat.value = value
+        }
+
+            <<< DateTimeInlineRow("alertPumpSnoozedTime") { row in
+                row.title = "Snoozed Until"
+                if (UserDefaultsRepository.alertPumpSnoozedTime.value != nil) {
+                    row.value = UserDefaultsRepository.alertPumpSnoozedTime.value
+                }
+                row.minuteInterval = 5
+                row.noValueDisplayText = "Not Snoozed"
+            }
+            .onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.alertPumpSnoozedTime.value = value
+                UserDefaultsRepository.alertPumpIsSnoozed.value = true
+                let otherRow = self?.form.rowBy(tag: "alertPumpIsSnoozed") as! SwitchRow
+                otherRow.value = true
+                otherRow.reload()
+            }
+            .onExpandInlineRow { [weak self] cell, row, inlineRow in
+                inlineRow.cellUpdate() { cell, row in
+                    cell.datePicker.datePickerMode = .dateAndTime
+                }
+                let color = cell.detailTextLabel?.textColor
+                row.onCollapseInlineRow { cell, _, _ in
+                    cell.detailTextLabel?.textColor = color
+                }
+                cell.detailTextLabel?.textColor = cell.tintColor
+            }
+            <<< SwitchRow("alertPumpIsSnoozed"){ row in
+                row.title = "Is Snoozed"
+                row.value = UserDefaultsRepository.alertPumpIsSnoozed.value
+                row.hidden = "$alertPumpSnoozedTime == nil"
+            }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.alertPumpIsSnoozed.value = value
+                if !value {
+                    UserDefaultsRepository.alertPumpSnoozedTime.setNil(key: "alertPumpSnoozedTime")
+                    let otherRow = self?.form.rowBy(tag: "alertPumpSnoozedTime") as! DateTimeInlineRow
+                    otherRow.value = nil
+                    otherRow.reload()
+                }
+        }
+    }
 
     func buildAlarmSettings() {
            form

+ 1 - 0
LoopFollow/ViewControllers/MainViewController.swift

@@ -124,6 +124,7 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
     var latestLoopTime: Double = 0
     var latestCOB = ""
     var latestBasal = ""
+    var latestPumpVolume: Double = 50.0
     var latestIOB = ""
     var lastOverrideStartTime: TimeInterval = 0
     var lastOverrideEndTime: TimeInterval = 0

+ 30 - 18
LoopFollow/ViewControllers/SnoozeViewController.swift

@@ -165,26 +165,31 @@ class SnoozeViewController: UIViewController, UNUserNotificationCenterDelegate {
                 guard let alarms = self.tabBarController!.viewControllers?[1] as? AlarmViewController else { return }
                 alarms.reloadIsSnoozed(key: "alertSAGEIsSnoozed", value: true)
                 alarms.reloadSnoozeTime(key: "alertSAGESnoozedTime", setNil: false, value: Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertSAGESnooze.value * 60 * 60)))
-        } else if AlarmSound.whichAlarm == "Pump Change Alert" {
-                       UserDefaultsRepository.alertCAGEIsSnoozed.value = true
-                       UserDefaultsRepository.alertCAGESnoozedTime.value = Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertCAGESnooze.value * 60 * 60))
-                       guard let alarms = self.tabBarController!.viewControllers?[1] as? AlarmViewController else { return }
-                       alarms.reloadIsSnoozed(key: "alertCAGEIsSnoozed", value: true)
-                       alarms.reloadSnoozeTime(key: "alertCAGESnoozedTime", setNil: false, value: Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertCAGESnooze.value * 60 * 60)))
+       } else if AlarmSound.whichAlarm == "Pump Change Alert" {
+        UserDefaultsRepository.alertCAGEIsSnoozed.value = true
+        UserDefaultsRepository.alertCAGESnoozedTime.value = Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertCAGESnooze.value * 60 * 60))
+        guard let alarms = self.tabBarController!.viewControllers?[1] as? AlarmViewController else { return }
+        alarms.reloadIsSnoozed(key: "alertCAGEIsSnoozed", value: true)
+        alarms.reloadSnoozeTime(key: "alertCAGESnoozedTime", setNil: false, value: Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertCAGESnooze.value * 60 * 60)))
        } else if AlarmSound.whichAlarm == "Not Looping Alert" {
-                       UserDefaultsRepository.alertNotLoopingIsSnoozed.value = true
-                       UserDefaultsRepository.alertNotLoopingSnoozedTime.value = Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertNotLoopingSnooze.value * 60))
-                       guard let alarms = self.tabBarController!.viewControllers?[1] as? AlarmViewController else { return }
-                       alarms.reloadIsSnoozed(key: "alertNotLoopingIsSnoozed", value: true)
-                       alarms.reloadSnoozeTime(key: "alertNotLoopingSnoozedTime", setNil: false, value: Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertNotLoopingSnooze.value * 60)))
+        UserDefaultsRepository.alertNotLoopingIsSnoozed.value = true
+        UserDefaultsRepository.alertNotLoopingSnoozedTime.value = Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertNotLoopingSnooze.value * 60))
+        guard let alarms = self.tabBarController!.viewControllers?[1] as? AlarmViewController else { return }
+        alarms.reloadIsSnoozed(key: "alertNotLoopingIsSnoozed", value: true)
+        alarms.reloadSnoozeTime(key: "alertNotLoopingSnoozedTime", setNil: false, value: Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertNotLoopingSnooze.value * 60)))
+       } else if AlarmSound.whichAlarm == "Missed Bolus Alert" {
+        UserDefaultsRepository.alertMissedBolusIsSnoozed.value = true
+        UserDefaultsRepository.alertMissedBolusSnoozedTime.value = Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertMissedBolusSnooze.value * 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)))
+       } else if AlarmSound.whichAlarm == "Low Insulin Alert" {
+        UserDefaultsRepository.alertPumpIsSnoozed.value = true
+        UserDefaultsRepository.alertPumpSnoozedTime.value = Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertPumpSnoozeHours.value * 60 * 60))
+        guard let alarms = self.tabBarController!.viewControllers?[1] as? AlarmViewController else { return }
+        alarms.reloadIsSnoozed(key: "alertPumpIsSnoozed", value: true)
+        alarms.reloadSnoozeTime(key: "alertPumpSnoozedTime", setNil: false, value: Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertPumpSnoozeHours.value * 60 * 60)))
        }
-        else if AlarmSound.whichAlarm == "Missed Bolus Alert" {
-                        UserDefaultsRepository.alertMissedBolusIsSnoozed.value = true
-                        UserDefaultsRepository.alertMissedBolusSnoozedTime.value = Date().addingTimeInterval(TimeInterval(UserDefaultsRepository.alertMissedBolusSnooze.value * 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)))
-        }
     }
     
     func setQuietHours(snoozeTime: Date)
@@ -225,6 +230,13 @@ class SnoozeViewController: UIViewController, UNUserNotificationCenterDelegate {
             alarms.reloadIsSnoozed(key: "alertSAGEIsSnoozed", value: true)
             alarms.reloadSnoozeTime(key: "alertSAGESnoozedTime", setNil: false, value: snoozeTime)
         }
+        if UserDefaultsRepository.alertPumpQuiet.value {
+            UserDefaultsRepository.alertPumpIsSnoozed.value = true
+            UserDefaultsRepository.alertPumpSnoozedTime.value = snoozeTime
+            guard let alarms = self.tabBarController!.viewControllers?[1] as? AlarmViewController else { return }
+            alarms.reloadIsSnoozed(key: "alertPumpIsSnoozed", value: true)
+            alarms.reloadSnoozeTime(key: "alertPumpSnoozedTime", setNil: false, value: snoozeTime)
+        }
         
     }
     

+ 21 - 12
LoopFollow/repository/UserDefaults.swift

@@ -121,7 +121,7 @@ class UserDefaultsRepository {
     static let alertUrgentLowSnoozedTime = UserDefaultsValue<Date?>(key: "alertUrgentLowSnoozedTime", default: nil)
     static let alertUrgentLowIsSnoozed = UserDefaultsValue<Bool>(key: "alertUrgentLowIsSnoozed", default: false)
     static let alertUrgentLowRepeat = UserDefaultsValue<Bool>(key: "alertUrgentLowRepeat", default: true)
-    static let alertUrgentLowSound = UserDefaultsValue<String>(key: "alertUrgentLowSound", default: "Indeed")
+    static let alertUrgentLowSound = UserDefaultsValue<String>(key: "alertUrgentLowSound", default: "Emergency_Alarm_Siren")
     
     static let alertLowActive = UserDefaultsValue<Bool>(key: "alertLowActive", default: false)
     static let alertLowBG = UserDefaultsValue<Float>(key: "alertLowBG", default: 70.0)
@@ -138,7 +138,7 @@ class UserDefaultsRepository {
     static let alertHighSnoozedTime = UserDefaultsValue<Date?>(key: "alertHighSnoozedTime", default: nil)
     static let alertHighIsSnoozed = UserDefaultsValue<Bool>(key: "alertHighIsSnoozed", default: false)
     static let alertHighRepeat = UserDefaultsValue<Bool>(key: "alertHighRepeat", default: true)
-    static let alertHighSound = UserDefaultsValue<String>(key: "alertHighSound", default: "Indeed")
+    static let alertHighSound = UserDefaultsValue<String>(key: "alertHighSound", default: "Time_Has_Come")
     
     static let alertUrgentHighActive = UserDefaultsValue<Bool>(key: "alertUrgentHighActive", default: false)
     static let alertUrgentHighBG = UserDefaultsValue<Float>(key: "alertUrgentHighBG", default: 250.0)
@@ -146,7 +146,7 @@ class UserDefaultsRepository {
     static let alertUrgentHighSnoozedTime = UserDefaultsValue<Date?>(key: "alertUrgentHighSnoozedTime", default: nil)
     static let alertUrgentHighIsSnoozed = UserDefaultsValue<Bool>(key: "alertUrgentHighIsSnoozed", default: false)
     static let alertUrgentHighRepeat = UserDefaultsValue<Bool>(key: "alertUrgentHighRepeat", default: true)
-    static let alertUrgentHighSound = UserDefaultsValue<String>(key: "alertUrgentHighSound", default: "Indeed")
+    static let alertUrgentHighSound = UserDefaultsValue<String>(key: "alertUrgentHighSound", default: "Pager_Beeps")
 
     
     static let alertFastDropActive = UserDefaultsValue<Bool>(key: "alertFastDropDeltaActive", default: false)
@@ -158,7 +158,7 @@ class UserDefaultsRepository {
     static let alertFastDropSnoozedTime = UserDefaultsValue<Date?>(key: "alertFastDropSnoozedTime", default: nil)
     static let alertFastDropIsSnoozed = UserDefaultsValue<Bool>(key: "alertFastDropIsSnoozed", default: false)
     static let alertFastDropRepeat = UserDefaultsValue<Bool>(key: "alertFastDropRepeat", default: true)
-    static let alertFastDropSound = UserDefaultsValue<String>(key: "alertFastDropSound", default: "Indeed")
+    static let alertFastDropSound = UserDefaultsValue<String>(key: "alertFastDropSound", default: "Big_Clock_Ticking")
     
     static let alertFastRiseActive = UserDefaultsValue<Bool>(key: "alertFastRiseDeltaActive", default: false)
     static let alertFastRiseSnooze = UserDefaultsValue<Int>(key: "alertFastRiseDeltaSnooze", default: 10)
@@ -169,7 +169,7 @@ class UserDefaultsRepository {
     static let alertFastRiseSnoozedTime = UserDefaultsValue<Date?>(key: "alertFastRiseSnoozedTime", default: nil)
     static let alertFastRiseIsSnoozed = UserDefaultsValue<Bool>(key: "alertFastRiseIsSnoozed", default: false)
     static let alertFastRiseRepeat = UserDefaultsValue<Bool>(key: "alertFastRiseRepeat", default: true)
-    static let alertFastRiseSound = UserDefaultsValue<String>(key: "alertFastRiseSound", default: "Indeed")
+    static let alertFastRiseSound = UserDefaultsValue<String>(key: "alertFastRiseSound", default: "Cartoon_Fail_Strings_Trumpet")
     
     
     static let alertMissedReadingActive = UserDefaultsValue<Bool>(key: "alertMissedReadingActive", default: false)
@@ -178,7 +178,7 @@ class UserDefaultsRepository {
     static let alertMissedReadingSnoozedTime = UserDefaultsValue<Date?>(key: "alertMissedReadingSnoozedTime", default: nil)
     static let alertMissedReadingIsSnoozed = UserDefaultsValue<Bool>(key: "alertMissedReadingIsSnoozed", default: false)
     static let alertMissedReadingRepeat = UserDefaultsValue<Bool>(key: "alertMissedReadingRepeat", default: true)
-    static let alertMissedReadingSound = UserDefaultsValue<String>(key: "alertMissedReadingSound", default: "Indeed")
+    static let alertMissedReadingSound = UserDefaultsValue<String>(key: "alertMissedReadingSound", default: "Cartoon_Tip_Toe_Sneaky_Walk")
     
     
     static let alertNotLoopingActive = UserDefaultsValue<Bool>(key: "alertNotLoopingActive", default: false)
@@ -190,7 +190,7 @@ class UserDefaultsRepository {
     static let alertNotLoopingSnoozedTime = UserDefaultsValue<Date?>(key: "alertNotLoopingSnoozedTime", default: nil)
     static let alertNotLoopingIsSnoozed = UserDefaultsValue<Bool>(key: "alertNotLoopingIsSnoozed", default: false)
     static let alertNotLoopingRepeat = UserDefaultsValue<Bool>(key: "alertNotLoopingRepeat", default: true)
-    static let alertNotLoopingSound = UserDefaultsValue<String>(key: "alertNotLoopingSound", default: "Indeed")
+    static let alertNotLoopingSound = UserDefaultsValue<String>(key: "alertNotLoopingSound", default: "Sci-Fi_Engine_Shut_Down")
     static let alertLastLoopTime = UserDefaultsValue<TimeInterval>(key: "alertLastLoopTime", default: 0)
     
     static let alertMissedBolusActive = UserDefaultsValue<Bool>(key: "alertMissedBolusActive", default: false)
@@ -204,7 +204,7 @@ class UserDefaultsRepository {
     static let alertMissedBolusIsSnoozed = UserDefaultsValue<Bool>(key: "alertMissedBolusIsSnoozed", default: false)
     static let alertMissedBolusQuiet = UserDefaultsValue<Bool>(key: "alertMissedBolusQuiet", default: false)
     static let alertMissedBolusRepeat = UserDefaultsValue<Bool>(key: "alertMissedBolusRepeat", default: false)
-    static let alertMissedBolusSound = UserDefaultsValue<String>(key: "alertMissedBolusSound", default: "Indeed")
+    static let alertMissedBolusSound = UserDefaultsValue<String>(key: "alertMissedBolusSound", default: "Dhol_Shuffleloop")
     
     static let alertSAGEActive = UserDefaultsValue<Bool>(key: "alertSAGEActive", default: false)
     static let alertSAGE = UserDefaultsValue<Int>(key: "alertSAGE", default: 8) //Hours
@@ -213,7 +213,7 @@ class UserDefaultsRepository {
     static let alertSAGESnooze = UserDefaultsValue<Int>(key: "alertSAGESnooze", default: 2) //Hours
     static let alertSAGESnoozedTime = UserDefaultsValue<Date?>(key: "alertSAGESnoozedTime", default: nil)
     static let alertSAGEIsSnoozed = UserDefaultsValue<Bool>(key: "alertSAGEIsSnoozed", default: false)
-    static let alertSAGESound = UserDefaultsValue<String>(key: "alertSAGESound", default: "Indeed")
+    static let alertSAGESound = UserDefaultsValue<String>(key: "alertSAGESound", default: "Wake_Up_Will_You")
     
     static let alertCAGEActive = UserDefaultsValue<Bool>(key: "alertCAGEActive", default: false)
     static let alertCAGE = UserDefaultsValue<Int>(key: "alertCAGE", default: 4) //Hours
@@ -222,7 +222,7 @@ class UserDefaultsRepository {
     static let alertCAGESnooze = UserDefaultsValue<Int>(key: "alertCAGESnooze", default: 2) //Hours
     static let alertCAGESnoozedTime = UserDefaultsValue<Date?>(key: "alertCAGESnoozedTime", default: nil)
     static let alertCAGEIsSnoozed = UserDefaultsValue<Bool>(key: "alertCAGEIsSnoozed", default: false)
-    static let alertCAGESound = UserDefaultsValue<String>(key: "alertCAGESound", default: "Indeed")
+    static let alertCAGESound = UserDefaultsValue<String>(key: "alertCAGESound", default: "Wake_Up_Will_You")
     
     static let alertAppInactive = UserDefaultsValue<Bool>(key: "alertAppInactive", default: false)
     
@@ -235,15 +235,24 @@ class UserDefaultsRepository {
     static let alertOverrideStart = UserDefaultsValue<Bool>(key: "alertOverrideStart", default: false)
     static let alertOverrideStartQuiet = UserDefaultsValue<Bool>(key: "alertOverrideStartQuiet", default: false)
     static let alertOverrideStartRepeat = UserDefaultsValue<Bool>(key: "alertOverrideStartRepeat", default: false)
-    static let alertOverrideStartSound = UserDefaultsValue<String>(key: "alertOverrideStartSound", default: "Alert_Tone_Busy")
+    static let alertOverrideStartSound = UserDefaultsValue<String>(key: "alertOverrideStartSound", default: "Ending_Reached")
     static let alertOverrideStartSnoozedTime = UserDefaultsValue<Date?>(key: "alertOverrideStartSnoozedTime", default: nil)
     static let alertOverrideStartIsSnoozed = UserDefaultsValue<Bool>(key: "alertOverrideStartIsSnoozed", default: false)
     
     static let alertOverrideEnd = UserDefaultsValue<Bool>(key: "alertOverrideEnd", default: false)
     static let alertOverrideEndQuiet = UserDefaultsValue<Bool>(key: "alertOverrideEndQuiet", default: false)
     static let alertOverrideEndRepeat = UserDefaultsValue<Bool>(key: "alertOverrideEndRepeat", default: false)
-    static let alertOverrideEndSound = UserDefaultsValue<String>(key: "alertOverrideEndSound", default: "Ending_Reached")
+    static let alertOverrideEndSound = UserDefaultsValue<String>(key: "alertOverrideEndSound", default: "Alert_Tone_Busy")
     static let alertOverrideEndSnoozedTime = UserDefaultsValue<Date?>(key: "alertOverrideEndSnoozedTime", default: nil)
     static let alertOverrideEndIsSnoozed = UserDefaultsValue<Bool>(key: "alertOverrideEndIsSnoozed", default: false)
     
+    static let alertPump = UserDefaultsValue<Bool>(key: "alertPump", default: false)
+    static let alertPumpAt = UserDefaultsValue<Int>(key: "alertPumpAt", default: 10) //Units
+    static let alertPumpQuiet = UserDefaultsValue<Bool>(key: "alertPumpQuiet", default: false)
+    static let alertPumpRepeat = UserDefaultsValue<Bool>(key: "alertPumpRepeat", default: false)
+    static let alertPumpSound = UserDefaultsValue<String>(key: "alertPumpSound", default: "Marimba_Descend")
+    static let alertPumpSnoozeHours = UserDefaultsValue<Int>(key: "alertPumpSnoozeHours", default: 5) //Hours
+    static let alertPumpIsSnoozed = UserDefaultsValue<Bool>(key: "alertPumpIsSnoozed", default: false)
+    static let alertPumpSnoozedTime = UserDefaultsValue<Date?>(key: "alertPumpSnoozedTime", default: nil)
+    
 }