emitUIEvent function

void emitUIEvent(
  1. int contextId,
  2. Pointer<NativeBindingObject> nativeBindingObject,
  3. Event event
)

Implementation

void emitUIEvent(
    int contextId, Pointer<NativeBindingObject> nativeBindingObject, Event event) {
  if (KrakenController.getControllerOfJSContextId(contextId) == null) {
    return;
  }
  DartDispatchEvent dispatchEvent = nativeBindingObject.ref.dispatchEvent.asFunction();
  Pointer<Void> rawEvent = event.toRaw().cast<Void>();
  bool isCustomEvent = event is CustomEvent;
  Pointer<NativeString> eventTypeString = stringToNativeString(event.type);
  // @TODO: Make Event inherit BindingObject to pass value from bridge to dart.
  int propagationStopped = dispatchEvent(contextId, nativeBindingObject, eventTypeString, rawEvent, isCustomEvent ? 1 : 0);
  event.propagationStopped = propagationStopped == 1 ? true : false;
  freeNativeString(eventTypeString);
}