MockPumpManagerSetupViewController.swift 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. //
  2. // MockPumpManagerSetupViewController.swift
  3. // LoopKitUI
  4. //
  5. // Created by Michael Pangburn on 11/20/18.
  6. // Copyright © 2018 LoopKit Authors. All rights reserved.
  7. //
  8. import UIKit
  9. import LoopKit
  10. import LoopKitUI
  11. import MockKit
  12. final class MockPumpManagerSetupViewController: UINavigationController, PumpManagerSetupViewController, CompletionNotifying {
  13. static func instantiateFromStoryboard() -> MockPumpManagerSetupViewController {
  14. return UIStoryboard(name: "MockPumpManager", bundle: Bundle(for: MockPumpManagerSetupViewController.self)).instantiateInitialViewController() as! MockPumpManagerSetupViewController
  15. }
  16. var maxBasalRateUnitsPerHour: Double?
  17. var maxBolusUnits: Double?
  18. var basalSchedule: BasalRateSchedule?
  19. let pumpManager = MockPumpManager()
  20. weak var setupDelegate: PumpManagerSetupViewControllerDelegate?
  21. weak var completionDelegate: CompletionDelegate?
  22. override public func viewDidLoad() {
  23. super.viewDidLoad()
  24. if #available(iOSApplicationExtension 13.0, iOS 13.0, *) {
  25. view.backgroundColor = .systemBackground
  26. } else {
  27. view.backgroundColor = .white
  28. }
  29. navigationBar.shadowImage = UIImage()
  30. delegate = self
  31. }
  32. func completeSetup() {
  33. setupDelegate?.pumpManagerSetupViewController(self, didSetUpPumpManager: pumpManager)
  34. completionDelegate?.completionNotifyingDidComplete(self)
  35. }
  36. public func finishedSettingsDisplay() {
  37. completionDelegate?.completionNotifyingDidComplete(self)
  38. }
  39. }
  40. extension MockPumpManagerSetupViewController: UINavigationControllerDelegate {
  41. func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
  42. switch viewController {
  43. case let vc as MockPumpManagerSettingsSetupViewController:
  44. vc.pumpManager = pumpManager
  45. default:
  46. break
  47. }
  48. // Adjust the appearance for the main setup view controllers only
  49. if let setupViewController = viewController as? SetupTableViewController {
  50. setupViewController.delegate = self
  51. navigationBar.isTranslucent = false
  52. navigationBar.shadowImage = UIImage()
  53. } else {
  54. navigationBar.isTranslucent = true
  55. navigationBar.shadowImage = nil
  56. }
  57. }
  58. }
  59. extension MockPumpManagerSetupViewController: SetupTableViewControllerDelegate {
  60. public func setupTableViewControllerCancelButtonPressed(_ viewController: SetupTableViewController) {
  61. completionDelegate?.completionNotifyingDidComplete(self)
  62. }
  63. }