Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions LoopKit/LoopNotificationCategory.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,6 @@ public enum LoopNotificationCategory: String {
case pumpExpirationWarning
case pumpExpired
case pumpFault
case remoteTempSet
case remoteTempCancel
}
12 changes: 11 additions & 1 deletion LoopKit/TemporaryScheduleOverrideSettings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,17 @@ public struct TemporaryScheduleOverrideSettings: Hashable {
public var insulinNeedsScaleFactor: Double?

public var targetRange: ClosedRange<HKQuantity>? {
return targetRangeInMgdl.map { $0.quantityRange(for: .milligramsPerDeciliter) }
get {
return targetRangeInMgdl.map { $0.quantityRange(for: .milligramsPerDeciliter) }
}
set (newValue) {
if let value = newValue {
targetRangeInMgdl = DoubleRange(
minValue: value.lowerBound.doubleValue(for: .milligramsPerDeciliter),
maxValue: value.upperBound.doubleValue(for: .milligramsPerDeciliter)
)
}
}
}

public var basalRateMultiplier: Double? {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ public final class AddEditOverrideTableViewController: UITableViewController {

private var name: String? { didSet { updateSaveButtonEnabled() } }

private var targetRange: DoubleRange? { didSet { updateSaveButtonEnabled() } }
private var targetRange: ClosedRange<HKQuantity>? { didSet { updateSaveButtonEnabled() } }

private var insulinNeedsScaleFactor = 1.0 { didSet { updateSaveButtonEnabled() }}

Expand All @@ -113,7 +113,12 @@ public final class AddEditOverrideTableViewController: UITableViewController {

private func configure(with settings: TemporaryScheduleOverrideSettings) {
if let targetRange = settings.targetRange {
self.targetRange = DoubleRange(minValue: targetRange.lowerBound.doubleValue(for: glucoseUnit), maxValue: targetRange.upperBound.doubleValue(for: glucoseUnit))
self.targetRange = ClosedRange<HKQuantity>(uncheckedBounds: (
lower: HKQuantity(unit: glucoseUnit, doubleValue: targetRange.lowerBound.doubleValue(for: glucoseUnit)
),
upper: HKQuantity(unit: glucoseUnit, doubleValue: targetRange.upperBound.doubleValue(for: glucoseUnit)
)
))
} else {
targetRange = nil
}
Expand Down Expand Up @@ -250,7 +255,10 @@ public final class AddEditOverrideTableViewController: UITableViewController {
let cell = tableView.dequeueReusableCell(withIdentifier: DoubleRangeTableViewCell.className, for: indexPath) as! DoubleRangeTableViewCell
cell.numberFormatter = quantityFormatter.numberFormatter
cell.titleLabel.text = NSLocalizedString("Target Range", comment: "The text for the override target range setting")
cell.range = targetRange
cell.range = DoubleRange(
minValue: targetRange?.lowerBound.doubleValue(for: glucoseUnit) ?? 0,
maxValue: targetRange?.upperBound.doubleValue(for: glucoseUnit) ?? 0
)
cell.unitLabel.text = quantityFormatter.string(from: glucoseUnit)
cell.delegate = self
return cell
Expand Down Expand Up @@ -435,7 +443,7 @@ extension AddEditOverrideTableViewController {

private var configuredSettings: TemporaryScheduleOverrideSettings? {
if let targetRange = targetRange {
guard targetRange.maxValue >= targetRange.minValue else {
guard targetRange.upperBound >= targetRange.lowerBound else {
return nil
}
} else {
Expand All @@ -446,7 +454,10 @@ extension AddEditOverrideTableViewController {

return TemporaryScheduleOverrideSettings(
unit: glucoseUnit,
targetRange: targetRange,
targetRange: DoubleRange(
minValue: targetRange?.lowerBound.doubleValue(for: glucoseUnit) ?? 0,
maxValue: targetRange?.upperBound.doubleValue(for: glucoseUnit) ?? 0
),
insulinNeedsScaleFactor: insulinNeedsScaleFactor == 1.0 ? nil : insulinNeedsScaleFactor
)
}
Expand Down Expand Up @@ -632,7 +643,12 @@ extension AddEditOverrideTableViewController: DoubleRangeTableViewCellDelegate {
guard let indexPath = tableView.indexPath(for: cell) else { return }
switch propertyRow(for: indexPath) {
case .targetRange:
targetRange = cell.range
targetRange = ClosedRange<HKQuantity>(
uncheckedBounds: (
lower: HKQuantity(unit: glucoseUnit, doubleValue: cell.range?.minValue ?? 0),
upper: HKQuantity(unit: glucoseUnit, doubleValue: cell.range?.maxValue ?? 0)
)
)
default:
assertionFailure()
}
Expand Down