forked from LoopKit/LoopKit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCorrectionRangeOverridesEditorViewModel.swift
More file actions
49 lines (39 loc) · 1.79 KB
/
CorrectionRangeOverridesEditorViewModel.swift
File metadata and controls
49 lines (39 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//
// CorrectionRangeOverridesEditorViewModel.swift
// LoopKitUI
//
// Created by Nathaniel Hamming on 2021-03-15.
// Copyright © 2021 LoopKit Authors. All rights reserved.
//
import Foundation
import HealthKit
import LoopKit
struct CorrectionRangeOverridesEditorViewModel {
let correctionRangeOverrides: CorrectionRangeOverrides
let suspendThreshold: GlucoseThreshold?
let correctionRangeScheduleRange: ClosedRange<HKQuantity>
let preset: CorrectionRangeOverrides.Preset
let guardrail: Guardrail<HKQuantity>
var saveCorrectionRangeOverride: (_ correctionRangeOverrides: CorrectionRangeOverrides) -> Void
public init(therapySettingsViewModel: TherapySettingsViewModel,
preset: CorrectionRangeOverrides.Preset,
didSave: (() -> Void)? = nil)
{
self.correctionRangeOverrides = therapySettingsViewModel.correctionRangeOverrides
self.suspendThreshold = therapySettingsViewModel.suspendThreshold
self.correctionRangeScheduleRange = therapySettingsViewModel.correctionRangeScheduleRange
self.guardrail = Guardrail.correctionRangeOverride(
for: preset,
correctionRangeScheduleRange: therapySettingsViewModel.correctionRangeScheduleRange,
suspendThreshold: therapySettingsViewModel.suspendThreshold)
self.preset = preset
self.saveCorrectionRangeOverride = { [weak therapySettingsViewModel] correctionRangeOverrides in
guard let therapySettingsViewModel = therapySettingsViewModel else {
return
}
therapySettingsViewModel.saveCorrectionRangeOverride(preset: preset,
correctionRangeOverrides: correctionRangeOverrides)
didSave?()
}
}
}