share method
User-initiated sharing of a ReportEvent (e.g., via share sheet).
Default is a no-op; override in reporters that support manual sharing.
Implementation
@override
Future<bool> share(ReportEvent event) async {
try {
final name = fileNameBuilder?.call(event) ?? defaultFileName(event);
final file = await generateFile(event, fileName: name);
final subject = _buildSubject(event);
final body = textBuilder?.call(event) ?? _defaultBody(event);
// Updated line:
await SharePlus.instance.share(
ShareParams(
files: [XFile(file.path, mimeType: 'application/json')],
subject: subject,
text: body,
// Use fileNameOverrides for robustness, as the `name`
// property on XFile constructor is not always respected.
fileNameOverrides: [name],
),
);
return true;
} catch (_) {
// Nothing more we can do if the system share fails.
return false;
}
}