private void finishVoting() {
    if (closing) {
      finishClosing();

      return;
    }

    if (!modified) {
      // Come back to the previous activity since the event is not modified
      dialogResponded();

      return;
    }

    // Get the current selected event
    Event event = imin.getUser().getCurrentEvent();

    // Get the event proposals
    List<Proposal> proposals = event.getProposals();

    // Analyze the responses
    List<Response> responses = new ArrayList<Response>();

    // Analyze the poll table
    for (Proposal proposal : proposals) {
      if (proposal.getProposalType() == Proposal.PROPOSAL_TYPE_LOCATION) {
        // Look up the table and get the response of the user for that
        Response response = proposal.getContactResponse(imin.getUser().getPublicUserId());

        if (response != null) {
          // Add to the list of responses
          responses.add(response);
        }
      }
    }

    showRespondDialog();

    // Add the datetime responses
    responses.addAll(imin.dateTimeResponses);

    // At this point, we have the list of responses
    configurationInstance.taskRespondEvent = new TaskRespondEvent(this);
    TaskRespondEventParams params =
        new TaskRespondEventParams(imin.getUser().getPrivateUserId(), event, responses);
    configurationInstance.taskRespondEvent.execute(params);
  }