shareFiles method

  1. @override
Future<void> shareFiles(
  1. List<String> paths, {
  2. List<String>? mimeTypes,
  3. String? subject,
  4. String? text,
  5. Rect? sharePositionOrigin,
})
override

Summons the platform's share sheet to share multiple files.

Implementation

@override
Future<void> shareFiles(
  List<String> paths, {
  List<String>? mimeTypes,
  String? subject,
  String? text,
  Rect? sharePositionOrigin,
}) {
  assert(paths.isNotEmpty);
  assert(paths.every((element) => element.isNotEmpty));
  final params = <String, dynamic>{
    'paths': paths,
    'mimeTypes': mimeTypes ??
        paths.map((String path) => _mimeTypeForPath(path)).toList(),
  };

  if (subject != null) params['subject'] = subject;
  if (text != null) params['text'] = text;

  if (sharePositionOrigin != null) {
    params['originX'] = sharePositionOrigin.left;
    params['originY'] = sharePositionOrigin.top;
    params['originWidth'] = sharePositionOrigin.width;
    params['originHeight'] = sharePositionOrigin.height;
  }

  return channel.invokeMethod('shareFiles', params);
}