Просмотр исходного кода

display the pump settings view when tap on a error message

(cherry picked from commit 5413c3f8cefb42c26ddfb124abcf64598aced0d6)
avouspierre 3 лет назад
Родитель
Сommit
31e992f588

+ 1 - 1
FreeAPS/Sources/APS/DeviceDataManager.swift

@@ -466,7 +466,7 @@ extension BaseDeviceDataManager: DeviceManagerDelegate {
             let typeMessage: MessageType
             let alertUp = alert.identifier.alertIdentifier.uppercased()
             if alertUp.contains("FAULT") || alertUp.contains("ERROR") {
-                typeMessage = .error
+                typeMessage = .errorPump
             } else {
                 typeMessage = .warning
             }

+ 1 - 0
FreeAPS/Sources/Modules/Base/BaseProvider.swift

@@ -10,6 +10,7 @@ class BaseProvider: Provider, Injectable {
     var lifetime = Lifetime()
     @Injected() var deviceManager: DeviceDataManager!
     @Injected() var storage: FileStorage!
+    @Injected() var bluetoothProvider: BluetoothStateManager!
 
     required init(resolver: Resolver) {
         injectServices(resolver)

+ 23 - 2
FreeAPS/Sources/Modules/Main/MainStateModel.swift

@@ -1,3 +1,4 @@
+import LoopKitUI
 import SwiftMessages
 import SwiftUI
 import Swinject
@@ -56,14 +57,27 @@ extension Main {
                         config.duration = .forever
                         view.button?.setImage(Icon.warningSubtle.image, for: .normal)
                         titleContent = NSLocalizedString("Warning", comment: "Warning title")
-                        view.buttonTapHandler = { _ in SwiftMessages.hide() }
-                    case .error:
+                        view.buttonTapHandler = { _ in
+                            SwiftMessages.hide()
+                        }
+                    case .errorPump:
                         view.configureTheme(.error, iconStyle: .subtle)
                         config.duration = .forever
                         view.button?.setImage(Icon.errorSubtle.image, for: .normal)
                         titleContent = NSLocalizedString("Error", comment: "Error title")
                         view.buttonTapHandler = { _ in
                             SwiftMessages.hide()
+                            // display the pump configuration immediatly
+                            if let pump = self.provider.deviceManager.pumpManager,
+                               let bluetooth = self.provider.bluetoothProvider
+                            {
+                                let view = PumpConfig.PumpSettingsView(
+                                    pumpManager: pump,
+                                    bluetoothManager: bluetooth,
+                                    completionDelegate: self
+                                ).asAny()
+                                self.router.mainSecondaryModalView.send(view)
+                            }
                         }
                     }
 
@@ -92,3 +106,10 @@ extension Main {
         }
     }
 }
+
+extension Main.StateModel: CompletionDelegate {
+    func completionNotifyingDidComplete(_: CompletionNotifying) {
+        // close the window
+        router.mainSecondaryModalView.send(nil)
+    }
+}

+ 1 - 1
FreeAPS/Sources/Router/Router.swift

@@ -5,7 +5,7 @@ import Swinject
 enum MessageType {
     case info
     case warning
-    case error
+    case errorPump
 }
 
 struct MessageContent {