protected void onPostExecute()

in Android/app/src/main/java/com/harvard/studyappmodule/SurveyDashboardFragment.java [1505:1763]


    protected void onPostExecute(String response) {
      super.onPostExecute(response);
      if (response != null) {
        if (response.equalsIgnoreCase("session expired")) {
          AppController.getHelperProgressDialog().dismissDialog();
          AppController.getHelperSessionExpired(context, "session expired");
        } else if (response.equalsIgnoreCase("timeout")) {
          addViewStatisticsValues();
          AppController.getHelperProgressDialog().dismissDialog();
          Toast.makeText(
                  context,
                  getContext().getResources().getString(R.string.connection_timeout),
                  Toast.LENGTH_SHORT)
              .show();
        } else if (Integer.parseInt(responseCode) == 500) {
          try {
            JSONObject jsonObject = new JSONObject(String.valueOf(responseModel.getResponseData()));
            String exception = String.valueOf(jsonObject.get("exception"));
            if (exception.contains("Query or table not found")) {
              if (arrayList.size() > (position + 1)) {
                new ResponseData(
                        ((SurveyActivity) context).getStudyId(),
                        arrayList.get((position + 1)),
                        studies.getParticipantId(),
                        position + 1)
                    .execute();
              } else {
                addViewStatisticsValues();
                AppController.getHelperProgressDialog().dismissDialog();
              }
            } else {
              addViewStatisticsValues();
              AppController.getHelperProgressDialog().dismissDialog();
            }
          } catch (JSONException e) {
            addViewStatisticsValues();
            AppController.getHelperProgressDialog().dismissDialog();
            Logger.log(e);
          }
        } else if (Integer.parseInt(responseCode) == HttpURLConnection.HTTP_OK) {
          try {
            SimpleDateFormat simpleDateFormat = AppController.getLabkeyDateFormat();
            JSONObject jsonObject = new JSONObject(response);
            Log.e("check","response is "+jsonObject);
            JSONArray jsonArray = (JSONArray) jsonObject.get("rows");
            Gson gson = new Gson();
            for (int i = 0; i < jsonArray.length(); i++) {
              JSONObject jsonObject1 = new JSONObject(String.valueOf(jsonArray.get(i)));
              JSONArray jsonArray1 = (JSONArray) jsonObject1.get("data");
              int duration = 0;
              Date completedDate = null;
              for (int j = 0; j < jsonArray1.length(); j++) {
                JSONObject jsonObjectData = (JSONObject) jsonArray1.get(j);
                Type type = new TypeToken<Map<String, Object>>() {
                }.getType();
                Map<String, Object> map = gson.fromJson(String.valueOf(jsonObjectData), type);
                StepRecordCustom stepRecordCustom = new StepRecordCustom();
                if (completedDate == null) {
                  try {
                    Object completedDateValMap = gson.toJson(map.get("Created"));
                    Map<String, Object> completedDateVal =
                        gson.fromJson(String.valueOf(completedDateValMap), type);
                    if (completedDateVal != null) {
                      completedDate =
                          simpleDateFormat.parse(String.valueOf(completedDateVal.get("value")));
                      Log.e("check", "date is not null " + completedDate);
                    }
                  } catch (JsonSyntaxException | ParseException e) {
                    Logger.log(e);
                    Log.e("check", "date is not null " + completedDate);
                  }
                }

                try {
                  Object durationValMap = gson.toJson(map.get("duration"));
                  Map<String, Object> completedDateVal =
                      gson.fromJson(String.valueOf(durationValMap), type);
                  if (completedDateVal != null) {
                    duration = (int) Double.parseDouble("" + completedDateVal.get("value"));
                  }
                } catch (Exception e) {
                  Logger.log(e);
                }

                for (Map.Entry<String, Object> entry : map.entrySet()) {
                  String key = entry.getKey();
                  String valueobj = gson.toJson(entry.getValue());
                  Map<String, Object> vauleMap = gson.fromJson(String.valueOf(valueobj), type);
                  Object value = vauleMap.get("value");
                  if (!key.equalsIgnoreCase("container")
                      && !key.equalsIgnoreCase("ParticipantId")
                      && !key.equalsIgnoreCase("EntityId")
                      && !key.equalsIgnoreCase("Modified")
                      && !key.equalsIgnoreCase("lastIndexed")
                      && !key.equalsIgnoreCase("ModifiedBy")
                      && !key.equalsIgnoreCase("CreatedBy")
                      && !key.equalsIgnoreCase("Key")
                      && !key.equalsIgnoreCase("duration")
                      && !key.equalsIgnoreCase(stepKey + "Id")
                      && !key.equalsIgnoreCase("Created")) {

                    int runId =
                        dbServiceSubscriber.getActivityRunForStatsAndCharts(
                            responseInfoActiveTaskModel.getActivityId(),
                            studyId,
                            completedDate,
                            realm);

                    if (key.equalsIgnoreCase("count")) {
                      stepRecordCustom.setStepId(stepKey);
                      stepRecordCustom.setTaskStepID(
                          studyId
                              + "_STUDYID_"
                              + responseInfoActiveTaskModel.getActivityId()
                              + "_"
                              + runId
                              + "_"
                              + stepKey);

                      stepRecordCustom.setStudyId(studyId);
                      stepRecordCustom.setActivityID(
                          studyId + "_STUDYID_" + responseInfoActiveTaskModel.getActivityId());
                      stepRecordCustom.setTaskId(
                          studyId
                              + "_STUDYID_"
                              + responseInfoActiveTaskModel.getActivityId()
                              + "_"
                              + runId);

                      stepRecordCustom.setCompleted(completedDate);
                      stepRecordCustom.setStarted(completedDate);

                      JSONObject jsonObject2 = new JSONObject();
                      ActivitiesWS activityObj =
                          dbServiceSubscriber.getActivityObj(
                              responseInfoActiveTaskModel.getActivityId(), studyId, realm);
                      if (activityObj.getType().equalsIgnoreCase("task")) {
                        JSONObject jsonObject3 = new JSONObject();
                        jsonObject3.put("value", value);
                        jsonObject3.put("duration", duration);

                        jsonObject2.put("answer", jsonObject3);
                      } else {
                        jsonObject2.put("answer", value);
                      }

                      stepRecordCustom.setResult(String.valueOf(jsonObject2));
                      Number currentIdNum = dbServiceSubscriber.getStepRecordCustomId(realm);
                      if (currentIdNum == null) {
                        stepRecordCustom.setId(1);
                      } else {
                        stepRecordCustom.setId(currentIdNum.intValue() + 1);
                      }
                      dbServiceSubscriber.updateStepRecord(context, stepRecordCustom);
                    } else {
                      if (key.equalsIgnoreCase(stepKey)) {
                        stepRecordCustom.setStepId(key);
                        stepRecordCustom.setTaskStepID(
                            studyId
                                + "_STUDYID_"
                                + responseInfoActiveTaskModel.getActivityId()
                                + "_"
                                + runId
                                + "_"
                                + key);

                        stepRecordCustom.setStudyId(studyId);
                        stepRecordCustom.setActivityID(
                            studyId + "_STUDYID_" + responseInfoActiveTaskModel.getActivityId());
                        stepRecordCustom.setTaskId(
                            studyId
                                + "_STUDYID_"
                                + responseInfoActiveTaskModel.getActivityId()
                                + "_"
                                + runId);

                        stepRecordCustom.setCompleted(completedDate);
                        stepRecordCustom.setStarted(completedDate);

                        try {
                          Date anchordate = AppController.getLabkeyDateFormat().parse("" + value);
                          value = AppController.getDateFormatForApi().format(anchordate);
                        } catch (ParseException e) {
                          Logger.log(e);
                        }

                        JSONObject jsonObject2 = new JSONObject();
                        ActivitiesWS activityObj =
                            dbServiceSubscriber.getActivityObj(
                                responseInfoActiveTaskModel.getActivityId(), studyId, realm);
                        if (activityObj.getType().equalsIgnoreCase("task")) {
                          JSONObject jsonObject3 = new JSONObject();
                          jsonObject3.put("value", value);
                          jsonObject3.put("duration", duration);

                          jsonObject2.put("answer", jsonObject3);
                        } else {
                          jsonObject2.put("answer", value);
                        }

                        stepRecordCustom.setResult(String.valueOf(jsonObject2));
                        Number currentIdNum = dbServiceSubscriber.getStepRecordCustomId(realm);
                        if (currentIdNum == null) {
                          stepRecordCustom.setId(1);
                        } else {
                          stepRecordCustom.setId(currentIdNum.intValue() + 1);
                        }
                        dbServiceSubscriber.updateStepRecord(context, stepRecordCustom);
                      }
                    }
                  }
                }
              }
            }
            if (arrayList.size() > (position + 1)) {
              new ResponseData(
                      ((SurveyActivity) context).getStudyId(),
                      arrayList.get((position + 1)),
                      studies.getParticipantId(),
                      position + 1)
                  .execute();
            } else {
              addViewStatisticsValues();
              AppController.getHelperProgressDialog().dismissDialog();
            }
          } catch (Exception e) {
            Logger.log(e);
            if (arrayList.size() > (position + 1)) {
              new ResponseData(
                      ((SurveyActivity) context).getStudyId(),
                      arrayList.get((position + 1)),
                      studies.getParticipantId(),
                      position + 1)
                  .execute();
            } else {
              addViewStatisticsValues();
              AppController.getHelperProgressDialog().dismissDialog();
            }
          }
        } else {
          if (arrayList.size() > (position + 1)) {
            new ResponseData(
                    ((SurveyActivity) context).getStudyId(),
                    arrayList.get((position + 1)),
                    studies.getParticipantId(),
                    position + 1)
                .execute();
          } else {
            addViewStatisticsValues();
            AppController.getHelperProgressDialog().dismissDialog();
          }
        }
      } else {
        addViewStatisticsValues();
        AppController.getHelperProgressDialog().dismissDialog();
        Toast.makeText(context, getContext().getString(R.string.unknown_error), Toast.LENGTH_SHORT)
            .show();
      }
    }