grabOverlayOfflineData static method

TaskHandler? grabOverlayOfflineData({
  1. required int uid,
  2. required void onComplete(
    1. GemError error
    ),
})

Grab latest overlay offline data over all existing offline maps area

Parameters

* **IN** *uid* The overlay uid
  • onComplete Will be invoked when the overlay grabbing operation is completed, providing the error code.
  • Will call with error code GemError.success on success
  • Will call with error code GemError.activation if the overlay offline data grabber is not enabled on overlay uid

Returns

  • Associated TaskHandler for this operation if the overlay offline data grabbing can be started otherwise null.

Implementation

static TaskHandler? grabOverlayOfflineData({
  required final int uid,
  required final void Function(GemError error) onComplete,
}) {
  final EventDrivenProgressListener progListener =
      EventDrivenProgressListener();

  progListener.registerOnCompleteWithData((
    final int err,
    final String hint,
    final Map<dynamic, dynamic> json,
  ) {
    GemKitPlatform.instance.unregisterEventHandler(progListener.id);
    onComplete(GemErrorExtension.fromCode(err));
  });

  GemKitPlatform.instance.registerEventHandler(progListener.id, progListener);

  final OperationResult resultString = staticMethod(
    'OverlayService',
    'grabOverlayOfflineData',
    args: <String, dynamic>{
      'uid': uid,
      'listener': progListener.id,
    },
  );

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

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

  return TaskHandlerImpl(progListener.id);
}