shareFilesWithResult method
Summons the platform's share sheet to share multiple files and returns the result.
Implementation
@override
Future<ShareResult> shareFilesWithResult(
List<String> paths, {
List<String>? mimeTypes,
String? subject,
String? text,
Rect? sharePositionOrigin,
}) async {
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;
}
final result =
await channel.invokeMethod<String>('shareFilesWithResult', params) ??
'dev.fluttercommunity.plus/share/unavailable';
return ShareResult(result, _statusFromResult(result));
}