ursus
09/05/2018, 3:40 AMprivate 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)
}
}
}