onCreate method Null safety

  1. @override
void onCreate()
override

Implementation

@override
void onCreate() {
  if (!_onCreated) {
    _onCreated = true;
    messages?.listen((event) {
      TypedEvent<JanusEvent> typedEvent = TypedEvent<JanusEvent>(event: JanusEvent.fromJson(event.event), jsep: event.jsep);
      if (typedEvent.event.plugindata?.data['videocall'] == 'event' && typedEvent.event.plugindata?.data['result'] != null && typedEvent.event.plugindata?.data['result']['event'] == 'registered') {
        typedEvent.event.plugindata?.data = VideoCallRegisteredEvent.fromJson(typedEvent.event.plugindata?.data);
        _typedMessagesSink?.add(typedEvent);
      } else if (typedEvent.event.plugindata?.data['videocall'] == 'event' &&
          typedEvent.event.plugindata?.data['result'] != null &&
          typedEvent.event.plugindata?.data['result']['event'] == 'calling') {
        typedEvent.event.plugindata?.data = VideoCallCallingEvent.fromJson(typedEvent.event.plugindata?.data);
        _typedMessagesSink?.add(typedEvent);
      } else if (typedEvent.event.plugindata?.data['videocall'] == 'event' &&
          typedEvent.event.plugindata?.data['result'] != null &&
          typedEvent.event.plugindata?.data['result']['event'] == 'incomingcall') {
        typedEvent.event.plugindata?.data = VideoCallIncomingCallEvent.fromJson(typedEvent.event.plugindata?.data);
        _typedMessagesSink?.add(typedEvent);
      } else if (typedEvent.event.plugindata?.data['videocall'] == 'event' &&
          typedEvent.event.plugindata?.data['result'] != null &&
          typedEvent.event.plugindata?.data['result']['event'] == 'accepted') {
        typedEvent.event.plugindata?.data = VideoCallAcceptedEvent.fromJson(typedEvent.event.plugindata?.data);
        _typedMessagesSink?.add(typedEvent);
      } else if (typedEvent.event.plugindata?.data['videocall'] == 'event' &&
          typedEvent.event.plugindata?.data['result'] != null &&
          typedEvent.event.plugindata?.data['result']['event'] == 'hangup') {
        typedEvent.event.plugindata?.data = VideoCallHangupEvent.fromJson(typedEvent.event.plugindata?.data);
        _typedMessagesSink?.add(typedEvent);
      }
    });
  }
}