requestWikiImageInfo method

ProgressListener? requestWikiImageInfo({
  1. required int imageIndex,
  2. required void onComplete(
    1. GemError error,
    2. String? imageInfo
    ),
})

Get info on one Wikipedia image.

Parameters

  • IN imageId The image index
  • IN onComplete Callback to be called when the request is completed

Returns

  • ProgressListener for the operation progress if it could be started, null otherwise

Throws

  • An exception if it fails

Implementation

ProgressListener? requestWikiImageInfo({
  required int imageIndex,
  required void Function(GemError error, String? imageInfo) onComplete,
}) {
  final StringHolder result = StringHolder();
  final EventDrivenProgressListener listener = EventDrivenProgressListener();
  GemKitPlatform.instance.registerEventHandler(listener.id, listener);

  listener.registerOnCompleteWithDataCallback((
    final int err,
    final String hint,
    final Map<dynamic, dynamic> json,
  ) {
    GemKitPlatform.instance.unregisterEventHandler(listener.id);
    if (err == 0) {
      onComplete(GemErrorExtension.fromCode(err), result.value);
    } else {
      onComplete(
        GemErrorExtension.fromCode(err),
        null,
      );
    }
    result.dispose();
  });

  objectMethod(
    _pointerId,
    'ExternalInfo',
    'requestWikiImageInfo',
    args: <String, dynamic>{
      'progressListener': listener.id,
      'nImageIdx': imageIndex,
      'strImageInfo': result.pointerId,
    },
  );

  final GemError err = ApiErrorService.apiError;
  if (err != GemError.success) {
    GemKitPlatform.instance.unregisterEventHandler(listener.id);
    onComplete(err, null);
    return null;
  }

  return listener;
}