collectMessage method
void
collectMessage(
- ChatMessage message
Implementation
void collectMessage(ChatMessage message) async {
if (!await haveConnectivity()) {
return;
}
String senderName = message.getNickName();
String? avatar = message.fromUser?.avatar;
if (ChatMessageHelper.isReceivedMessageFromAi(message.nimMessage)) {
final aiUser = AIUserManager.instance.getAIUserById(
message.nimMessage.aiConfig!.accountId!,
);
senderName = aiUser?.name ?? aiUser?.accountId ?? '';
avatar = aiUser?.avatar;
} else if (message.nimMessage.conversationType == NIMConversationType.p2p) {
if (message.nimMessage.isSelf != true && contactInfo != null) {
senderName = contactInfo!.getName();
avatar = contactInfo?.user.avatar;
} else {
final selfInfo = IMKitClient.getUserInfo();
if (message.nimMessage.isSelf == true &&
selfInfo?.name?.isNotEmpty == true) {
senderName = selfInfo!.name!;
}
if (message.nimMessage.isSelf == true) {
avatar = selfInfo?.avatar;
}
}
} else {
final teamMemberInfo = await getUserAvatarInfoInTeam(
sessionId,
message.nimMessage.senderId!,
);
senderName = teamMemberInfo.name;
avatar = teamMemberInfo.avatar;
}
ChatMessageRepo.addCollectMessage(
message.nimMessage,
senderName: senderName,
avatar: avatar,
conversationName: chatTitle,
).then((v) {
if (v.isSuccess) {
ChatUIToast.show(S.of().chatMessageCollectSuccess);
} else if (v.code == ChatMessage.CollectionMessageLimit) {
ChatUIToast.show(S.of().chatMessageCollectedLimit);
}
});
}