openCamera method
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;
}