Procházet zdrojové kódy

Listen network status updates

Ivan Valkou před 5 roky
rodič
revize
cd67a80d7c

+ 3 - 1
FreeAPS/Sources/Modules/AutotuneConfig/AutotuneConfigViewModel.swift

@@ -11,7 +11,9 @@ extension AutotuneConfig {
         @Published var publishedDate = Date()
         @Persisted(key: "lastAutotuneDate") private var lastAutotuneDate = Date() {
             didSet {
-                publishedDate = lastAutotuneDate
+                DispatchQueue.main.async {
+                    self.publishedDate = self.lastAutotuneDate
+                }
             }
         }
 

+ 9 - 0
FreeAPS/Sources/Services/Network/NightscoutManager.swift

@@ -56,6 +56,9 @@ final class BaseNightscoutManager: NightscoutManager, Injectable {
         broadcaster.register(PumpHistoryObserver.self, observer: self)
         broadcaster.register(CarbsObserver.self, observer: self)
         broadcaster.register(TempTargetsObserver.self, observer: self)
+        _ = reachabilityManager.startListening(onQueue: processQueue) { status in
+            debug(.nightscout, "Network status: \(status)")
+        }
     }
 
     var cgmURL: URL? {
@@ -73,6 +76,12 @@ final class BaseNightscoutManager: NightscoutManager, Injectable {
         let useLocal = (settingsManager.settings.useLocalGlucoseSource ?? false) && settingsManager.settings
             .localGlucosePort != nil
 
+        if !useLocal {
+            guard isNetworkReachable else {
+                return Just([]).eraseToAnyPublisher()
+            }
+        }
+
         let maybeNightscout = useLocal
             ? NightscoutAPI(url: URL(string: "http://127.0.0.1:\(settingsManager.settings.localGlucosePort!)")!)
             : nightscoutAPI