updateCallMemberList static method

void updateCallMemberList(
  1. List<String> userIdList, {
  2. bool? isEnter,
})

更新音视频通话成员信息

Implementation

static void updateCallMemberList(List<String> userIdList, { bool? isEnter }) {
  if (userIdList.isEmpty) {
    callMemberListNotifier.value = [];
  } else {
    final selfUserId = ImState.chatLoginInfo.value!.userId;
    final memberList = {selfUserId, ...userIdList, ...callMemberListNotifier.value.map((v) => v.userId)};

    callMemberListNotifier.value = memberList.map((userId) {
      return CallMemberInfo(
        userId: userId,
        isInitiator: userId == selfUserId,
        isEnter: isEnter,
      );
    }).toList();

    unawaited(() async {
      try {
        final userProfileResult = await ImPluginTencent.getUserProfile(memberList.toList());
        callMemberListNotifier.value = memberList.map((userId) {
          Map<String, dynamic>? findUserProfile = userProfileResult.where((profileItem) => profileItem['userID'] == userId).firstOrNull;
          return CallMemberInfo(
            userId: userId,
            isInitiator: userId == selfUserId,
            profileInfo: findUserProfile,
            isEnter: isEnter,
          );
        }).toList();
      } catch (e) {
        if (kDebugMode) {
          print(e);
        }
      }
    }());
  }
}