UserDefaults.swift 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. //
  2. // UserDefaults.swift
  3. // LoopFollow
  4. //
  5. // Created by Jon Fawcett on 6/4/20.
  6. // Copyright © 2020 Jon Fawcett. All rights reserved.
  7. //
  8. import Foundation
  9. import UIKit
  10. class UserDefaultsRepository {
  11. //Nightscout Settings
  12. static let url = UserDefaultsValue<String>(key: "url", default: "")
  13. static let token = UserDefaultsValue<String>(key: "token", default: "")
  14. // Graph Settings
  15. static let showDots = UserDefaultsValue<Bool>(key: "showDots", default: true)
  16. static let showLines = UserDefaultsValue<Bool>(key: "showLines", default: true)
  17. static let hoursToLoad = UserDefaultsValue<Int>(key: "hoursToLoad", default: 24)
  18. static let lowLine = UserDefaultsValue<Int>(key: "lowLine", default: 70)
  19. static let highLine = UserDefaultsValue<Int>(key: "highLine", default: 180)
  20. // General Settings
  21. static let colorBGText = UserDefaultsValue<Bool>(key: "colorBGText", default: true)
  22. static let backgroundRefreshFrequency = UserDefaultsValue<Double>(key: "backgroundRefreshFrequency", default: 1)
  23. static let backgroundRefresh = UserDefaultsValue<Bool>(key: "backgroundRefresh", default: true)
  24. static let appBadge = UserDefaultsValue<Bool>(key: "appBadge", default: true)
  25. static let dimScreenWhenIdle = UserDefaultsValue<Int>(key: "dimScreenWhenIdle", default: 0)
  26. static let forceDarkMode = UserDefaultsValue<Bool>(key: "forceDarkMode", default: true)
  27. static let screenlockSwitchState = UserDefaultsValue<Bool>(
  28. key: "screenlockSwitchState",
  29. default: UIApplication.shared.isIdleTimerDisabled,
  30. onChange: { screenlock in
  31. UIApplication.shared.isIdleTimerDisabled = screenlock
  32. })
  33. // Watch Calendar Settings
  34. static let calendarIdentifier = UserDefaultsValue<String>(key: "calendarIdentifier", default: "")
  35. static let savedEventID = UserDefaultsValue<String>(key: "savedEventID", default: "")
  36. static let lastCalendarStartDate = UserDefaultsValue<Date?>(key: "lastCalendarStartDate", default: nil)
  37. static let writeCalendarEvent = UserDefaultsValue<Bool>(key: "writeCalendarEvent", default: false)
  38. // Alarm Settings
  39. static let systemOutputVolume = UserDefaultsValue<Float>(key: "systemOutputVolume", default: 0.5)
  40. static let fadeInTimeInterval = UserDefaultsValue<TimeInterval>(key: "fadeInTimeInterval", default: 0)
  41. static let vibrate = UserDefaultsValue<Bool>(key: "vibrate", default: true)
  42. static let overrideSystemOutputVolume = UserDefaultsValue<Bool>(key: "overrideSystemOutputVolume", default: true)
  43. static let forcedOutputVolume = UserDefaultsValue<Float>(key: "forcedOutputVolume", default: 0.5)
  44. // Alerts
  45. static let snoozedBGReadingTime = UserDefaultsValue<TimeInterval?>(key: "snoozedBGReadingTime", default: 0)
  46. static let alertCageInsertTime = UserDefaultsValue<TimeInterval>(key: "alertCageInsertTime", default: 0)
  47. static let alertSageInsertTime = UserDefaultsValue<TimeInterval>(key: "alertSageInsertTime", default: 0)
  48. static let alertSnoozeAllTime = UserDefaultsValue<Date?>(key: "alertSnoozeAllTime", default: nil)
  49. static let alertSnoozeAllIsSnoozed = UserDefaultsValue<Bool>(key: "alertSnoozeAllIsSnoozed", default: false)
  50. static let alertUrgentLowActive = UserDefaultsValue<Bool>(key: "alertUrgentLowActive", default: false)
  51. static let alertUrgentLowBG = UserDefaultsValue<Int>(key: "alertUrgentLowBG", default: 55)
  52. static let alertUrgentLowSnooze = UserDefaultsValue<Int>(key: "alertUrgentLowSnooze", default: 5)
  53. static let alertUrgentLowSnoozedTime = UserDefaultsValue<Date?>(key: "alertUrgentLowSnoozedTime", default: nil)
  54. static let alertUrgentLowIsSnoozed = UserDefaultsValue<Bool>(key: "alertUrgentLowIsSnoozed", default: false)
  55. static let alertUrgentLowSound = UserDefaultsValue<String>(key: "alertUrgentLowSound", default: "Indeed")
  56. static let alertLowActive = UserDefaultsValue<Bool>(key: "alertLowActive", default: false)
  57. static let alertLowBG = UserDefaultsValue<Int>(key: "alertLowBG", default: 70)
  58. static let alertLowSnooze = UserDefaultsValue<Int>(key: "alertLowSnooze", default: 5)
  59. static let alertLowSnoozedTime = UserDefaultsValue<Date?>(key: "alertLowSnoozedTime", default: nil)
  60. static let alertLowIsSnoozed = UserDefaultsValue<Bool>(key: "alertLowIsSnoozed", default: false)
  61. static let alertLowSound = UserDefaultsValue<String>(key: "alertLowSound", default: "Indeed")
  62. static let alertHighActive = UserDefaultsValue<Bool>(key: "alertHighActive", default: false)
  63. static let alertHighBG = UserDefaultsValue<Int>(key: "alertHighBG", default: 180)
  64. static let alertHighPersistent = UserDefaultsValue<Int>(key: "alertHighPersistent", default: 60)
  65. static let alertHighSnooze = UserDefaultsValue<Int>(key: "alertHighSnooze", default: 60)
  66. static let alertHighSnoozedTime = UserDefaultsValue<Date?>(key: "alertHighSnoozedTime", default: nil)
  67. static let alertHighIsSnoozed = UserDefaultsValue<Bool>(key: "alertHighIsSnoozed", default: false)
  68. static let alertHighSound = UserDefaultsValue<String>(key: "alertHighSound", default: "Indeed")
  69. static let alertUrgentHighActive = UserDefaultsValue<Bool>(key: "alertUrgentHighActive", default: false)
  70. static let alertUrgentHighBG = UserDefaultsValue<Int>(key: "alertUrgentHighBG", default: 250)
  71. static let alertUrgentHighSnooze = UserDefaultsValue<Int>(key: "alertUrgentHighSnooze", default: 30)
  72. static let alertUrgentHighSnoozedTime = UserDefaultsValue<Date?>(key: "alertUrgentHighSnoozedTime", default: nil)
  73. static let alertUrgentHighIsSnoozed = UserDefaultsValue<Bool>(key: "alertUrgentHighIsSnoozed", default: false)
  74. static let alertUrgentHighSound = UserDefaultsValue<String>(key: "alertUrgentHighSound", default: "Indeed")
  75. static let alertFastDropActive = UserDefaultsValue<Bool>(key: "alertFastDropDeltaActive", default: false)
  76. static let alertFastDropSnooze = UserDefaultsValue<Int>(key: "alertFastDropDeltaSnooze", default: 10)
  77. static let alertFastDropDelta = UserDefaultsValue<Int>(key: "alertFastDropDelta", default: 10)
  78. static let alertFastDropReadings = UserDefaultsValue<Int>(key: "alertFastDropReadings", default: 3)
  79. static let alertFastDropUseLimit = UserDefaultsValue<Bool>(key: "alertFastDropUseLimit", default: false)
  80. static let alertFastDropBelowBG = UserDefaultsValue<Int>(key: "alertFastDropBelowBG", default: 120)
  81. static let alertFastDropSnoozedTime = UserDefaultsValue<Date?>(key: "alertFastDropSnoozedTime", default: nil)
  82. static let alertFastDropIsSnoozed = UserDefaultsValue<Bool>(key: "alertFastDropIsSnoozed", default: false)
  83. static let alertFastDropSound = UserDefaultsValue<String>(key: "alertFastDropSound", default: "Indeed")
  84. static let alertFastRiseActive = UserDefaultsValue<Bool>(key: "alertFastRiseDeltaActive", default: false)
  85. static let alertFastRiseSnooze = UserDefaultsValue<Int>(key: "alertFastRiseDeltaSnooze", default: 10)
  86. static let alertFastRiseDelta = UserDefaultsValue<Int>(key: "alertFastRiseDelta", default: 10)
  87. static let alertFastRiseReadings = UserDefaultsValue<Int>(key: "alertFastRiseReadings", default: 3)
  88. static let alertFastRiseUseLimit = UserDefaultsValue<Bool>(key: "alertFastRiseUseLimit", default: false)
  89. static let alertFastRiseAboveBG = UserDefaultsValue<Int>(key: "alertFastRiseAboveBG", default: 200)
  90. static let alertFastRiseSnoozedTime = UserDefaultsValue<Date?>(key: "alertFastRiseSnoozedTime", default: nil)
  91. static let alertFastRiseIsSnoozed = UserDefaultsValue<Bool>(key: "alertFastRiseIsSnoozed", default: false)
  92. static let alertFastRiseSound = UserDefaultsValue<String>(key: "alertFastRiseSound", default: "Indeed")
  93. static let alertMissedReadingActive = UserDefaultsValue<Bool>(key: "alertMissedReadingActive", default: false)
  94. static let alertMissedReading = UserDefaultsValue<Int>(key: "alertMissedReading", default: 30)
  95. static let alertMissedReadingSnooze = UserDefaultsValue<Int>(key: "alertMissedReadingSnooze", default: 30)
  96. static let alertMissedReadingSnoozedTime = UserDefaultsValue<Date?>(key: "alertMissedReadingSnoozedTime", default: nil)
  97. static let alertMissedReadingIsSnoozed = UserDefaultsValue<Bool>(key: "alertMissedReadingIsSnoozed", default: false)
  98. static let alertMissedReadingSound = UserDefaultsValue<String>(key: "alertMissedReadingSound", default: "Indeed")
  99. static let alertNotLoopingActive = UserDefaultsValue<Bool>(key: "alertNotLoopingActive", default: false)
  100. static let alertNotLooping = UserDefaultsValue<Int>(key: "alertNotLooping", default: 30)
  101. static let alertNotLoopingSnooze = UserDefaultsValue<Int>(key: "alertNotLoopingSnooze", default: 30)
  102. static let alertNotLoopingUseLimits = UserDefaultsValue<Bool>(key: "alertNotLoopingUseLimits", default: false)
  103. static let alertNotLoopingLowerLimit = UserDefaultsValue<Int>(key: "alertNotLoopingBelowBG", default: 100)
  104. static let alertNotLoopingUpperLimit = UserDefaultsValue<Int>(key: "alertNotLoopingAboveBG", default: 160)
  105. static let alertNotLoopingSnoozedTime = UserDefaultsValue<Date?>(key: "alertNotLoopingSnoozedTime", default: nil)
  106. static let alertNotLoopingIsSnoozed = UserDefaultsValue<Bool>(key: "alertNotLoopingIsSnoozed", default: false)
  107. static let alertNotLoopingSound = UserDefaultsValue<String>(key: "alertNotLoopingSound", default: "Indeed")
  108. static let alertMissedBolusActive = UserDefaultsValue<Bool>(key: "alertMissedBolusActive", default: false)
  109. static let alertMissedBolus = UserDefaultsValue<Int>(key: "alertMissedBolus", default: 10)
  110. static let alertMissedBolusSnooze = UserDefaultsValue<Int>(key: "alertMissedBolusSnooze", default: 10)
  111. static let alertMissedBolusLowGramsActive = UserDefaultsValue<Bool>(key: "alertMissedBolusLowGramsActive", default: false)
  112. static let alertMissedBolusLowGrams = UserDefaultsValue<Int>(key: "alertMissedBolusLowGrams", default: 10)
  113. static let alertMissedBolusLowGramsBG = UserDefaultsValue<Int>(key: "alertMissedBolusLowGramsBG", default: 70)
  114. static let alertMissedBolusSnoozedTime = UserDefaultsValue<Date?>(key: "alertMissedBolusSnoozedTime", default: nil)
  115. static let alertMissedBolusIsSnoozed = UserDefaultsValue<Bool>(key: "alertMissedBolusIsSnoozed", default: false)
  116. static let alertMissedBolusSound = UserDefaultsValue<String>(key: "alertMissedBolusSound", default: "Indeed")
  117. static let alertSAGEActive = UserDefaultsValue<Bool>(key: "alertSAGEActive", default: false)
  118. static let alertSAGE = UserDefaultsValue<Int>(key: "alertSAGE", default: 8) //Hours
  119. static let alertSAGESnooze = UserDefaultsValue<Int>(key: "alertSAGESnooze", default: 2) //Hours
  120. static let alertSAGESnoozedTime = UserDefaultsValue<Date?>(key: "alertSAGESnoozedTime", default: nil)
  121. static let alertSAGEIsSnoozed = UserDefaultsValue<Bool>(key: "alertSAGEIsSnoozed", default: false)
  122. static let alertSAGESound = UserDefaultsValue<String>(key: "alertSAGESound", default: "Indeed")
  123. static let alertCAGEActive = UserDefaultsValue<Bool>(key: "alertCAGEActive", default: false)
  124. static let alertCAGE = UserDefaultsValue<Int>(key: "alertCAGE", default: 4) //Hours
  125. static let alertCAGESnooze = UserDefaultsValue<Int>(key: "alertCAGESnooze", default: 2) //Hours
  126. static let alertCAGESnoozedTime = UserDefaultsValue<Date?>(key: "alertCAGESnoozedTime", default: nil)
  127. static let alertCAGEIsSnoozed = UserDefaultsValue<Bool>(key: "alertCAGEIsSnoozed", default: false)
  128. static let alertCAGESound = UserDefaultsValue<String>(key: "alertCAGESound", default: "Indeed")
  129. static let alertAppInactive = UserDefaultsValue<Bool>(key: "alertAppInactive", default: false)
  130. static let alertTemporaryActive = UserDefaultsValue<Bool>(key: "alertTemporaryActive", default: false)
  131. static let alertTemporaryBelow = UserDefaultsValue<Bool>(key: "alertTemporaryBelow", default: true)
  132. static let alertTemporaryBG = UserDefaultsValue<Int>(key: "alertTemporaryBG", default: 90)
  133. static let alertTemporarySound = UserDefaultsValue<String>(key: "alertTemporarySound", default: "Indeed")
  134. }