convertToUIMessage static method
MessageInfo
convertToUIMessage(
- V2TimMessage imMessage
)
Implementation
static MessageInfo convertToUIMessage(V2TimMessage imMessage) {
MessageInfo message = MessageInfo();
message.msgID = imMessage.msgID ?? "";
message.status = convertToUIMessageStatus(imMessage);
MessageSenderInfo sender = MessageSenderInfo();
sender.userID = imMessage.sender ?? "";
sender.nickname = imMessage.nickName;
sender.avatarURL = imMessage.faceUrl;
sender.friendRemark = imMessage.friendRemark;
sender.nameCard = imMessage.nameCard;
message.from = sender;
message.isSentBySelf = imMessage.isSelf ?? false;
message.to =
(imMessage.userID != null && imMessage.userID!.isNotEmpty) ? imMessage.userID! : (imMessage.groupID ?? '');
message.conversationType = (imMessage.groupID != null && imMessage.groupID!.isNotEmpty)
? ConversationType.group
: (imMessage.userID != null && imMessage.userID!.isNotEmpty)
? ConversationType.c2c
: ConversationType.unknown;
message.timestamp = imMessage.timestamp;
message.sequence = imMessage.seq != null ? int.tryParse(imMessage.seq!) : null;
message.needReadReceipt = imMessage.needReadReceipt ?? false;
message.isExtensionEnabled = imMessage.isSupportMessageExtension ?? false;
message.atUserList = imMessage.groupAtUserList ?? [];
message.messageType = getMessageType(imMessage);
message.messagePayload = getMessagePayload(imMessage);
// For revoked messages, set revokerInfo/revokeReason on the MessageInfo
if (message.status == MessageStatus.revoked) {
applyRevokeInfo(message, imMessage, null, null);
}
message.rawMessage = imMessage;
final v2QuoteInfo = imMessage.quoteInfo;
if (v2QuoteInfo != null && (v2QuoteInfo.msgID?.isNotEmpty ?? false)) {
message.quoteInfo = MessageQuoteInfo(
msgID: v2QuoteInfo.msgID!,
timestamp: v2QuoteInfo.messageTime ?? 0,
sequence: v2QuoteInfo.messageSequence ?? 0,
);
}
return message;
}