|
@@ -221,18 +221,16 @@ extension Adjustments.StateModel {
|
|
|
/// Enacts a Temp Target preset by enabling it.
|
|
/// Enacts a Temp Target preset by enabling it.
|
|
|
@MainActor func enactTempTargetPreset(withID id: NSManagedObjectID) async {
|
|
@MainActor func enactTempTargetPreset(withID id: NSManagedObjectID) async {
|
|
|
do {
|
|
do {
|
|
|
- let tempTargetToEnact = try viewContext.existingObject(with: id) as? TempTargetStored
|
|
|
|
|
- tempTargetToEnact?.enabled = true
|
|
|
|
|
- tempTargetToEnact?.date = Date()
|
|
|
|
|
- tempTargetToEnact?.isUploadedToNS = false
|
|
|
|
|
- isTempTargetEnabled = true
|
|
|
|
|
|
|
+ guard let tempTargetToEnact = try viewContext.existingObject(with: id) as? TempTargetStored else { return }
|
|
|
|
|
|
|
|
- async let disableTempTargets: () = disableAllActiveTempTargets(
|
|
|
|
|
- except: id,
|
|
|
|
|
- createTempTargetRunEntry: currentActiveTempTarget != nil
|
|
|
|
|
- )
|
|
|
|
|
- async let resetState: () = resetTempTargetState()
|
|
|
|
|
- _ = await (disableTempTargets, resetState)
|
|
|
|
|
|
|
+ /// wait for diabling current target before storing new temp target
|
|
|
|
|
+ await disableAllActiveTempTargets(createTempTargetRunEntry: true)
|
|
|
|
|
+ await resetTempTargetState()
|
|
|
|
|
+
|
|
|
|
|
+ tempTargetToEnact.enabled = true
|
|
|
|
|
+ tempTargetToEnact.date = Date()
|
|
|
|
|
+ tempTargetToEnact.isUploadedToNS = false
|
|
|
|
|
+ isTempTargetEnabled = true
|
|
|
|
|
|
|
|
if viewContext.hasChanges {
|
|
if viewContext.hasChanges {
|
|
|
try viewContext.save()
|
|
try viewContext.save()
|
|
@@ -240,21 +238,25 @@ extension Adjustments.StateModel {
|
|
|
|
|
|
|
|
updateLatestTempTargetConfiguration()
|
|
updateLatestTempTargetConfiguration()
|
|
|
|
|
|
|
|
- let tempTarget = TempTarget(
|
|
|
|
|
- name: tempTargetToEnact?.name,
|
|
|
|
|
|
|
+ let newActiveTempTarget = TempTarget(
|
|
|
|
|
+ name: tempTargetToEnact.name,
|
|
|
createdAt: Date(),
|
|
createdAt: Date(),
|
|
|
- targetTop: tempTargetToEnact?.target?.decimalValue,
|
|
|
|
|
- targetBottom: tempTargetToEnact?.target?.decimalValue,
|
|
|
|
|
- duration: tempTargetToEnact?.duration?.decimalValue ?? 0,
|
|
|
|
|
|
|
+ targetTop: tempTargetToEnact.target?.decimalValue,
|
|
|
|
|
+ targetBottom: tempTargetToEnact.target?.decimalValue,
|
|
|
|
|
+ duration: tempTargetToEnact.duration?.decimalValue ?? 0,
|
|
|
enteredBy: TempTarget.local,
|
|
enteredBy: TempTarget.local,
|
|
|
reason: TempTarget.custom,
|
|
reason: TempTarget.custom,
|
|
|
isPreset: true,
|
|
isPreset: true,
|
|
|
enabled: true,
|
|
enabled: true,
|
|
|
halfBasalTarget: halfBasalTarget
|
|
halfBasalTarget: halfBasalTarget
|
|
|
)
|
|
)
|
|
|
- tempTargetStorage.saveTempTargetsToStorage([tempTarget])
|
|
|
|
|
|
|
+
|
|
|
|
|
+ tempTargetStorage.saveTempTargetsToStorage([newActiveTempTarget])
|
|
|
|
|
+
|
|
|
} catch {
|
|
} catch {
|
|
|
- debugPrint("\(DebuggingIdentifiers.failed) \(#file) \(#function) Failed to enact Override Preset")
|
|
|
|
|
|
|
+ debugPrint(
|
|
|
|
|
+ "\(DebuggingIdentifiers.failed) \(#file) \(#function) Failed to enact TempTarget Preset"
|
|
|
|
|
+ )
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|