setMessageList static method

void setMessageList(
  1. List<MessageItemEntity> msgList
)

设置聊天消息

Implementation

static void setMessageList(List<MessageItemEntity> msgList) {
  try {
    Set<String> hasChangeConversationIDList = {};
    Map<String, List<MessageItemEntity>> newConfig = Map.from(messageListConfig.value);
    for (MessageItemEntity messageItem in msgList) {
      List<MessageItemEntity> conversationIDAboutMsgList = newConfig[messageItem.conversationID] ?? [];
      if (conversationIDAboutMsgList.where((find) => find.iD == messageItem.iD).isEmpty) {
        conversationIDAboutMsgList.add(messageItem);
        conversationIDAboutMsgList.sort((a, b) {
          int timeCompare = a.time.compareTo(b.time);
          if (timeCompare != 0) return timeCompare;

          int aSeq = int.tryParse(a.sequence.toString()) ?? 0;
          int bSeq = int.tryParse(b.sequence.toString()) ?? 0;
          int seqCompare = aSeq.compareTo(bSeq);
          return seqCompare;
        });
        newConfig[messageItem.conversationID] = conversationIDAboutMsgList;
        hasChangeConversationIDList.add(messageItem.conversationID);
      }
    }
    if (hasChangeConversationIDList.isNotEmpty) {
      messageListConfig.value = newConfig;
      setCatch('messageListConfig', jsonEncode(messageListConfig.value));
    }
  } catch (_) {}
}