override fun onError()

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)) }
                }
            }