in app/src/main/java/com/amazon/ivs/broadcast/ui/fragments/main/MainViewModel.kt [141:163]
override fun onError(error: BroadcastException) {
Timber.d("Error: ${error.detail} Error code: ${error.code} Error source: ${error.source}")
if (error.error == ErrorType.ERROR_DEVICE_DISCONNECTED && error.source == microphoneDevice?.urn) {
microphoneDevice?.let {
try {
session?.exchangeDevices(it, it) { microphone ->
Timber.d("Device with id ${microphoneDevice?.deviceId} reattached")
microphoneDevice = microphone.descriptor
}
} catch (e: BroadcastException) {
Timber.d("Microphone exchange exception $e")
}
}
} else if (error.error == ErrorType.ERROR_DEVICE_DISCONNECTED && microphoneDevice == null) {
launchMain {
Toast.makeText(context, "External device ${error.source} disconnected", Toast.LENGTH_SHORT)
.show()
}
} else if (error.isFatal) {
error.printStackTrace()
launchMain { errorHappened.postConsumable(Pair(error.code.toString(), error.detail)) }
}
}