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) {
Fluttertoast.showToast(msg: S.of().chatMessageCollectSuccess);
} else if (v.code == ChatMessage.CollectionMessageLimit) {
Fluttertoast.showToast(msg: S.of().chatMessageCollectedLimit);
}
});
}