TargetsEditorProvider.swift 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. import Foundation
  2. extension TargetsEditor {
  3. final class Provider: BaseProvider, TargetsEditorProvider {
  4. var profile: BGTargets {
  5. var retrievedTargets = storage.retrieve(OpenAPS.Settings.bgTargets, as: BGTargets.self)
  6. ?? BGTargets(from: OpenAPS.defaults(for: OpenAPS.Settings.bgTargets))
  7. ?? BGTargets(units: .mgdL, userPreferredUnits: .mgdL, targets: [])
  8. // migrate existing mmol/L Trio users from mmol/L settings to pure mg/dl settings
  9. if retrievedTargets.units == .mmolL || retrievedTargets.userPreferredUnits == .mmolL {
  10. let convertedTargets = retrievedTargets.targets.map { target in
  11. BGTargetEntry(
  12. low: storage.parseSettingIfMmolL(value: target.low),
  13. high: storage.parseSettingIfMmolL(value: target.high),
  14. start: target.start,
  15. offset: target.offset
  16. )
  17. }
  18. retrievedTargets = BGTargets(units: .mgdL, userPreferredUnits: .mgdL, targets: convertedTargets)
  19. saveProfile(retrievedTargets)
  20. }
  21. return retrievedTargets
  22. }
  23. func saveProfile(_ profile: BGTargets) {
  24. storage.save(profile, as: OpenAPS.Settings.bgTargets)
  25. }
  26. }
  27. }