Implementation
@override
Stream<dynamic> get onEvent {
_onEvent ??=
eventChannel.receiveBroadcastStream().distinct().map((dynamic event) {
final Map<String, dynamic> result = jsonDecode(jsonEncode(event));
debugPrint('onEvent data = ${result.toString()}');
final eventName = result['name'] as String;
final eventData = result['data'] as Map<String, dynamic>;
switch (eventName) {
case "connection_status":
return ConnectionStatus(eventData['isConnected']);
case "proposal":
return SessionProposal.fromJson(eventData);
case "session_settle":
return Session.fromJson(eventData);
case "session_request":
return SessionRequest.fromJson(eventData);
case "session_update":
return SessionUpdate.fromJson(eventData);
case "session_delete":
return SessionDelete.fromJson(eventData);
case "session_rejection":
return SessionRejection.fromJson(eventData);
case "session_response":
return SessionResponse.fromJson(eventData);
default:
break;
}
});
return _onEvent!;
}