fun cameraSelectionChanged()

in app/src/main/java/com/amazonaws/ivs/basicbroadcast/viewModel/MainViewModel.kt [220:247]


    fun cameraSelectionChanged(position: Int) {
        Log.d(TAG, "Camera device changed")
        if (position < context.getAvailableCameraSize()) {
            val device = context.getSelectedCamera(position)
            cameraDevice?.let {
                if (it.deviceId != device.deviceId && session != null) {
                    clearPreview.value = true
                    try {
                        session?.exchangeDevices(it, device) { camera ->
                            if (!screenCaptureEnabled) {
                                displayCameraOutput(camera)
                                cameraDevice = camera.descriptor
                            }
                        }
                    } catch (e: BroadcastException) {
                        Log.d(TAG, "Camera exchange exception $e")
                        attachCameraDevice(device)
                    }
                }
            }

            if (cameraDevice == null) {
                attachCameraDevice(device)
            }

            if (session == null) cameraDevice = device
        }
    }