Event.fromJson constructor
Get a State event from a table row or from the event stream.
Implementation
factory Event.fromJson(Map<String, dynamic> jsonPayload, Room room) {
final content = Event.getMapFromPayload(jsonPayload['content']);
final unsigned = Event.getMapFromPayload(jsonPayload['unsigned']);
final prevContent = Event.getMapFromPayload(jsonPayload['prev_content']);
final originalSource = Event.getMapFromPayload(
jsonPayload['original_source'],
);
return Event(
status: eventStatusFromInt(
jsonPayload['status'] ??
unsigned[messageSendingStatusKey] ??
defaultStatus.intValue,
),
stateKey: jsonPayload['state_key'],
prevContent: prevContent,
content: content,
type: jsonPayload['type'],
eventId: jsonPayload['event_id'] ?? '',
senderId: jsonPayload['sender'],
originServerTs: DateTime.fromMillisecondsSinceEpoch(
jsonPayload['origin_server_ts'] ?? 0,
),
unsigned: unsigned,
room: room,
redacts: jsonPayload['redacts'],
originalSource: originalSource.isEmpty
? null
: MatrixEvent.fromJson(originalSource),
);
}