Skip to content

Commit 436a96f

Browse files
committed
Add getter isConnectivityAvailable for ConnectivityObserver and separate logic for starting network monitor
1 parent f995896 commit 436a96f

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

WooCommerce/Classes/Tools/Connectivity/ConnectivityObserver.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@ 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+
/// Getter for current state of the connectivity.
7+
var isConnectivityAvailable: Bool { get }
8+
9+
/// Starts the observer.
10+
func startObserving()
11+
12+
/// Updates the listener for the connectivity observer.
13+
func updateListener(_ listener: @escaping (ConnectivityStatus) -> Void)
814

915
/// Stops the observer.
1016
func stopObserving()

WooCommerce/Classes/Tools/Connectivity/DefaultConnectivityObserver.swift

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,30 @@ final class DefaultConnectivityObserver: ConnectivityObserver {
88
private let networkMonitor: NWPathMonitor
99
private let observingQueue: DispatchQueue = .global(qos: .background)
1010

11+
var isConnectivityAvailable: Bool {
12+
if case .reachable = connectivityStatus(from: networkMonitor.currentPath) {
13+
return true
14+
}
15+
return false
16+
}
17+
1118
init(networkMonitor: NWPathMonitor = .init()) {
1219
self.networkMonitor = networkMonitor
20+
startObserving()
21+
}
22+
23+
func startObserving() {
24+
networkMonitor.start(queue: observingQueue)
1325
}
1426

15-
func startObserving(listener: @escaping (ConnectivityStatus) -> Void) {
27+
func updateListener(_ listener: @escaping (ConnectivityStatus) -> Void) {
1628
networkMonitor.pathUpdateHandler = { [weak self] path in
1729
guard let self = self else { return }
1830
let connectivityStatus = self.connectivityStatus(from: path)
1931
DispatchQueue.main.async {
2032
listener(connectivityStatus)
2133
}
2234
}
23-
networkMonitor.start(queue: observingQueue)
2435
}
2536

2637
func stopObserving() {

0 commit comments

Comments
 (0)