getMedia method
Injects a file input, and returns a list of XFile media that the user selected locally.
Implementation
@override
Future<List<XFile>> getMedia({
required MediaOptions options,
}) async {
final List<XFile> images = await getFiles(
accept: '$_kAcceptImageMimeType,$_kAcceptVideoMimeType',
multiple: options.allowMultiple,
);
final Iterable<Future<XFile>> resized = images.map((XFile media) {
if (mime.lookupMimeType(media.path)?.startsWith('image/') ?? false) {
return _imageResizer.resizeImageIfNeeded(
media,
options.imageOptions.maxWidth,
options.imageOptions.maxHeight,
options.imageOptions.imageQuality,
);
}
return Future<XFile>.value(media);
});
return Future.wait<XFile>(resized);
}