Proyectos de Subversion Iphone Microlearning - Inconcert

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
//
2
//  NetworkMonitor.swift
3
//  twogetskills
4
//
5
//  Created by Efrain Yanez Recanatini on 6/12/22.
6
//
7
 
8
import Network
9
import SwiftUI
10
 
11
// An enum to handle the network status
12
enum NetworkStatus: String {
13
    case connected
14
    case disconnected
15
}
16
 
17
class NetworkMonitor: ObservableObject {
18
    private let monitor = NWPathMonitor()
19
    private let queue = DispatchQueue(label: "Monitor")
20
 
21
    @Published var status : NetworkStatus = .connected
22
 
23
 
24
    init() {
25
        monitor.pathUpdateHandler = { [weak self] path in
26
            guard let self = self else { return }
27
 
28
            // Monitor runs on a background thread so we need to publish
29
            // on the main thread
30
 
31
 
32
            DispatchQueue.main.async {
33
 
34
                if path.status == .satisfied {
35
                    self.status = .connected
36
                } else {
37
                    self.status = .disconnected
38
                }
39
 
40
 
41
            }
42
 
43
 
44
        }
45
        monitor.start(queue: queue)
46
    }
47
}