showRequestDialog method

void showRequestDialog(
  1. TUIRequest request
)

Implementation

void showRequestDialog(TUIRequest request) {
  String title = '';
  String message = '';
  String confirmText = '';
  String cancelText = 'doNotOpen'.roomTr;

  if (request.requestAction == TUIRequestAction.requestToOpenRemoteCamera) {
    isCameraInviteDialogShow = true;
    title = 'cameraInviteTitle'.roomTr;
    message = 'cameraInviteMessage'.roomTr;
    confirmText = 'confirmOpenCamera'.roomTr;
  } else if (request.requestAction ==
      TUIRequestAction.requestToOpenRemoteMicrophone) {
    isMicrophoneInviteDialogShow = true;
    title = 'microphoneInviteTitle'.roomTr;
    message = 'microphoneInviteMessage'.roomTr;
    confirmText = 'confirmOpenMicrophone'.roomTr;
  } else if (request.requestAction ==
      TUIRequestAction.requestRemoteUserOnSeat) {
    title = 'takeSeatInviteTitle'.roomTr;
    message = 'takeSeatInviteMessage'.roomTr;
    confirmText = 'agreeTakeSeat'.roomTr;
    cancelText = 'refuse'.roomTr;
  }
  showConferenceDialog(
    title: title,
    message: message,
    cancelText: cancelText,
    confirmText: confirmText,
    onCancel: () {
      RoomEngineManager()
          .getRoomEngine()
          .responseRemoteRequest(request.requestId, false);
      if (request.requestAction ==
          TUIRequestAction.requestToOpenRemoteCamera) {
        isCameraInviteDialogShow = false;
      } else if (request.requestAction ==
          TUIRequestAction.requestToOpenRemoteMicrophone) {
        isMicrophoneInviteDialogShow = false;
      }
    },
    onConfirm: () async {
      bool isGranted = true;
      switch (request.requestAction) {
        case TUIRequestAction.requestToOpenRemoteCamera:
          isGranted = await _requestCameraPermission();
          break;
        case TUIRequestAction.requestToOpenRemoteMicrophone:
          isGranted = await _requestMicPermission();
          break;
        default:
          break;
      }

      if (!isGranted) {
        RoomEngineManager()
            .getRoomEngine()
            .responseRemoteRequest(request.requestId, false);
        return;
      }

      final result = await RoomEngineManager()
          .getRoomEngine()
          .responseRemoteRequest(request.requestId, true);
      Get.back();

      final toastMessages = {
        TUIError.errFailed: 'goOnStageTimeOut'.roomTr,
        TUIError.errAllSeatOccupied: 'stageMemberReachedLimit'.roomTr,
      };

      if (toastMessages.containsKey(result.code)) {
        makeToast(msg: toastMessages[result.code]!);
      }
    },
    barrierDismissible: false,
  );
}