updateCallMemberList static method
更新音视频通话成员信息
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);
}
}
}());
}
}