saveRemoteExtraMsg method

dynamic saveRemoteExtraMsg(
  1. List<WKMsgExtra> list
)

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);
  }
}