raiseHandAction method

void raiseHandAction()

Implementation

void raiseHandAction() {
  if (_store.currentUser.isOnSeat.value) {
    return;
  }
  if (!isRequestingTakeSeat.value) {
    isRequestingTakeSeat.value = true;
    if (RoomStore.to.currentUser.userRole.value != TUIRole.administrator) {
      makeToast(
        msg: RoomContentsTranslations.translate('joinStageApplicationSent'),
      );
    }
    _takeSeatRequestId = _engineManager
        .takeSeat(
          _seatIndex,
          _reqTimeout,
          TUIRequestCallback(
            onAccepted: (requestId, userId) {
              makeToast(
                msg: RoomContentsTranslations.translate(
                    'takeSeatRequestAgreed'),
              );
              isRequestingTakeSeat.value = false;
            },
            onRejected: (requestId, userId, message) {
              makeToast(
                msg: RoomContentsTranslations.translate(
                    'takeSeatRequestRejected'),
              );
              isRequestingTakeSeat.value = false;
            },
            onCancelled: (requestId, userId) {
              isRequestingTakeSeat.value = false;
            },
            onTimeout: (requestId, userId) {
              isRequestingTakeSeat.value = false;
            },
            onError: (requestId, userId, error, message) {
              isRequestingTakeSeat.value = false;
            },
          ),
        )
        .requestId;
  } else {
    _engineManager.cancelRequest(_takeSeatRequestId);
    _takeSeatRequestId = '';

    makeToast(
      msg:
          RoomContentsTranslations.translate('joinStageApplicationCancelled'),
    );
    isRequestingTakeSeat.value = false;
  }
}