in IoT-Sample/Swift/IoTSampleSwift/ConnectionViewController.swift [39:98]
func mqttEventCallback( _ status: AWSIoTMQTTStatus ) {
DispatchQueue.main.async {
let tabBarViewController = self.tabBarController as! IoTSampleTabBarController
print("connection status = \(status.rawValue)")
switch status {
case .connecting:
tabBarViewController.mqttStatus = "Connecting..."
print( tabBarViewController.mqttStatus )
self.logTextView.text = tabBarViewController.mqttStatus
case .connected:
tabBarViewController.mqttStatus = "Connected"
print( tabBarViewController.mqttStatus )
self.connectButton.setTitle( "Disconnect \(self.IOT_CERT)", for:UIControl.State())
self.activityIndicatorView.stopAnimating()
self.connected = true
self.connectButton.isEnabled = true
let uuid = UUID().uuidString;
let defaults = UserDefaults.standard
let certificateId = defaults.string( forKey: "certificateId")
self.logTextView.text = "Using certificate:\n\(certificateId!)\n\n\nClient ID:\n\(uuid)"
tabBarViewController.viewControllers = [ self, self.publishViewController, self.subscribeViewController ]
case .disconnected:
tabBarViewController.mqttStatus = "Disconnected"
print( tabBarViewController.mqttStatus )
self.activityIndicatorView.stopAnimating()
self.logTextView.text = nil
case .connectionRefused:
tabBarViewController.mqttStatus = "Connection Refused"
print( tabBarViewController.mqttStatus )
self.activityIndicatorView.stopAnimating()
self.logTextView.text = tabBarViewController.mqttStatus
case .connectionError:
tabBarViewController.mqttStatus = "Connection Error"
print( tabBarViewController.mqttStatus )
self.activityIndicatorView.stopAnimating()
self.logTextView.text = tabBarViewController.mqttStatus
case .protocolError:
tabBarViewController.mqttStatus = "Protocol Error"
print( tabBarViewController.mqttStatus )
self.activityIndicatorView.stopAnimating()
self.logTextView.text = tabBarViewController.mqttStatus
default:
tabBarViewController.mqttStatus = "Unknown State"
print("unknown state: \(status.rawValue)")
self.activityIndicatorView.stopAnimating()
self.logTextView.text = tabBarViewController.mqttStatus
}
NotificationCenter.default.post( name: Notification.Name(rawValue: "connectionStatusChanged"), object: self )
}
}