Pārlūkot izejas kodu

add Network monitor

alqindiirsyam 1 gadu atpakaļ
vecāks
revīzija
03ddf17a81

+ 31 - 0
appbuilder-ios/NexilisLite/NexilisLite/Source/Callback.swift

@@ -8,6 +8,7 @@
 
 import Foundation
 import nuSDKService
+import Network
 
 class Callback : CallBack {
     var sID: String = "Callback"
@@ -20,6 +21,7 @@ class Callback : CallBack {
         if let delegate = Nexilis.shared.connectionDelegate {
             delegate.connectionStateChanged(userId: sUserID, deviceId: sDeviceID, state: bConState)
         }
+        InquiryThread.default.set(wait: nCLMConStat == 0)
         OutgoingThread.default.set(wait: nCLMConStat == 0)
     }
     
@@ -130,3 +132,32 @@ class Callback : CallBack {
     }
     
 }
+
+class NetworkMonitor {
+    static let shared = NetworkMonitor()
+    
+    private let monitor = NWPathMonitor()
+    private var isMonitoring = false
+    
+    private init() {}
+    
+    func startMonitoring() {
+        guard !isMonitoring else { return }
+        
+        monitor.pathUpdateHandler = { path in
+            //print("CONNECTION \(path.status == .satisfied)")
+            InquiryThread.default.set(wait: !(path.status == .satisfied))
+            OutgoingThread.default.set(wait: !(path.status == .satisfied))
+        }
+        
+        let queue = DispatchQueue(label: "NetworkMonitor")
+        monitor.start(queue: queue)
+        isMonitoring = true
+    }
+    
+    func stopMonitoring() {
+        guard isMonitoring else { return }
+        monitor.cancel()
+        isMonitoring = false
+    }
+}

+ 2 - 0
appbuilder-ios/NexilisLite/NexilisLite/Source/Nexilis.swift

@@ -252,6 +252,8 @@ public class Nexilis: NSObject {
                 delegate.onFailed(error: "99:Something went wrong")
             }
         }
+        NetworkMonitor.shared.startMonitoring()
+        
         OutgoingThread.default.run()
         
         InquiryThread.default.run()