setMessageExt method

dynamic setMessageExt(
  1. List<V2TimMessageExtension> msgExts
)

Implementation

setMessageExt(List<V2TimMessageExtension> msgExts) async {
  // 这里来过滤下那些不合法的key

  messageExts = msgExts.takeWhile((value) => value.extensionKey == 'closed' || (value.extensionKey.split("_").length == 2 && value.extensionValue.split("_").isNotEmpty)).toList();
  if (messageExts.isEmpty) {
    return;
  }
  List<String> userids = List<String>.from([]);
  for (var i = 0; i < messageExts.length; i++) {
    V2TimMessageExtension ext = messageExts[i];
    print(ext.toJson());
    if (ext.extensionKey == 'closed') {
      isClose = true;
    } else {
      String userid = ext.extensionKey.split("_").first;
      userids.add(userid);
      if (userid == TencentCloudChatVotePlugin.currentUser) {
        isVoted = true;
      }
    }
    print("isClose $isClose isVoted $isVoted");
  }
  // 这里获取下投票者的群成员信息
  if (msg.groupID != null && userids.isNotEmpty) {
    V2TimValueCallback<List<V2TimGroupMemberFullInfo>> getGroupInfosRes = await TencentImSDKPlugin.v2TIMManager.getGroupManager().getGroupMembersInfo(
          groupID: msg.groupID!,
          memberList: userids,
        );
    if (getGroupInfosRes.code == 0) {
      if (getGroupInfosRes.data != null) {
        if (getGroupInfosRes.data!.isNotEmpty) {
          List<V2TimGroupMemberFullInfo> _groupinfos = getGroupInfosRes.data!;
          for (var element in _groupinfos) {
            groupInfos[element.userID] = element;
          }
        }
      }
    }
  }
}