encode method
Implementation
@override
Future<MessagePayload> encode() async {
MessagePayload payload = await super.encode();
payload.content = title;
List<Map> ms = [];
for (int i = 0; i < messages.length; ++i) {
Message msg = messages.elementAt(i);
Map map = Map();
if (msg.messageUid! > 0) {
map['uid'] = msg.messageUid;
}
map['type'] = msg.conversation!.conversationType.index;
map['target'] = msg.conversation!.target;
map['line'] = msg.conversation!.line;
map['from'] = msg.fromUser;
if (msg.toUsers != null && msg.toUsers!.isNotEmpty) {
map['tos'] = msg.toUsers;
}
map['direction'] = msg.direction!.index;
map['status'] = msg.status!.index;
map['serverTime'] = msg.serverTime;
MessagePayload payload = await msg.content!.encode();
map['ctype'] = payload.contentType;
map['csc'] = payload.searchableContent;
map['cpc'] = payload.pushContent;
map['cpd'] = payload.pushData;
map['cc'] = payload.content;
if (payload.binaryContent != null) {
map['cbc'] = Base64Encoder().convert(payload.binaryContent!);
}
map['cmt'] = payload.mentionedType;
if (payload.mentionedTargets != null &&
payload.mentionedTargets!.isNotEmpty) {
map['cmts'] = payload.mentionedTargets;
}
map['ce'] = payload.extra;
map['mt'] = payload.mediaType.index;
if (payload.remoteMediaUrl != null) {
map['mru'] = payload.remoteMediaUrl;
}
ms.add(map);
}
payload.binaryContent = utf8.encode(json.encode({'ms': ms})) as Uint8List?;
return payload;
}