| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- //
- // MockPumpManager+UI.swift
- // LoopKitUI
- //
- // Created by Michael Pangburn on 11/20/18.
- // Copyright © 2018 LoopKit Authors. All rights reserved.
- //
- import Foundation
- import SwiftUI
- import LoopKit
- import LoopKitUI
- import MockKit
- extension MockPumpManager: PumpManagerUI {
- private var appName: String {
- return Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as! String
- }
-
- public var smallImage: UIImage? { return UIImage(named: "Pump Simulator", in: Bundle(for: MockPumpManagerSettingsViewController.self), compatibleWith: nil) }
-
- public static func setupViewController(insulinTintColor: Color, guidanceColors: GuidanceColors, allowedInsulinTypes: [InsulinType]) -> (UIViewController & CompletionNotifying & PumpManagerSetupViewController) {
- return MockPumpManagerSetupViewController.instantiateFromStoryboard()
- }
- public func settingsViewController(insulinTintColor: Color, guidanceColors: GuidanceColors, allowedInsulinTypes: [InsulinType]) -> (UIViewController & CompletionNotifying) {
- let settings = MockPumpManagerSettingsViewController(pumpManager: self, supportedInsulinTypes: allowedInsulinTypes)
- let nav = SettingsNavigationViewController(rootViewController: settings)
- return nav
- }
-
- public func deliveryUncertaintyRecoveryViewController(insulinTintColor: Color, guidanceColors: GuidanceColors) -> (UIViewController & CompletionNotifying) {
- return DeliveryUncertaintyRecoveryViewController(appName: appName, uncertaintyStartedAt: Date()) {
- self.state.deliveryCommandsShouldTriggerUncertainDelivery = false
- self.state.deliveryIsUncertain = false
- }
- }
- public func hudProvider(insulinTintColor: Color, guidanceColors: GuidanceColors, allowedInsulinTypes: [InsulinType]) -> HUDProvider? {
- return MockHUDProvider(pumpManager: self, allowedInsulinTypes: allowedInsulinTypes)
- }
- public static func createHUDView(rawValue: HUDProvider.HUDViewRawState) -> LevelHUDView? {
- return MockHUDProvider.createHUDView(rawValue: rawValue)
- }
-
-
- }
- // MARK: - DeliveryLimitSettingsTableViewControllerSyncSource
- extension MockPumpManager {
- public func syncDeliveryLimitSettings(for viewController: DeliveryLimitSettingsTableViewController, completion: @escaping (DeliveryLimitSettingsResult) -> Void) {
- guard let maximumBasalRatePerHour = viewController.maximumBasalRatePerHour,
- let maximumBolus = viewController.maximumBolus else
- {
- completion(.failure(MockPumpManagerError.missingSettings))
- return
- }
- completion(.success(maximumBasalRatePerHour: maximumBasalRatePerHour, maximumBolus: maximumBolus))
- }
- public func syncButtonTitle(for viewController: DeliveryLimitSettingsTableViewController) -> String {
- return "Save to simulator"
- }
- public func syncButtonDetailText(for viewController: DeliveryLimitSettingsTableViewController) -> String? {
- return nil
- }
- public func deliveryLimitSettingsTableViewControllerIsReadOnly(_ viewController: DeliveryLimitSettingsTableViewController) -> Bool {
- return false
- }
- }
- // MARK: - BasalScheduleTableViewControllerSyncSource
- extension MockPumpManager {
- public func syncScheduleValues(for viewController: BasalScheduleTableViewController, completion: @escaping (SyncBasalScheduleResult<Double>) -> Void) {
- syncBasalRateSchedule(items: viewController.scheduleItems) { result in
- switch result {
- case .success(let schedule):
- completion(.success(scheduleItems: schedule.items, timeZone: schedule.timeZone))
- case .failure(let error):
- completion(.failure(error))
- }
- }
- }
- public func syncButtonTitle(for viewController: BasalScheduleTableViewController) -> String {
- return "Save to simulator"
- }
- public func syncButtonDetailText(for viewController: BasalScheduleTableViewController) -> String? {
- return nil
- }
- public func basalScheduleTableViewControllerIsReadOnly(_ viewController: BasalScheduleTableViewController) -> Bool {
- return false
- }
- }
|