collectMessage method

void collectMessage(
  1. 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);
    }
  });
}