onCreate method Null safety
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['videoroom'] == 'joined') {
typedEvent.event.plugindata?.data = VideoRoomJoinedEvent.fromJson(typedEvent.event.plugindata?.data);
_typedMessagesSink?.add(typedEvent);
} else if (typedEvent.event.plugindata?.data['videoroom'] == 'event' && typedEvent.event.plugindata?.data['configured'] == "ok") {
typedEvent.event.plugindata?.data = VideoRoomConfigured.fromJson(typedEvent.event.plugindata?.data);
_typedMessagesSink?.add(typedEvent);
} else if (typedEvent.event.plugindata?.data['videoroom'] == 'event' && typedEvent.event.plugindata?.data['publishers'] != null) {
typedEvent.event.plugindata?.data = VideoRoomNewPublisherEvent.fromJson(typedEvent.event.plugindata?.data);
_typedMessagesSink?.add(typedEvent);
} else if (typedEvent.event.plugindata?.data['videoroom'] == 'event' &&
typedEvent.event.plugindata?.data['leaving'] != null &&
typedEvent.event.plugindata?.data['leaving'].runtimeType == int) {
typedEvent.event.plugindata?.data = VideoRoomLeavingEvent.fromJson(typedEvent.event.plugindata?.data);
_typedMessagesSink?.add(typedEvent);
} else if (typedEvent.event.plugindata?.data['videoroom'] == 'attached' || typedEvent.event.plugindata?.data['streams'] != null) {
typedEvent.event.plugindata?.data = VideoRoomAttachedEvent.fromJson(typedEvent.event.plugindata?.data);
_typedMessagesSink?.add(typedEvent);
}
});
}
}