saveRemoteExtraMsg method
dynamic
saveRemoteExtraMsg(
)
Implementation
saveRemoteExtraMsg(List<WKMsgExtra> list) async {
MessageDB.shared.insertMsgExtras(list);
List<String> msgIds = [];
List<String> deletedMsgIds = [];
for (var extra in list) {
msgIds.add(extra.messageID);
if (extra.isMutualDeleted == 1) {
deletedMsgIds.add(extra.messageID);
}
}
var msgList = await MessageDB.shared.queryWithMessageIds(msgIds);
for (var msg in msgList) {
for (var extra in list) {
msg.wkMsgExtra ??= WKMsgExtra();
if (msg.messageID == extra.messageID) {
msg.wkMsgExtra!.readed = extra.readed;
msg.wkMsgExtra!.readedCount = extra.readedCount;
msg.wkMsgExtra!.unreadCount = extra.unreadCount;
msg.wkMsgExtra!.revoke = extra.revoke;
msg.wkMsgExtra!.revoker = extra.revoker;
msg.wkMsgExtra!.isMutualDeleted = extra.isMutualDeleted;
msg.wkMsgExtra!.editedAt = extra.editedAt;
msg.wkMsgExtra!.contentEdit = extra.contentEdit;
msg.wkMsgExtra!.extraVersion = extra.extraVersion;
if (extra.contentEdit != '') {
dynamic contentJson = jsonDecode(extra.contentEdit);
msg.wkMsgExtra!.messageContent = WKIM.shared.messageManager
.getMessageModel(WkMessageContentType.text, contentJson);
}
break;
}
}
setRefreshMsg(msg);
}
if (deletedMsgIds.isNotEmpty) {
MessageDB.shared.deleteWithMessageIDs(deletedMsgIds);
}
}