PumpModel.swift 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //
  2. // PumpModel.swift
  3. // MinimedUI
  4. //
  5. // Copyright © 2018 LoopKit Authors. All rights reserved.
  6. //
  7. import UIKit
  8. import MinimedKit
  9. extension UIImage {
  10. static func pumpImage(in color: PumpColor?, isLargerModel: Bool, isSmallImage: Bool) -> UIImage {
  11. var nameComponents = [String]()
  12. nameComponents.append(isLargerModel ? "7xx" : "5xx")
  13. if isSmallImage {
  14. nameComponents.append("Small")
  15. }
  16. nameComponents.append({ () -> String in
  17. switch color {
  18. case .blue?:
  19. return "Blue"
  20. case .clear?:
  21. return "Clear"
  22. case .purple?:
  23. return "Purple"
  24. case .smoke?:
  25. return "Smoke"
  26. case .pink?:
  27. return "Pink"
  28. case .none:
  29. return "Outline"
  30. }
  31. }())
  32. let name = nameComponents.joined(separator: " ")
  33. return UIImage(named: name, in: Bundle(for: MinimedPumpSettingsViewModel.self), compatibleWith: nil)!
  34. }
  35. }
  36. extension PumpModel {
  37. func largeImage(in color: PumpColor?) -> UIImage {
  38. return UIImage.pumpImage(in: color, isLargerModel: reservoirCapacity > 200, isSmallImage: false)
  39. }
  40. func smallImage(in color: PumpColor?) -> UIImage {
  41. return UIImage.pumpImage(in: color, isLargerModel: reservoirCapacity > 200, isSmallImage: true)
  42. }
  43. }
  44. extension MinimedPumpManagerState {
  45. var largePumpImage: UIImage {
  46. return UIImage.pumpImage(in: pumpColor, isLargerModel: pumpModel.reservoirCapacity > 200, isSmallImage: false)
  47. }
  48. var smallPumpImage: UIImage {
  49. return UIImage.pumpImage(in: pumpColor, isLargerModel: pumpModel.reservoirCapacity > 200, isSmallImage: true)
  50. }
  51. }