setMessageList static method
设置聊天消息
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 (_) {}
}