share method

  1. @override
Future<bool> share(
  1. ReportEvent event
)
override

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