confirmReport static method

EventHandler? confirmReport(
  1. OverlayItem item, {
  2. void onComplete(
    1. GemError error
    )?,
})

Provides positive feedback (upvote) for a report.

Confirms that a reported event is accurate and still in effect, increasing the report's score value in OverlayItem.previewData.

Each user can confirm or deny a report only once. The operation executes asynchronously with result delivered via onComplete callback.

Parameters

  • item: The social report OverlayItem to confirm. Must be a valid social report overlay item obtained from map selection, search, or alarm notification.
  • onComplete: Callback invoked when operation completes or fails. Called with:

Returns

  • EventHandler if operation was successfully initiated (use with cancel).
  • null if operation could not be started.

See also:

  • denyReport - Provides negative feedback for inaccurate reports.
  • addComment - Adds contextual comment to report.
  • AlarmService - Provides notifications about incoming social reports.

Implementation

static EventHandler? confirmReport(
  final OverlayItem item, {
  final void Function(GemError error)? onComplete,
}) {
  final EventDrivenProgressListener progListener =
      EventDrivenProgressListener();
  GemKitPlatform.instance.registerEventHandler(progListener.id, progListener);

  progListener.registerOnCompleteWithData((final int err, _, _) {
    GemKitPlatform.instance.unregisterEventHandler(progListener.id);
    onComplete?.call(GemErrorExtension.fromCode(err));
  });

  final OperationResult result = staticMethod(
    'SocialOverlay',
    'confirmReport',
    args: <String, dynamic>{
      'item': item.pointerId,
      'listener': progListener.id,
    },
  );

  final GemError errorCode = GemErrorExtension.fromCode(result['result']);

  if (errorCode != GemError.scheduled) {
    GemKitPlatform.instance.unregisterEventHandler(progListener.id);
    onComplete?.call(errorCode);
    return null;
  }

  return progListener;
}