| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- //
- // NSUserDefaults.swift
- // LoopKit
- //
- // Created by Nathan Racklyeft on 3/18/16.
- // Copyright © 2016 Nathan Racklyeft. All rights reserved.
- //
- import Foundation
- import LoopKit
- extension UserDefaults {
- private enum Key: String {
- case BasalRateSchedule = "com.LoopKitExample.BasalRateSchedule"
- case CarbRatioSchedule = "com.LoopKitExample.CarbRatioSchedule"
- case InsulinActionDuration = "com.LoopKitExample.InsulinActionDuration"
- case InsulinSensitivitySchedule = "com.LoopKitExample.InsulinSensitivitySchedule"
- case GlucoseTargetRangeSchedule = "com.LoopKitExample.GlucoseTargetRangeSchedule"
- case PreMealTargetRange = "com.LoopKitExample.PreMealTargetRange"
- case LegacyWorkoutTargetRange = "com.LoopKitExample.LegacyWorkoutTargetRange"
- case MaximumBasalRatePerHour = "com.LoopKitExample.MaximumBasalRatePerHour"
- case MaximumBolus = "com.LoopKitExample.MaximumBolus"
- case PumpID = "com.LoopKitExample.PumpID"
- case PumpTimeZone = "com.LoopKitExample.PumpTimeZone"
- case TransmitterID = "com.LoopKitExample.TransmitterID"
- case TransmitterStartTime = "com.LoopKitExample.TransmitterStartTime"
- }
- var basalRateSchedule: BasalRateSchedule? {
- get {
- if let rawValue = dictionary(forKey: Key.BasalRateSchedule.rawValue) {
- return BasalRateSchedule(rawValue: rawValue)
- } else {
- return nil
- }
- }
- set {
- set(newValue?.rawValue, forKey: Key.BasalRateSchedule.rawValue)
- }
- }
- var carbRatioSchedule: CarbRatioSchedule? {
- get {
- if let rawValue = dictionary(forKey: Key.CarbRatioSchedule.rawValue) {
- return CarbRatioSchedule(rawValue: rawValue)
- } else {
- return nil
- }
- }
- set {
- set(newValue?.rawValue, forKey: Key.CarbRatioSchedule.rawValue)
- }
- }
- var insulinActionDuration: TimeInterval? {
- get {
- let value = double(forKey: Key.InsulinActionDuration.rawValue)
- return value > 0 ? value : TimeInterval(hours: 4)
- }
- set {
- if let insulinActionDuration = newValue {
- set(insulinActionDuration, forKey: Key.InsulinActionDuration.rawValue)
- } else {
- removeObject(forKey: Key.InsulinActionDuration.rawValue)
- }
- }
- }
- var insulinSensitivitySchedule: InsulinSensitivitySchedule? {
- get {
- if let rawValue = dictionary(forKey: Key.InsulinSensitivitySchedule.rawValue) {
- return InsulinSensitivitySchedule(rawValue: rawValue)
- } else {
- return nil
- }
- }
- set {
- set(newValue?.rawValue, forKey: Key.InsulinSensitivitySchedule.rawValue)
- }
- }
- var glucoseTargetRangeSchedule: GlucoseRangeSchedule? {
- get {
- if let rawValue = dictionary(forKey: Key.GlucoseTargetRangeSchedule.rawValue) {
- return GlucoseRangeSchedule(rawValue: rawValue)
- } else {
- return nil
- }
- }
- set {
- set(newValue?.rawValue, forKey: Key.GlucoseTargetRangeSchedule.rawValue)
- }
- }
- var preMealTargetRange: DoubleRange? {
- get {
- if let rawValue = array(forKey: Key.PreMealTargetRange.rawValue) as? DoubleRange.RawValue {
- return DoubleRange(rawValue: rawValue)
- } else {
- return nil
- }
- }
- set {
- set(newValue?.rawValue, forKey: Key.PreMealTargetRange.rawValue)
- }
- }
- var legacyWorkoutTargetRange: DoubleRange? {
- get {
- if let rawValue = array(forKey: Key.LegacyWorkoutTargetRange.rawValue) as? DoubleRange.RawValue {
- return DoubleRange(rawValue: rawValue)
- } else {
- return nil
- }
- }
- set {
- set(newValue?.rawValue, forKey: Key.LegacyWorkoutTargetRange.rawValue)
- }
- }
- var maximumBasalRatePerHour: Double? {
- get {
- let value = double(forKey: Key.MaximumBasalRatePerHour.rawValue)
- return value > 0 ? value : nil
- }
- set {
- if let maximumBasalRatePerHour = newValue {
- set(maximumBasalRatePerHour, forKey: Key.MaximumBasalRatePerHour.rawValue)
- } else {
- removeObject(forKey: Key.MaximumBasalRatePerHour.rawValue)
- }
- }
- }
- var maximumBolus: Double? {
- get {
- let value = double(forKey: Key.MaximumBolus.rawValue)
- return value > 0 ? value : nil
- }
- set {
- if let maximumBolus = newValue {
- set(maximumBolus, forKey: Key.MaximumBolus.rawValue)
- } else {
- removeObject(forKey: Key.MaximumBolus.rawValue)
- }
- }
- }
- var pumpID: String? {
- get {
- return string(forKey: Key.PumpID.rawValue) ?? "123456"
- }
- set {
- set(newValue, forKey: Key.PumpID.rawValue)
- }
- }
- var pumpTimeZone: TimeZone? {
- get {
- if let offset = object(forKey: Key.PumpTimeZone.rawValue) as? NSNumber {
- return TimeZone(secondsFromGMT: offset.intValue)
- } else {
- return nil
- }
- } set {
- if let value = newValue {
- set(NSNumber(value: value.secondsFromGMT()), forKey: Key.PumpTimeZone.rawValue)
- } else {
- removeObject(forKey: Key.PumpTimeZone.rawValue)
- }
- }
- }
- var transmitterStartTime: TimeInterval? {
- get {
- let value = double(forKey: Key.TransmitterStartTime.rawValue)
- return value > 0 ? value : nil
- }
- set {
- if let value = newValue {
- set(value, forKey: Key.TransmitterStartTime.rawValue)
- } else {
- removeObject(forKey: Key.TransmitterStartTime.rawValue)
- }
- }
- }
- var transmitterID: String? {
- get {
- return string(forKey: Key.TransmitterID.rawValue)
- }
- set {
- set(newValue, forKey: Key.TransmitterID.rawValue)
- }
- }
- }
|