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();
}
}