decode method
Implementation
@override
void decode(MessagePayload? payload) {
super.decode(payload);
title = payload?.content;
messages = [];
Map<dynamic, dynamic> map =
json.decode(utf8.decode(payload?.binaryContent ?? []));
List<dynamic> ms = map['ms'];
for (int i = 0; i < ms.length; ++i) {
Map map = ms[i];
Message msg = Message();
msg.messageUid = map['uid'];
msg.conversation = Conversation();
msg.conversation!.conversationType = ConversationType.values[map['type']];
msg.conversation!.target = map['target'];
msg.conversation!.line = map['line'];
msg.fromUser = map['from'];
msg.toUsers = map['tos'];
msg.direction = MessageDirection.MessageDirection_Send;
if (map['direction'] != null) {
msg.direction = MessageDirection.values[map['direction']];
}
msg.status = MessageStatus.values[map['status']];
msg.serverTime = map['serverTime'];
MessagePayload payload = MessagePayload();
payload.contentType = map['ctype'];
payload.searchableContent = map['csc'];
payload.pushContent = map['cpc'];
payload.pushData = map['cpd'];
payload.content = map['cc'];
if (map['cbc'] != null) {
payload.binaryContent = const Base64Decoder().convert(map['cbc']);
}
payload.mentionedType = map['cmt'];
payload.mentionedTargets = map['cmts'];
payload.extra = map['ce'];
payload.mediaType = MediaType.values[map['mt']];
payload.remoteMediaUrl = map['mru'];
msg.content = WfImClient.decodeMessageContent(payload);
messages.add(msg);
}
}