cameraImage method
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);
}
}