Skip to content

Commit

Permalink
Merge pull request #701 from Infomaniak/fix-network-monitor
Browse files Browse the repository at this point in the history
fix: NWPathMonitor must be recreated
  • Loading branch information
Ambrdctr committed Apr 18, 2023
2 parents 14c7a40 + 0c2a7b8 commit 296dad4
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions Mail/Utils/NetworkMonitor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,15 @@ class NetworkMonitor: ObservableObject {
@Published var isConnected = true
@Published var isCellular = false

private let monitor = NWPathMonitor()
private var monitor: NWPathMonitor?
private let queue = DispatchQueue.global()

public func start() {
monitor.start(queue: queue)
monitor.pathUpdateHandler = { [weak self] path in
if monitor == nil {
monitor = NWPathMonitor()
monitor?.start(queue: queue)
}
monitor?.pathUpdateHandler = { [weak self] path in
DispatchQueue.main.async {
self?.isConnected = path.status == .satisfied
self?.isCellular = path.usesInterfaceType(.cellular)
Expand All @@ -37,6 +40,7 @@ class NetworkMonitor: ObservableObject {
}

public func stop() {
monitor.cancel()
monitor?.cancel()
monitor = nil
}
}

0 comments on commit 296dad4

Please sign in to comment.