// // UserDefaults.swift // LoopFollow // // Created by Jon Fawcett on 6/4/20. // Copyright © 2020 Jon Fawcett. All rights reserved. // // // // // import Foundation import UIKit class UserDefaultsRepository { // DisplayValues total static let infoDataTotal = UserDefaultsValue(key: "infoDataTotal", default: 0) static let infoNames = UserDefaultsValue<[String]>(key: "infoNames", default: [ "IOB", "COB", "Basal", "Override", "Battery", "Pump", "SAGE", "CAGE", "Rec. Bolus", "Pred.", "Carbs today", "Autosens", "Profile"]) static let infoSort = UserDefaultsValue<[Int]>(key: "infoSort", default: [0,1,2,3,4,5,6,7,8,9,10,11,12]) static let infoVisible = UserDefaultsValue<[Bool]>(key: "infoVisible", default: [true,true,true,true,true,true,true,true,true,true,true,false,false]) static let hideInfoTable = UserDefaultsValue(key: "hideInfoTable", default: false) // Nightscout Settings static let showNS = UserDefaultsValue(key: "showNS", default: false) static let url = UserDefaultsValue(key: "url", default: "") static let token = UserDefaultsValue(key: "token", default: "") static let units = UserDefaultsValue(key: "units", default: "mg/dL") static let loopUser = UserDefaultsValue(key: "loopUser", default: false) // Dexcom Share Settings static let showDex = UserDefaultsValue(key: "showDex", default: false) static let shareUserName = UserDefaultsValue(key: "shareUserName", default: "") static let sharePassword = UserDefaultsValue(key: "sharePassword", default: "") static let shareServer = UserDefaultsValue(key: "shareServer", default: "US") // Graph Settings static let chartScaleX = UserDefaultsValue(key: "chartScaleX", default: 18.0) static let showDots = UserDefaultsValue(key: "showDots", default: true) static let smallGraphTreatments = UserDefaultsValue(key: "smallGraphTreatments", default: true) static let showValues = UserDefaultsValue(key: "showValues", default: true) static let showAbsorption = UserDefaultsValue(key: "showAbsorption", default: true) static let showLines = UserDefaultsValue(key: "showLines", default: true) static let hoursToLoad = UserDefaultsValue(key: "hoursToLoad", default: 24) static let predictionToLoad = UserDefaultsValue(key: "predictionToLoad", default: 1) static let minBasalScale = UserDefaultsValue(key: "minBasalScale", default: 5.0) static let minBGScale = UserDefaultsValue(key: "minBGScale", default: 250.0) static let showDIALines = UserDefaultsValue(key: "showDIAMarkers", default: true) static let show30MinLine = UserDefaultsValue(key: "show30MinLine", default: false) static let show90MinLine = UserDefaultsValue(key: "show90MinLine", default: false) static let showMidnightLines = UserDefaultsValue(key: "showMidnightMarkers", default: false) static let lowLine = UserDefaultsValue(key: "lowLine", default: 70.0) static let highLine = UserDefaultsValue(key: "highLine", default: 180.0) static let smallGraphHeight = UserDefaultsValue(key: "smallGraphHeight", default: 40) // General Settings static let colorBGText = UserDefaultsValue(key: "colorBGText", default: true) static let showStats = UserDefaultsValue(key: "showStats", default: true) static let useIFCC = UserDefaultsValue(key: "useIFCC", default: false) static let showSmallGraph = UserDefaultsValue(key: "showSmallGraph", default: true) static let speakBG = UserDefaultsValue(key: "speakBG", default: false) static let speakBGAlways = UserDefaultsValue(key: "speakBGAlways", default: true) static let speakLowBG = UserDefaultsValue(key: "speakLowBG", default: false) static let speakProactiveLowBG = UserDefaultsValue(key: "speakProactiveLowBG", default: false) static let speakFastDropDelta = UserDefaultsValue(key: "speakFastDropDelta", default: 10.0) static let speakLowBGLimit = UserDefaultsValue(key: "speakLowBGLimit", default: 72.0) static let speakHighBGLimit = UserDefaultsValue(key: "speakHighBGLimit", default: 180.0) static let speakHighBG = UserDefaultsValue(key: "speakHighBG", default: false) static let speakLanguage = UserDefaultsValue(key: "speakLanguage", default: "en") static let showDisplayName = UserDefaultsValue(key: "showDisplayName", default: false) static let backgroundRefreshFrequency = UserDefaultsValue(key: "backgroundRefreshFrequency", default: 1) static let backgroundRefresh = UserDefaultsValue(key: "backgroundRefresh", default: true) static let appBadge = UserDefaultsValue(key: "appBadge", default: true) static let dimScreenWhenIdle = UserDefaultsValue(key: "dimScreenWhenIdle", default: 0) static let forceDarkMode = UserDefaultsValue(key: "forceDarkMode", default: true) static let persistentNotification = UserDefaultsValue(key: "persistentNotification", default: false) static let persistentNotificationLastBGTime = UserDefaultsValue(key: "persistentNotificationLastBGTime", default: 0) static let screenlockSwitchState = UserDefaultsValue( key: "screenlockSwitchState", default: UIApplication.shared.isIdleTimerDisabled, onChange: { screenlock in UIApplication.shared.isIdleTimerDisabled = screenlock }) // Advanced Settings //static let onlyDownloadBG = UserDefaultsValue(key: "onlyDownloadBG", default: false) static let downloadTreatments = UserDefaultsValue(key: "downloadTreatments", default: true) static let downloadPrediction = UserDefaultsValue(key: "downloadPrediction", default: true) static let graphOtherTreatments = UserDefaultsValue(key: "graphOtherTreatments", default: true) static let graphBasal = UserDefaultsValue(key: "graphBasal", default: true) static let graphBolus = UserDefaultsValue(key: "graphBolus", default: true) static let graphCarbs = UserDefaultsValue(key: "graphCarbs", default: true) static let debugLog = UserDefaultsValue(key: "debugLog", default: false) static let alwaysDownloadAllBG = UserDefaultsValue(key: "alwaysDownloadAllBG", default: true) static let bgUpdateDelay = UserDefaultsValue(key: "bgUpdateDelay", default: 10) static let downloadDays = UserDefaultsValue(key: "downloadDays", default: 1) // Watch Calendar Settings static let calendarIdentifier = UserDefaultsValue(key: "calendarIdentifier", default: "") static let savedEventID = UserDefaultsValue(key: "savedEventID", default: "") static let lastCalendarStartDate = UserDefaultsValue(key: "lastCalendarStartDate", default: nil) static let writeCalendarEvent = UserDefaultsValue(key: "writeCalendarEvent", default: false) static let watchLine1 = UserDefaultsValue(key: "watchLine1", default: "%BG% %DIRECTION% %DELTA% %MINAGO%") static let watchLine2 = UserDefaultsValue(key: "watchLine2", default: "C:%COB% I:%IOB% B:%BASAL%") // Alarm Settings static let systemOutputVolume = UserDefaultsValue(key: "systemOutputVolume", default: 0.5) static let fadeInTimeInterval = UserDefaultsValue(key: "fadeInTimeInterval", default: 0) static let vibrate = UserDefaultsValue(key: "vibrate", default: true) static let overrideSystemOutputVolume = UserDefaultsValue(key: "overrideSystemOutputVolume", default: true) static let forcedOutputVolume = UserDefaultsValue(key: "forcedOutputVolume", default: 0.5) // Alerts let components = DateComponents(hour: 20, minute: 0) static let quietHourStart = UserDefaultsValue(key: "quietHourStart", default: nil) //eventually need to adjust this to night time instead of quiet hour to clean up static let quietHourEnd = UserDefaultsValue(key: "quietHourEnd", default: nil) //eventually need to adjust this to night time instead of quiet hour to clean up static let nightTime = UserDefaultsValue(key: "nightTime", default: false) static let snoozedBGReadingTime = UserDefaultsValue(key: "snoozedBGReadingTime", default: 0) static let alertIgnoreZero = UserDefaultsValue(key: "alertIgnoreZero", default: true) static let alertAudioDuringPhone = UserDefaultsValue(key: "alertAudioDuringPhone", default: true) static let alertAutoSnoozeCGMStart = UserDefaultsValue(key: "alertAutoSnoozeCGMStart", default: false) static let alertCageInsertTime = UserDefaultsValue(key: "alertCageInsertTime", default: 0) static let alertSageInsertTime = UserDefaultsValue(key: "alertSageInsertTime", default: 0) static let alertSnoozeAllTime = UserDefaultsValue(key: "alertSnoozeAllTime", default: nil) static let alertSnoozeAllIsSnoozed = UserDefaultsValue(key: "alertSnoozeAllIsSnoozed", default: false) static let alertMuteAllTime = UserDefaultsValue(key: "alertMuteAllTime", default: nil) static let alertMuteAllIsMuted = UserDefaultsValue(key: "alertMuteAllIsMuted", default: false) static let alertUrgentLowActive = UserDefaultsValue(key: "alertUrgentLowActive", default: false) static let alertUrgentLowBG = UserDefaultsValue(key: "alertUrgentLowBG", default: 55.0) static let alertUrgentLowPredictiveMinutes = UserDefaultsValue(key: "alertUrgentLowPredictiveMinutes", default: 0) static let alertUrgentLowSnooze = UserDefaultsValue(key: "alertUrgentLowSnooze", default: 5) static let alertUrgentLowSnoozedTime = UserDefaultsValue(key: "alertUrgentLowSnoozedTime", default: nil) static let alertUrgentLowIsSnoozed = UserDefaultsValue(key: "alertUrgentLowIsSnoozed", default: false) static let alertUrgentLowRepeat = UserDefaultsValue(key: "alertUrgentLowRepeat", default: "Always") static let alertUrgentLowDayTime = UserDefaultsValue(key: "alertUrgentLowDayTime", default: true) // need to change all DayTime to DayTimeRepeat static let alertUrgentLowNightTime = UserDefaultsValue(key: "alertUrgentLowNightTime", default: true) // need to change all NightTime to NightTimeRepeat static let alertUrgentLowSound = UserDefaultsValue(key: "alertUrgentLowSound", default: "Emergency_Alarm_Siren") static let alertUrgentLowAudible = UserDefaultsValue(key: "alertUrgentLowAudible", default: "Always") static let alertUrgentLowDayTimeAudible = UserDefaultsValue(key: "alertUrgentLowDayTimeAudible", default: true) static let alertUrgentLowNightTimeAudible = UserDefaultsValue(key: "alertUrgentLowNightTimeAudible", default: true) static let alertUrgentLowAutosnooze = UserDefaultsValue(key: "alertUrgentLowAutosnooze", default: "Never") static let alertUrgentLowAutosnoozeDay = UserDefaultsValue(key: "alertUrgentLowAutosnoozeDay", default: false) static let alertUrgentLowAutosnoozeNight = UserDefaultsValue(key: "alertUrgentLowAutosnoozeNight", default: false) static let alertLowActive = UserDefaultsValue(key: "alertLowActive", default: false) static let alertLowBG = UserDefaultsValue(key: "alertLowBG", default: 70.0) static let alertLowPersistent = UserDefaultsValue(key: "alertLowPersistent", default: 0) static let alertLowPersistenceMax = UserDefaultsValue(key: "alertLowPersistenceMax", default: 5.0) static let alertLowSnooze = UserDefaultsValue(key: "alertLowSnooze", default: 5) static let alertLowSnoozedTime = UserDefaultsValue(key: "alertLowSnoozedTime", default: nil) static let alertLowIsSnoozed = UserDefaultsValue(key: "alertLowIsSnoozed", default: false) static let alertLowRepeat = UserDefaultsValue(key: "alertLowRepeat", default: "Always") static let alertLowDayTime = UserDefaultsValue(key: "alertLowDayTime", default: true) static let alertLowNightTime = UserDefaultsValue(key: "alertLowNightTime", default: true) static let alertLowSound = UserDefaultsValue(key: "alertLowSound", default: "Indeed") static let alertLowAudible = UserDefaultsValue(key: "alertLowAudible", default: "Always") static let alertLowDayTimeAudible = UserDefaultsValue(key: "alertLowDayTimeAudible", default: true) static let alertLowNightTimeAudible = UserDefaultsValue(key: "alertLowNightTimeAudible", default: true) static let alertLowAutosnooze = UserDefaultsValue(key: "alertLowAutosnooze", default: "Never") static let alertLowAutosnoozeDay = UserDefaultsValue(key: "alertLowAutosnoozeDay", default: false) static let alertLowAutosnoozeNight = UserDefaultsValue(key: "alertLowAutosnoozeNight", default: false) static let alertHighActive = UserDefaultsValue(key: "alertHighActive", default: false) static let alertHighBG = UserDefaultsValue(key: "alertHighBG", default: 180.0) static let alertHighPersistent = UserDefaultsValue(key: "alertHighPersistent", default: 60) static let alertHighSnooze = UserDefaultsValue(key: "alertHighSnooze", default: 60) static let alertHighSnoozedTime = UserDefaultsValue(key: "alertHighSnoozedTime", default: nil) static let alertHighIsSnoozed = UserDefaultsValue(key: "alertHighIsSnoozed", default: false) static let alertHighRepeat = UserDefaultsValue(key: "alertHighRepeat", default: "Always") static let alertHighDayTime = UserDefaultsValue(key: "alertHighDayTime", default: true) static let alertHighNightTime = UserDefaultsValue(key: "alertHighNightTime", default: true) static let alertHighSound = UserDefaultsValue(key: "alertHighSound", default: "Time_Has_Come") static let alertHighAudible = UserDefaultsValue(key: "alertHighAudible", default: "Always") static let alertHighDayTimeAudible = UserDefaultsValue(key: "alertHighDayTimeAudible", default: true) static let alertHighNightTimeAudible = UserDefaultsValue(key: "alertHighNightTimeAudible", default: true) static let alertHighAutosnooze = UserDefaultsValue(key: "alertHighAutosnooze", default: "Never") static let alertHighAutosnoozeDay = UserDefaultsValue(key: "alertHighAutosnoozeDay", default: false) static let alertHighAutosnoozeNight = UserDefaultsValue(key: "alertHighAutosnoozeNight", default: false) static let alertUrgentHighActive = UserDefaultsValue(key: "alertUrgentHighActive", default: false) static let alertUrgentHighBG = UserDefaultsValue(key: "alertUrgentHighBG", default: 250.0) static let alertUrgentHighSnooze = UserDefaultsValue(key: "alertUrgentHighSnooze", default: 30) static let alertUrgentHighSnoozedTime = UserDefaultsValue(key: "alertUrgentHighSnoozedTime", default: nil) static let alertUrgentHighIsSnoozed = UserDefaultsValue(key: "alertUrgentHighIsSnoozed", default: false) static let alertUrgentHighRepeat = UserDefaultsValue(key: "alertUrgentHighRepeat", default: "Always") static let alertUrgentHighDayTime = UserDefaultsValue(key: "alertUrgentHighDayTime", default: true) static let alertUrgentHighNightTime = UserDefaultsValue(key: "alertUrgentHighNightTime", default: true) static let alertUrgentHighSound = UserDefaultsValue(key: "alertUrgentHighSound", default: "Pager_Beeps") static let alertUrgentHighAudible = UserDefaultsValue(key: "alertUrgentHighAudible", default: "Always") static let alertUrgentHighDayTimeAudible = UserDefaultsValue(key: "alertUrgentHighDayTimeAudible", default: true) static let alertUrgentHighNightTimeAudible = UserDefaultsValue(key: "alertUrgentHighNightTimeAudible", default: true) static let alertUrgentHighAutosnooze = UserDefaultsValue(key: "alertUrgentHighAutosnooze", default: "Never") static let alertUrgentHighAutosnoozeDay = UserDefaultsValue(key: "alertUrgentHighAutosnoozeDay", default: false) static let alertUrgentHighAutosnoozeNight = UserDefaultsValue(key: "alertUrgentHighAutosnoozeNight", default: false) static let alertFastDropActive = UserDefaultsValue(key: "alertFastDropDeltaActive", default: false) static let alertFastDropSnooze = UserDefaultsValue(key: "alertFastDropDeltaSnooze", default: 10) static let alertFastDropDelta = UserDefaultsValue(key: "alertFastDropDelta", default: 10.0) static let alertFastDropReadings = UserDefaultsValue(key: "alertFastDropReadings", default: 3) static let alertFastDropUseLimit = UserDefaultsValue(key: "alertFastDropUseLimit", default: false) static let alertFastDropBelowBG = UserDefaultsValue(key: "alertFastDropBelowBG", default: 120.0) static let alertFastDropSnoozedTime = UserDefaultsValue(key: "alertFastDropSnoozedTime", default: nil) static let alertFastDropIsSnoozed = UserDefaultsValue(key: "alertFastDropIsSnoozed", default: false) static let alertFastDropRepeat = UserDefaultsValue(key: "alertFastDropRepeat", default: "Never") static let alertFastDropDayTime = UserDefaultsValue(key: "alertFastDropDayTime", default: false) static let alertFastDropNightTime = UserDefaultsValue(key: "alertFastDropNightTime", default: false) static let alertFastDropSound = UserDefaultsValue(key: "alertFastDropSound", default: "Big_Clock_Ticking") static let alertFastDropAudible = UserDefaultsValue(key: "alertFastDropAudible", default: "Always") static let alertFastDropDayTimeAudible = UserDefaultsValue(key: "alertFastDropDayTimeAudible", default: true) static let alertFastDropNightTimeAudible = UserDefaultsValue(key: "alertFastDropNightTimeAudible", default: true) static let alertFastDropAutosnooze = UserDefaultsValue(key: "alertFastDropAutosnooze", default: "Never") static let alertFastDropAutosnoozeDay = UserDefaultsValue(key: "alertFastDropAutosnoozeDay", default: false) static let alertFastDropAutosnoozeNight = UserDefaultsValue(key: "alertFastDropAutosnoozeNight", default: false) static let alertFastRiseActive = UserDefaultsValue(key: "alertFastRiseDeltaActive", default: false) static let alertFastRiseSnooze = UserDefaultsValue(key: "alertFastRiseDeltaSnooze", default: 10) static let alertFastRiseDelta = UserDefaultsValue(key: "alertFastRiseDelta", default: 10.0) static let alertFastRiseReadings = UserDefaultsValue(key: "alertFastRiseReadings", default: 3) static let alertFastRiseUseLimit = UserDefaultsValue(key: "alertFastRiseUseLimit", default: false) static let alertFastRiseAboveBG = UserDefaultsValue(key: "alertFastRiseAboveBG", default: 200.0) static let alertFastRiseSnoozedTime = UserDefaultsValue(key: "alertFastRiseSnoozedTime", default: nil) static let alertFastRiseIsSnoozed = UserDefaultsValue(key: "alertFastRiseIsSnoozed", default: false) static let alertFastRiseRepeat = UserDefaultsValue(key: "alertFastRiseRepeat", default: "Never") static let alertFastRiseDayTime = UserDefaultsValue(key: "alertFastRiseDayTime", default: false) static let alertFastRiseNightTime = UserDefaultsValue(key: "alertFastRiseNightTime", default: false) static let alertFastRiseSound = UserDefaultsValue(key: "alertFastRiseSound", default: "Cartoon_Fail_Strings_Trumpet") static let alertFastRiseAudible = UserDefaultsValue(key: "alertFastRiseAudible", default: "Always") static let alertFastRiseDayTimeAudible = UserDefaultsValue(key: "alertFastRiseDayTimeAudible", default: true) static let alertFastRiseNightTimeAudible = UserDefaultsValue(key: "alertFastRiseNightTimeAudible", default: true) static let alertFastRiseAutosnooze = UserDefaultsValue(key: "alertFastRiseAutosnooze", default: "Never") static let alertFastRiseAutosnoozeDay = UserDefaultsValue(key: "alertFastRiseAutosnoozeDay", default: false) static let alertFastRiseAutosnoozeNight = UserDefaultsValue(key: "alertFastRiseAutosnoozeNight", default: false) static let alertMissedReadingActive = UserDefaultsValue(key: "alertMissedReadingActive", default: false) static let alertMissedReading = UserDefaultsValue(key: "alertMissedReading", default: 30) static let alertMissedReadingSnooze = UserDefaultsValue(key: "alertMissedReadingSnooze", default: 30) static let alertMissedReadingSnoozedTime = UserDefaultsValue(key: "alertMissedReadingSnoozedTime", default: nil) static let alertMissedReadingIsSnoozed = UserDefaultsValue(key: "alertMissedReadingIsSnoozed", default: false) static let alertMissedReadingRepeat = UserDefaultsValue(key: "alertMissedReadingRepeat", default: "Never") static let alertMissedReadingDayTime = UserDefaultsValue(key: "alertMissedReadingDayTime", default: false) static let alertMissedReadingNightTime = UserDefaultsValue(key: "alertMissedReadingNightTime", default: false) static let alertMissedReadingSound = UserDefaultsValue(key: "alertMissedReadingSound", default: "Cartoon_Tip_Toe_Sneaky_Walk") static let alertMissedReadingAudible = UserDefaultsValue(key: "alertMissedReadingAudible", default: "Always") static let alertMissedReadingDayTimeAudible = UserDefaultsValue(key: "alertMissedReadingDayTimeAudible", default: true) static let alertMissedReadingNightTimeAudible = UserDefaultsValue(key: "alertMissedReadingNightTimeAudible", default: true) static let alertMissedReadingAutosnooze = UserDefaultsValue(key: "alertMissedReadingAutosnooze", default: "Never") static let alertMissedReadingAutosnoozeDay = UserDefaultsValue(key: "alertMissedReadingAutosnoozeDay", default: false) static let alertMissedReadingAutosnoozeNight = UserDefaultsValue(key: "alertMissedReadingAutosnoozeNight", default: false) static let alertNotLoopingActive = UserDefaultsValue(key: "alertNotLoopingActive", default: false) static let alertNotLooping = UserDefaultsValue(key: "alertNotLooping", default: 30) static let alertNotLoopingSnooze = UserDefaultsValue(key: "alertNotLoopingSnooze", default: 30) static let alertNotLoopingUseLimits = UserDefaultsValue(key: "alertNotLoopingUseLimits", default: false) static let alertNotLoopingLowerLimit = UserDefaultsValue(key: "alertNotLoopingBelowBG", default: 100.0) static let alertNotLoopingUpperLimit = UserDefaultsValue(key: "alertNotLoopingAboveBG", default: 160.0) static let alertNotLoopingSnoozedTime = UserDefaultsValue(key: "alertNotLoopingSnoozedTime", default: nil) static let alertNotLoopingIsSnoozed = UserDefaultsValue(key: "alertNotLoopingIsSnoozed", default: false) static let alertNotLoopingRepeat = UserDefaultsValue(key: "alertNotLoopingRepeat", default: "Never") static let alertNotLoopingDayTime = UserDefaultsValue(key: "alertNotLoopingDayTime", default: false) static let alertNotLoopingNightTime = UserDefaultsValue(key: "alertNotLoopingNightTime", default: false) static let alertNotLoopingSound = UserDefaultsValue(key: "alertNotLoopingSound", default: "Sci-Fi_Engine_Shut_Down") static let alertLastLoopTime = UserDefaultsValue(key: "alertLastLoopTime", default: 0) static let alertNotLoopingAudible = UserDefaultsValue(key: "alertNotLoopingAudible", default: "Always") static let alertNotLoopingDayTimeAudible = UserDefaultsValue(key: "alertNotLoopingDayTimeAudible", default: true) static let alertNotLoopingNightTimeAudible = UserDefaultsValue(key: "alertNotLoopingNightTimeAudible", default: true) static let alertNotLoopingAutosnooze = UserDefaultsValue(key: "alertNotLoopingAutosnooze", default: "Never") static let alertNotLoopingAutosnoozeDay = UserDefaultsValue(key: "alertNotLoopingAutosnoozeDay", default: false) static let alertNotLoopingAutosnoozeNight = UserDefaultsValue(key: "alertNotLoopingAutosnoozeNight", default: false) static let alertMissedBolusActive = UserDefaultsValue(key: "alertMissedBolusActive", default: false) static let alertMissedBolus = UserDefaultsValue(key: "alertMissedBolus", default: 10) static let alertMissedBolusSnooze = UserDefaultsValue(key: "alertMissedBolusSnooze", default: 10) static let alertMissedBolusPrebolus = UserDefaultsValue(key: "alertMissedBolusPrebolus", default: 20) static let alertMissedBolusIgnoreBolus = UserDefaultsValue(key: "alertMissedBolusIgnoreBolus", default: 0.5) static let alertMissedBolusLowGrams = UserDefaultsValue(key: "alertMissedBolusLowGrams", default: 10) static let alertMissedBolusLowGramsBG = UserDefaultsValue(key: "alertMissedBolusLowGramsBG", default: 70.0) static let alertMissedBolusSnoozedTime = UserDefaultsValue(key: "alertMissedBolusSnoozedTime", default: nil) static let alertMissedBolusIsSnoozed = UserDefaultsValue(key: "alertMissedBolusIsSnoozed", default: false) static let alertMissedBolusQuiet = UserDefaultsValue(key: "alertMissedBolusQuiet", default: false) static let alertMissedBolusRepeat = UserDefaultsValue(key: "alertMissedBolusRepeat", default: "Never") static let alertMissedBolusDayTime = UserDefaultsValue(key: "alertMissedBolusDayTime", default: false) static let alertMissedBolusNightTime = UserDefaultsValue(key: "alertMissedBolusNightTime", default: false) static let alertMissedBolusSound = UserDefaultsValue(key: "alertMissedBolusSound", default: "Dhol_Shuffleloop") static let alertMissedBolusAudible = UserDefaultsValue(key: "alertMissedBolusAudible", default: "Always") static let alertMissedBolusDayTimeAudible = UserDefaultsValue(key: "alertMissedBolusDayTimeAudible", default: true) static let alertMissedBolusNightTimeAudible = UserDefaultsValue(key: "alertMissedBolusNightTimeAudible", default: true) static let alertMissedBolusAutosnooze = UserDefaultsValue(key: "alertMissedBolusAutosnooze", default: "Never") static let alertMissedBolusAutosnoozeDay = UserDefaultsValue(key: "alertMissedBolusAutosnoozeDay", default: false) static let alertMissedBolusAutosnoozeNight = UserDefaultsValue(key: "alertMissedBolusAutosnoozeNight", default: false) static let alertSAGEActive = UserDefaultsValue(key: "alertSAGEActive", default: false) static let alertSAGE = UserDefaultsValue(key: "alertSAGE", default: 8) //Hours static let alertSAGEQuiet = UserDefaultsValue(key: "alertSAGEQuiet", default: false) static let alertSAGERepeat = UserDefaultsValue(key: "alertSAGERepeat", default: "Never") static let alertSAGEDayTime = UserDefaultsValue(key: "alertSAGEDayTime", default: false) static let alertSAGENightTime = UserDefaultsValue(key: "alertSAGENightTime", default: false) static let alertSAGEAudible = UserDefaultsValue(key: "alertSAGEAudible", default: "Always") static let alertSAGEDayTimeAudible = UserDefaultsValue(key: "alertSAGEDayTimeAudible", default: true) static let alertSAGENightTimeAudible = UserDefaultsValue(key: "alertSAGENightTimeAudible", default: true) static let alertSAGESnooze = UserDefaultsValue(key: "alertSAGESnooze", default: 2) //Hours static let alertSAGESnoozedTime = UserDefaultsValue(key: "alertSAGESnoozedTime", default: nil) static let alertSAGEIsSnoozed = UserDefaultsValue(key: "alertSAGEIsSnoozed", default: false) static let alertSAGESound = UserDefaultsValue(key: "alertSAGESound", default: "Wake_Up_Will_You") static let alertSAGEAutosnooze = UserDefaultsValue(key: "alertSAGEAutosnooze", default: "At night") static let alertSAGEAutosnoozeDay = UserDefaultsValue(key: "alertSAGEAutosnoozeDay", default: false) static let alertSAGEAutosnoozeNight = UserDefaultsValue(key: "alertSAGEAutosnoozeNight", default: true) static let alertCAGEActive = UserDefaultsValue(key: "alertCAGEActive", default: false) static let alertCAGE = UserDefaultsValue(key: "alertCAGE", default: 4) //Hours static let alertCAGEQuiet = UserDefaultsValue(key: "alertCAGEQuiet", default: false) static let alertCAGERepeat = UserDefaultsValue(key: "alertCAGERepeat", default: "Never") static let alertCAGEDayTime = UserDefaultsValue(key: "alertCAGEDayTime", default: false) static let alertCAGENightTime = UserDefaultsValue(key: "alertCAGENightTime", default: false) static let alertCAGEAudible = UserDefaultsValue(key: "alertCAGEAudible", default: "Always") static let alertCAGEDayTimeAudible = UserDefaultsValue(key: "alertCAGEDayTimeAudible", default: true) static let alertCAGENightTimeAudible = UserDefaultsValue(key: "alertCAGENightTimeAudible", default: true) static let alertCAGESnooze = UserDefaultsValue(key: "alertCAGESnooze", default: 2) //Hours static let alertCAGESnoozedTime = UserDefaultsValue(key: "alertCAGESnoozedTime", default: nil) static let alertCAGEIsSnoozed = UserDefaultsValue(key: "alertCAGEIsSnoozed", default: false) static let alertCAGESound = UserDefaultsValue(key: "alertCAGESound", default: "Wake_Up_Will_You") static let alertCAGEAutosnooze = UserDefaultsValue(key: "alertCAGEAutosnooze", default: "At night") static let alertCAGEAutosnoozeDay = UserDefaultsValue(key: "alertCAGEAutosnoozeDay", default: false) static let alertCAGEAutosnoozeNight = UserDefaultsValue(key: "alertCAGEAutosnoozeNight", default: true) static let alertAppInactive = UserDefaultsValue(key: "alertAppInactive", default: false) static let alertTemporaryActive = UserDefaultsValue(key: "alertTemporaryActive", default: false) static let alertTemporaryBelow = UserDefaultsValue(key: "alertTemporaryBelow", default: true) static let alertTemporaryBG = UserDefaultsValue(key: "alertTemporaryBG", default: 90.0) static let alertTemporaryBGRepeat = UserDefaultsValue(key: "alertTemporaryBGRepeat", default: false) static let alertTemporaryBGAudible = UserDefaultsValue(key: "alertTemporaryBGRepeatAudible", default: true) static let alertTemporarySound = UserDefaultsValue(key: "alertTemporarySound", default: "Indeed") static let alertOverrideStart = UserDefaultsValue(key: "alertOverrideStart", default: false) static let alertOverrideStartQuiet = UserDefaultsValue(key: "alertOverrideStartQuiet", default: false) static let alertOverrideStartRepeat = UserDefaultsValue(key: "alertOverrideStartRepeat", default: "Never") static let alertOverrideStartDayTime = UserDefaultsValue(key: "alertOverrideStartDayTime", default: false) static let alertOverrideStartNightTime = UserDefaultsValue(key: "alertOverrideStartNightTime", default: false) static let alertOverrideStartAudible = UserDefaultsValue(key: "alertOverrideStartRepeatAudible", default: "Always") static let alertOverrideStartDayTimeAudible = UserDefaultsValue(key: "alertOverrideStartDayTimeAudible", default: true) static let alertOverrideStartNightTimeAudible = UserDefaultsValue(key: "alertOverrideStartNightTimeAudible", default: true) static let alertOverrideStartSound = UserDefaultsValue(key: "alertOverrideStartSound", default: "Ending_Reached") static let alertOverrideStartSnoozedTime = UserDefaultsValue(key: "alertOverrideStartSnoozedTime", default: nil) static let alertOverrideStartIsSnoozed = UserDefaultsValue(key: "alertOverrideStartIsSnoozed", default: false) static let alertOverrideStartAutosnooze = UserDefaultsValue(key: "alertOverrideStartAutosnooze", default: "Never") static let alertOverrideStartAutosnoozeDay = UserDefaultsValue(key: "alertOverrideStartAutosnoozeDay", default: false) static let alertOverrideStartAutosnoozeNight = UserDefaultsValue(key: "alertOverrideStartAutosnoozeNight", default: false) static let alertOverrideEnd = UserDefaultsValue(key: "alertOverrideEnd", default: false) static let alertOverrideEndQuiet = UserDefaultsValue(key: "alertOverrideEndQuiet", default: false) static let alertOverrideEndRepeat = UserDefaultsValue(key: "alertOverrideEndRepeat", default: "Never") static let alertOverrideEndDayTime = UserDefaultsValue(key: "alertOverrideEndDayTime", default: false) static let alertOverrideEndNightTime = UserDefaultsValue(key: "alertOverrideEndNightTime", default: false) static let alertOverrideEndAudible = UserDefaultsValue(key: "alertOverrideEndRepeatAudible", default: "Always") static let alertOverrideEndDayTimeAudible = UserDefaultsValue(key: "alertOverrideEndDayTimeAudible", default: true) static let alertOverrideEndNightTimeAudible = UserDefaultsValue(key: "alertOverrideEndNightTimeAudible", default: true) static let alertOverrideEndSound = UserDefaultsValue(key: "alertOverrideEndSound", default: "Alert_Tone_Busy") static let alertOverrideEndSnoozedTime = UserDefaultsValue(key: "alertOverrideEndSnoozedTime", default: nil) static let alertOverrideEndIsSnoozed = UserDefaultsValue(key: "alertOverrideEndIsSnoozed", default: false) static let alertOverrideEndAutosnooze = UserDefaultsValue(key: "alertOverrideEndAutosnooze", default: "Never") static let alertOverrideEndAutosnoozeDay = UserDefaultsValue(key: "alertOverrideEndAutosnoozeDay", default: false) static let alertOverrideEndAutosnoozeNight = UserDefaultsValue(key: "alertOverrideEndAutosnoozeNight", default: false) static let alertPump = UserDefaultsValue(key: "alertPump", default: false) static let alertPumpAt = UserDefaultsValue(key: "alertPumpAt", default: 10) //Units static let alertPumpQuiet = UserDefaultsValue(key: "alertPumpQuiet", default: false) static let alertPumpRepeat = UserDefaultsValue(key: "alertPumpRepeat", default: "Never") static let alertPumpDayTime = UserDefaultsValue(key: "alertPumpDayTime", default: false) static let alertPumpNightTime = UserDefaultsValue(key: "alertPumpNightTime", default: false) static let alertPumpAudible = UserDefaultsValue(key: "alertPumpAudible", default: "Always") static let alertPumpDayTimeAudible = UserDefaultsValue(key: "alertPumpDayTimeAudible", default: true) static let alertPumpNightTimeAudible = UserDefaultsValue(key: "alertPumpNightTimeAudible", default: true) static let alertPumpSound = UserDefaultsValue(key: "alertPumpSound", default: "Marimba_Descend") static let alertPumpSnoozeHours = UserDefaultsValue(key: "alertPumpSnoozeHours", default: 5) //Hours static let alertPumpIsSnoozed = UserDefaultsValue(key: "alertPumpIsSnoozed", default: false) static let alertPumpSnoozedTime = UserDefaultsValue(key: "alertPumpSnoozedTime", default: nil) static let alertPumpAutosnooze = UserDefaultsValue(key: "alertPumpAutosnooze", default: "Never") static let alertPumpAutosnoozeDay = UserDefaultsValue(key: "alertPumpAutosnoozeDay", default: false) static let alertPumpAutosnoozeNight = UserDefaultsValue(key: "alertPumpAutosnoozeNight", default: false) static let alertIOB = UserDefaultsValue(key: "alertIOB", default: false) static let alertIOBAt = UserDefaultsValue(key: "alertIOBAt", default: 1.5) //Units static let alertIOBNumber = UserDefaultsValue(key: "alertIOBNumber", default: 3) //Number static let alertIOBBolusesWithin = UserDefaultsValue(key: "alertIOBBolusesWithin", default: 60) //Minutes static let alertIOBMaxBoluses = UserDefaultsValue(key: "alertIOBMaxBoluses", default: 10) //Units static let alertIOBQuiet = UserDefaultsValue(key: "alertIOBQuiet", default: false) static let alertIOBRepeat = UserDefaultsValue(key: "alertIOBRepeat", default: "Always") static let alertIOBDayTime = UserDefaultsValue(key: "alertIOBDayTime", default: true) static let alertIOBNightTime = UserDefaultsValue(key: "alertIOBNightTime", default: true) static let alertIOBAudible = UserDefaultsValue(key: "alertIOBAudible", default: "Always") static let alertIOBDayTimeAudible = UserDefaultsValue(key: "alertIOBDayTimeAudible", default: true) static let alertIOBNightTimeAudible = UserDefaultsValue(key: "alertIOBNightTimeAudible", default: true) static let alertIOBSound = UserDefaultsValue(key: "alertIOBSound", default: "Alert_Tone_Ringtone_1") static let alertIOBSnoozeHours = UserDefaultsValue(key: "alertIOBSnoozeHours", default: 1) //Hours static let alertIOBIsSnoozed = UserDefaultsValue(key: "alertIOBIsSnoozed", default: false) static let alertIOBSnoozedTime = UserDefaultsValue(key: "alertIOBSnoozedTime", default: nil) static let alertIOBAutosnooze = UserDefaultsValue(key: "alertIOBAutosnooze", default: "Never") static let alertIOBAutosnoozeDay = UserDefaultsValue(key: "alertIOBAutosnoozeDay", default: false) static let alertIOBAutosnoozeNight = UserDefaultsValue(key: "alertIOBAutosnoozeNight", default: false) static let alertCOB = UserDefaultsValue(key: "alertCOB", default: false) static let alertCOBAt = UserDefaultsValue(key: "alertCOBAt", default: 50) //Units static let alertCOBQuiet = UserDefaultsValue(key: "alertCOBQuiet", default: false) static let alertCOBRepeat = UserDefaultsValue(key: "alertCOBRepeat", default: "Always") static let alertCOBDayTime = UserDefaultsValue(key: "alertCOBDayTime", default: true) static let alertCOBNightTime = UserDefaultsValue(key: "alertCOBNightTime", default: true) static let alertCOBAudible = UserDefaultsValue(key: "alertCOBAudible", default: "Always") static let alertCOBDayTimeAudible = UserDefaultsValue(key: "alertCOBDayTimeAudible", default: true) static let alertCOBNightTimeAudible = UserDefaultsValue(key: "alertCOBNightTimeAudible", default: true) static let alertCOBSound = UserDefaultsValue(key: "alertCOBSound", default: "Alert_Tone_Ringtone_2") static let alertCOBSnoozeHours = UserDefaultsValue(key: "alertCOBSnoozeHours", default: 1) //Hours static let alertCOBIsSnoozed = UserDefaultsValue(key: "alertCOBIsSnoozed", default: false) static let alertCOBSnoozedTime = UserDefaultsValue(key: "alertCOBSnoozedTime", default: nil) static let alertCOBAutosnooze = UserDefaultsValue(key: "alertCOBAutosnooze", default: "Never") static let alertCOBAutosnoozeDay = UserDefaultsValue(key: "alertCOBAutosnoozeDay", default: false) static let alertCOBAutosnoozeNight = UserDefaultsValue(key: "alertCOBAutosnoozeNight", default: false) static let alertBatteryActive = UserDefaultsValue(key: "alertBatteryActive", default: false) static let alertBatteryLevel = UserDefaultsValue(key: "alertBatteryLevel", default: 25) static let alertBatterySound = UserDefaultsValue(key: "alertBatterySound", default: "Machine_Charge") static let alertBatteryRepeat = UserDefaultsValue(key: "alertBatteryRepeat", default: true) static let alertBatteryIsSnoozed = UserDefaultsValue(key: "alertBatteryIsSnoozed", default: false) static let alertBatterySnoozedTime = UserDefaultsValue(key: "alertBatterySnoozedTime", default: nil) static let alertBatterySnoozeHours = UserDefaultsValue(key: "alertBatterySnoozeHours", default: 1) static var deviceBatteryLevel: UserDefaultsValue = UserDefaultsValue(key: "deviceBatteryLevel", default: 100.0) static let alertRecBolusActive = UserDefaultsValue(key: "alertRecBolusActive", default: false) static let alertRecBolusLevel = UserDefaultsValue(key: "alertRecBolusLevel", default: 1) //Unit[s] static let alertRecBolusSound = UserDefaultsValue(key: "alertRecBolusSound", default: "Dhol_Shuffleloop") static let alertRecBolusRepeat = UserDefaultsValue(key: "alertRecBolusRepeat", default: false) static let alertRecBolusIsSnoozed = UserDefaultsValue(key: "alertRecBolusIsSnoozed", default: false) static let alertRecBolusSnooze = UserDefaultsValue(key: "alertRecBolusSnooze", default: 5) static let alertRecBolusSnoozedTime = UserDefaultsValue(key: "alertRecBolusSnoozedTime", default: nil) static var deviceRecBolus: UserDefaultsValue = UserDefaultsValue(key: "deviceRecBolus", default: 0.0) }