TargetsEditorProvider.swift 1.1 KB

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