File tree Expand file tree Collapse file tree 2 files changed +21
-4
lines changed
WooCommerce/Classes/Tools/Connectivity Expand file tree Collapse file tree 2 files changed +21
-4
lines changed Original file line number Diff line number Diff line change @@ -3,8 +3,14 @@ import Foundation
33/// Interface for the observing connectivity
44///
55protocol 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( )
Original file line number Diff line number Diff 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( ) {
You can’t perform that action at this time.
0 commit comments