startPoll method

void startPoll(
  1. String pollId
)

Implementation

void startPoll(String pollId) {
  Map<String, dynamic> answerObject = {};
  Map<String, int> resultObject = {};
  var questionAndAnswers = getQuestionsAndAnswersByPollId(pollId);

  var question = questionAndAnswers.keys.first;
  var answers = questionAndAnswers[question];

  print('Question: ${question.questionTitle}');

  answers?.asMap().forEach((index, answer) {
    String number = (index + 1).toString();
    answerObject['opt$number'] = answer.title;  // Null safety
    resultObject['opt$number'] = 0;  // Initialize the result to 0
    print('Answer: ${answer.title}, Percentage: ${answer.percentage}%');
  });

  // Create the main JSON object
  Map<String, dynamic> jsonObject = {
    'duration': question.duration,  // Null safety
    'question': question.questionTitle,  // Null safety
    'id': question.pollId,  // Fallback to pollId
    'options': answerObject,
    'result': resultObject,
    'total_result': 0,
    'initialDuration': question.duration,  // Null safety
    'status': 'I',
  };

  // Wrap in a pollObject
  Map<String, dynamic> pollObject = {
    'type': 'poll-start',
    'data': jsonObject,
  };

  // Send poll data
  EnxRtc.sendUserData(pollObject, true, []);

  // Update expandable list
  _expandableDetailList.forEach((questionModel, answerModels) {
    if (questionModel.pollId == question.pollId) {
      questionModel.status = "I";
    }
  });
  }