Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

//
//  NetworkMonitor.swift
//  twogetskills
//
//  Created by Efrain Yanez Recanatini on 6/12/22.
//

import Network
import SwiftUI

// An enum to handle the network status
enum NetworkStatus: String {
    case connected
    case disconnected
}

class NetworkMonitor: ObservableObject {
    private let monitor = NWPathMonitor()
    private let queue = DispatchQueue(label: "Monitor")

    @Published var status : NetworkStatus = .connected
    //@Published var isConnected : Bool = true
   // @Published var isDisconnected : Bool = true
    
    init() {
        monitor.pathUpdateHandler = { [weak self] path in
            guard let self = self else { return }

            // Monitor runs on a background thread so we need to publish
            // on the main thread
        
            DispatchQueue.main.async {
        
                if path.status == .satisfied {
                    self.status = .connected
                    //self.isConnected = true
                    //self.isDisconnected = false
                } else {
                    self.status = .disconnected
                    //self.isConnected = false
                    //self.isDisconnected = true
                }

            }
           
        }
        monitor.start(queue: queue)
    }
}