ReachabilityManager.swift 865 B

12345678910111213141516171819202122232425262728
  1. import Alamofire
  2. import Foundation
  3. typealias ReachabilityStatus = NetworkReachabilityManager.NetworkReachabilityStatus
  4. typealias Listener = NetworkReachabilityManager.Listener
  5. protocol ReachabilityManager: AnyObject {
  6. var status: ReachabilityStatus { get }
  7. var isReachable: Bool { get }
  8. func startListening(onQueue: DispatchQueue, onUpdatePerforming: @escaping Listener) -> Bool
  9. func stopListening()
  10. }
  11. extension NetworkReachabilityManager: ReachabilityManager {}
  12. extension ReachabilityStatus: CustomStringConvertible {
  13. public var description: String {
  14. switch self {
  15. case .unknown:
  16. return "unknown"
  17. case .notReachable:
  18. return "NOT reachable"
  19. case let .reachable(connectionType):
  20. return "reachable by " + (connectionType == .cellular ? "Cellular" : "WiFi")
  21. }
  22. }
  23. }