@Override
 protected Void doInBackground(Void... voids) {
   if (CommonUtil.isTokenExpired(appController)) {
     CommonUtil.reValidateToken(appController, baseUrl + loginUrl);
   }
   generateRecordId();
   return null;
 }
 @Override
 protected void onLocationReceived(Object parm) {
   if (getIntent().hasExtra(IntentConstants.SURVEY)) {
     responses.setSurveyId(surveys.getId());
     responses.setStatus("incomplete");
     responses.setMobileId(UUID.randomUUID().toString());
     responses.setLatitude(CommonUtil.getValidLatitude(appController));
     responses.setLongitude(CommonUtil.getValidLongitude(appController));
     Intent intent = new Intent(SurveyDetailsActivity.this, NewResponseActivity.class);
     intent.putExtra(IntentConstants.SURVEY, surveys);
     startActivity(intent);
   }
   dbAdapter.insertDataResponsesTable(responses);
   finish();
 }
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();
    if (id == R.id.action_settings) {
      return true;
    } else if (id == android.R.id.home) {
      finish();
      return true;
    } else if (id == R.id.action_logout) {
      CommonUtil.logout(SurveyDetailsActivity.this, appController);
      return true;
    }
    return super.onOptionsItemSelected(item);
  }
  private void doTaskResponseUploading() {
    if (asynTaskCheck) {
      appController.showToast("Something went wrong , please try again");
      progressDialog.dismiss();
    } else {
      completedResponseIds = dbAdapter.getCompleteResponsesIds(surveyId);
      for (int i = 0; i < completedResponseIds.size(); i++) {
        answers = new ArrayList<>();
        completedResponseIds.get(i);
        answers = null;
        answers = dbAdapter.getAnswerByResponseId(completedResponseIds.get(i));
        String lat =
            dbAdapter.getLatitudeFromResponseIDAndSurveyID(completedResponseIds.get(i), surveyId);
        String lon =
            dbAdapter.getLongitudeFromResponseIDAndSurveyID(completedResponseIds.get(i), surveyId);
        JSONObject obj = new JSONObject();
        JSONObject localJsonObject = CommonUtil.getAnswerJsonObject(answers, dbAdapter);
        String mobilId =
            dbAdapter.getMobileIDFromResponseIDAndSurveyID(completedResponseIds.get(i), surveyId);
        try {
          obj.put("status", "complete");
          obj.put("survey_id", surveys.getId());
          obj.put("updated_at", timestamp);
          obj.put("longitude", lon);
          obj.put("latitude", lat);
          obj.put("user_id", appController.getPreferences().getUserId());
          obj.put("organization_id", appController.getPreferences().getOrganizationId());
          obj.put("access_token", appController.getPreferences().getAccessToken());
          obj.put("mobile_id", mobilId);
          obj.put("answers_attributes", localJsonObject);

        } catch (JSONException e) {
          e.printStackTrace();
        }

        new UploadResponse()
            .execute(
                localJsonObject.toString(),
                obj.toString(),
                surveys.getId() + "",
                timestamp,
                lat + "",
                lon + "",
                mobilId,
                completedResponseIds.get(i) + "");
      }
    }
  }