openCamera method

Future<LikkEntity?> openCamera(
  1. BuildContext context
)

Open camera from GalleryView

Implementation

Future<LikkEntity?> openCamera(BuildContext context) async {
  _accessCamera = true;
  LikkEntity? entity;

  final route = SlideTransitionPageRoute<LikkEntity>(
    builder: const CameraView(),
    begainHorizontal: true,
    transitionDuration: const Duration(milliseconds: 300),
  );

  if (fullScreenMode) {
    entity = await Navigator.of(context).pushReplacement(route);
  } else {
    entity = await Navigator.of(context).push(route);
    _closeOnCameraSelect();
  }

  final entities = [...value.selectedEntities];
  if (entity == null) {
    _accessCamera = false;
    _completer.complete(entities);
    return null;
  }

  if (setting.enableCropper && entity.entity.type == AssetType.image) {
    // ignore: use_build_context_synchronously
    final editedEntity = await openCropper(context, entity);
    if (editedEntity != null) {
      entity = editedEntity;
    } else {
      return null;
    }
  }
  if (entities.length == setting.maximum) {
    entities.removeAt(0);
  }
  entities.add(entity);
  _onChanged?.call(entity, false);
  _onSubmitted?.call(entities);
  _accessCamera = false;
  _completer.complete(entities);
  return entity;
}