receiver method

  1. @override
dynamic receiver(
  1. String method,
  2. dynamic arguments
)
override

Receives a native callback and dispatches it when it matches the active request.

Implementation

@override
dynamic receiver(String method, dynamic arguments) {
  if (!docking || subscribers.isEmpty || !subscribers.containsKey(method)) {
    return false;
  }

  final requestId = requestIdFrom(arguments);
  if (!isActiveRequestId(requestId)) {
    onRequestIgnored(method, arguments);
    return false;
  }

  if (isTerminalResponse(method)) {
    completeRequest(requestId);
  }
  dynamic data = responseDataFrom(arguments);
  onResponse(requestId, data);
  Function.apply(subscribers[method]!, [data]);
  return true;
}