Skip to content

Commit e60953e

Browse files
committed
Separate logic for starting network monitor
1 parent c01069c commit e60953e

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

WooCommerce/Classes/Tools/Connectivity/ConnectivityObserver.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ import Foundation
33
/// Interface for the observing connectivity
44
///
55
protocol ConnectivityObserver {
6-
/// Starts the observer with a listener.
7-
func startObserving(listener: @escaping (ConnectivityStatus) -> Void)
6+
/// Starts the connectivity observer.
7+
func startObserving()
8+
9+
/// Updates callback block for when connectivity changes.
10+
func updateListener(_ listener: @escaping (ConnectivityStatus) -> Void)
811

912
/// Stops the observer.
1013
func stopObserving()

WooCommerce/Classes/Tools/Connectivity/DefaultConnectivityObserver.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,21 @@ final class DefaultConnectivityObserver: ConnectivityObserver {
1212
self.networkMonitor = networkMonitor
1313
}
1414

15-
func startObserving(listener: @escaping (ConnectivityStatus) -> Void) {
15+
func startObserving() {
16+
networkMonitor.start(queue: observingQueue)
17+
}
18+
19+
func updateListener(_ listener: @escaping (ConnectivityStatus) -> Void) {
20+
if networkMonitor.pathUpdateHandler == nil {
21+
startObserving()
22+
}
1623
networkMonitor.pathUpdateHandler = { [weak self] path in
1724
guard let self = self else { return }
1825
let connectivityStatus = self.connectivityStatus(from: path)
1926
DispatchQueue.main.async {
2027
listener(connectivityStatus)
2128
}
2229
}
23-
networkMonitor.start(queue: observingQueue)
2430
}
2531

2632
func stopObserving() {

0 commit comments

Comments
 (0)