onNewCameraSelected method

Future<void> onNewCameraSelected(
  1. CameraDescription cameraDescription
)

Implementation

Future<void> onNewCameraSelected(CameraDescription cameraDescription) async {
  isCameraLoading(true);
  final CameraController? oldController = cameraController;
  if (oldController != null) {
    cameraController = null;
    await oldController.dispose();
  }
  final CameraController cameraCtrl = CameraController(
    cameraDescription,
    ResolutionPreset.veryHigh,
    enableAudio: false,
    imageFormatGroup: ImageFormatGroup.jpeg,
  );
  cameraController = cameraCtrl;
  // If the controller is updated then update the UI.
  cameraCtrl.addListener(() {
    if (cameraCtrl.value.hasError) {
      status.value = BaseStatus(
        message: 'Camera error',
        state: AppState.failed,
      );
    }
  });
  try {
    await cameraCtrl.initialize();
    isCameraLoading(false);
  } on CameraException catch (_) {
    isCameraLoading(false);
    status.value = BaseStatus(
      message: 'No camera found',
      state: AppState.pop,
    );
  }
  update(['camera']);
}