modifySettings function

void modifySettings({
  1. required Map<String, dynamic> parameters,
})

Implementation

void modifySettings({
  required Map<String, dynamic> parameters,
}) async {
  final ShowAlert? showAlert = parameters['showAlert'];
  final String roomName = parameters['roomName'];
  final String audioSet = parameters['audioSet'];
  final String videoSet = parameters['videoSet'];
  final String screenshareSet = parameters['screenshareSet'];
  final String chatSet = parameters['chatSet'];
  final io.Socket socket = parameters['socket'];

  final UpdateSetting updateAudioSetting = parameters['updateAudioSetting'];
  final UpdateSetting updateVideoSetting = parameters['updateVideoSetting'];
  final UpdateSetting updateScreenshareSetting =
      parameters['updateScreenshareSetting'];
  final UpdateSetting updateChatSetting = parameters['updateChatSetting'];
  final UpdateIsSettingsModalVisible updateIsSettingsModalVisible =
      parameters['updateIsSettingsModalVisible'];

  if (roomName.toLowerCase().startsWith('d')) {
    //none should be approval
    if (audioSet == 'approval' ||
        videoSet == 'approval' ||
        screenshareSet == 'approval' ||
        chatSet == 'approval') {
      if (showAlert != null) {
        showAlert(
          message: 'You cannot set approval for demo mode.',
          type: 'danger',
          duration: 3000,
        );
      }
      return;
    }
  }

  // Check and update state variables based on the provided logic
  if (audioSet.isNotEmpty) {
    updateAudioSetting(audioSet);
  }
  if (videoSet.isNotEmpty) {
    updateVideoSetting(videoSet);
  }
  if (screenshareSet.isNotEmpty) {
    updateScreenshareSetting(screenshareSet);
  }
  if (chatSet.isNotEmpty) {
    updateChatSetting(chatSet);
  }

  List<String?> settings = [audioSet, videoSet, screenshareSet, chatSet];

  socket.emit('updateSettingsForRequests',
      {'settings': settings, 'roomName': roomName});

  // Close modal
  updateIsSettingsModalVisible(false);
}