cameraImage method

Future<List<NsgFilePickerObject>> cameraImage({
  1. bool oneFile = false,
})

Capture a photo

Implementation

Future<List<NsgFilePickerObject>> cameraImage({bool oneFile = false}) async {
  List<NsgFilePickerObject> objectsList = [];
  String? error;

  List<XFile> result = [];

  if (mobileSelectionType == NsgFilePickerObjectType.image) {
    var image = await ImagePicker().pickImage(source: ImageSource.camera, imageQuality: imageQuality, maxWidth: imageMaxWidth, maxHeight: imageMaxHeight);
    if (image != null) {
      result = [image];
    }
  } else if (mobileSelectionType == NsgFilePickerObjectType.video) {
    var video = await ImagePicker().pickVideo(source: ImageSource.camera);
    //TODO: Не работает пикер видео!
    if (video != null) {
      result = [video];
    }
  }

  /// Если стоит ограничение на 1 файл
  if (oneFile) {
    if (result.isNotEmpty) result = [result[0]];
    objectsList.clear();
  }
  for (var element in result) {
    var fileType = getFileTypeByExtension(extension(element.path).replaceAll('.', ''));

    if (fileType == NsgFilePickerObjectType.image) {
      objectsList.add(
        NsgFilePickerObject(
          isNew: true,
          image: Image.file(File(element.path)),
          description: basenameWithoutExtension(element.path),
          fileType: fileType,
          fileContent: await element.readAsBytes(),
          filePath: element.path,
          eSourceType: ESourceType.camera,
        ),
      );
    } else if (fileType != NsgFilePickerObjectType.unknown) {
      objectsList.add(
        NsgFilePickerObject(
          isNew: true,
          file: File(element.path),
          image: null,
          fileContent: await element.readAsBytes(),
          description: basenameWithoutExtension(element.path),
          fileType: fileType,
          filePath: element.path,
        ),
      );
    } else {
      error = '${fileType.toString().toUpperCase()} - ${tran.unsupported_format}';
    }
  }

  if (error == null) {
    return (objectsList);
  } else {
    throw Exception(error);
  }
}