``` private fun openCameraObservable(cameraManager...
# rx
u
Copy code
private fun openCameraObservable(cameraManager: CameraManager, cameraId: String): Observable<CameraOpenEvent> {
        return Observable.create { emitter ->
            try {
                var _camera: CameraDevice? = null

                cameraManager.openCamera(cameraId, object : CameraDevice.StateCallback() {

                    override fun onOpened(camera: CameraDevice) {
                        _camera = camera <-------------------- THIS
                        if (!emitter.isDisposed) emitter.onNext(CameraOpenEvent.Opened(camera))
                    }

                  ...
                }, null)

                emitter.setCancellable { _camera?.close() }

            } catch (ex: CameraAccessException) {
                if (!emitter.isDisposed) emitter.onError(ex)
            }
        }
    }