handUp method
Implementation
Future<void> handUp(String userId) async {
// 判断当前已经上台人数和课堂最大允许上台人数
var classInfo = await getClassInfo();
if (classInfo != null) {
final maxRtcMember = classInfo.roomInfo.maxRtcMember;
final currentRtcMember =
_membersInfoObs.memberIds.where((memberId) {
final member = _membersInfoObs.membersInfo[memberId];
return member?.stage == 1 && member?.role != RoleEnum.teacher.index;
}).length;
TCICLog.info(
"maxRtcMember: $maxRtcMember currentRtcMember: $currentRtcMember",
actionModule: ActionModule.tcicController.name,
actionName: ActionName.handUp.name,
);
if (maxRtcMember > 0) {
if (currentRtcMember >= maxRtcMember) {
TCICLog.error(
"当前课程已经达到最大上台人数",
actionModule: ActionModule.tcicController.name,
actionName: ActionName.handUp.name,
);
TCICToast.show(StringEnum.maxOnStageTips);
return;
}
await sendAction(userId, MemberActionType.handUp);
} else {
TCICLog.error(
"当前课程不允许用户上台",
actionModule: ActionModule.tcicController.name,
actionName: ActionName.handUp.name,
);
TCICToast.show(StringEnum.maxOnStageTips);
}
} else {
TCICLog.error(
"当前课程不存在",
actionModule: ActionModule.tcicController.name,
actionName: ActionName.handUp.name,
);
TCICToast.show(StringEnum.classNotExist);
}
}