HKUnit+Extensions.swift 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // LoopFollow
  2. // HKUnit+Extensions.swift
  3. import Foundation
  4. import HealthKit
  5. extension HKUnit {
  6. public static let milligramsPerDeciliter: HKUnit = HKUnit.gramUnit(with: .milli).unitDivided(by: .literUnit(with: .deci))
  7. public static let millimolesPerLiter: HKUnit = HKUnit.moleUnit(with: .milli, molarMass: HKUnitMolarMassBloodGlucose).unitDivided(by: .liter())
  8. var preferredFractionDigits: Int {
  9. switch self {
  10. case .minute():
  11. return 0
  12. case .milligramsPerDeciliter:
  13. return 0
  14. case .millimolesPerLiter:
  15. return 1
  16. case .internationalUnit():
  17. return InsulinPrecisionManager.shared.fractionDigits
  18. default:
  19. return 0
  20. }
  21. }
  22. var localizedShortUnitString: String {
  23. if self == HKUnit.millimolesPerLiter {
  24. return NSLocalizedString("mmol/L", comment: "The short unit display string for millimoles of glucose per liter")
  25. } else if self == .milligramsPerDeciliter {
  26. return NSLocalizedString("mg/dL", comment: "The short unit display string for milligrams of glucose per decilter")
  27. } else if self == .internationalUnit() {
  28. return NSLocalizedString("U", comment: "The short unit display string for international units of insulin")
  29. } else if self == .gram() {
  30. return NSLocalizedString("g", comment: "The short unit display string for grams")
  31. } else {
  32. return String(describing: self)
  33. }
  34. }
  35. }