setMessageListNative static method
设置聊天消息 - 原生平台
Implementation
static void setMessageListNative(List<Map<String, dynamic>> msgList) {
try {
Set<String> hasChangeConversationIDList = {};
Map<String, List<Map<String, dynamic>>> newConfig = Map.from(messageListNativeConfig.value);
for (Map<String, dynamic> messageItem in msgList) {
List<Map<String, dynamic>> conversationIDAboutMsgList = newConfig[messageItem['message_conv_id']] ?? [];
if (conversationIDAboutMsgList.where((find) => find['message_msg_id'] == messageItem['message_msg_id']).isEmpty) {
conversationIDAboutMsgList.add(messageItem);
conversationIDAboutMsgList.sort((a, b) {
int timeCompare = a['message_client_time'].compareTo(b['message_client_time']);
if (timeCompare != 0) return timeCompare;
int aSeq = a['message_seq'];
int bSeq = b['message_seq'];
int seqCompare = aSeq.compareTo(bSeq);
return seqCompare;
});
newConfig[messageItem['message_conv_id']] = conversationIDAboutMsgList;
hasChangeConversationIDList.add(messageItem['message_conv_id']);
}
}
if (hasChangeConversationIDList.isNotEmpty) {
messageListNativeConfig.value = newConfig;
setCatch('messageListConfig', jsonEncode(messageListNativeConfig.value));
}
} catch (_) {}
}