getMedia method

  1. @override
Future<List<XFile>> getMedia({
  1. required MediaOptions options,
})

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