in Android/app/src/main/java/com/harvard/studyappmodule/ChartActivity.java [1194:1445]
private void refreshchartdata(
String tag,
Date startTime,
Date endtime,
final LineChart chart,
RealmResults<StepRecordCustom> stepRecordCustomList,
List<String> filteredXValues,
List<Entry> entryList,
RealmResults<ActivityRun> activityRuns,
final String barColor,
final String activityId) {
chart.clear();
entryList.clear();
filteredXValues.clear();
if (!tag.equalsIgnoreCase("hours_of_day")) {
if (tag.equalsIgnoreCase("days_of_week")) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEE");
for (int k = 0; k < day.length; k++) {
for (int j = 0, size = stepRecordCustomList.size(); j < size; j++) {
if (stepRecordCustomList.get(j).getCompleted().before(endtime)
&& stepRecordCustomList.get(j).getCompleted().after(startTime)) {
JSONObject jsonObject;
String answer = "";
String data = "";
try {
jsonObject = new JSONObject(stepRecordCustomList.get(j).result);
String[] id = stepRecordCustomList.get(j).activityID.split("_STUDYID_");
ActivitiesWS activityObj = dbServiceSubscriber.getActivityObj(id[1], id[0], realm);
if (activityObj.getType().equalsIgnoreCase("task")) {
JSONObject answerjson = new JSONObject(jsonObject.getString("answer"));
answer = answerjson.getString("duration");
answer = Double.toString(Integer.parseInt(answer) / 60f);
data = "min \nfor\n" + answerjson.getString("value") + " kicks";
} else {
answer = jsonObject.getString("answer");
data = "";
}
} catch (JSONException e) {
Logger.log(e);
}
String s = simpleDateFormat.format(stepRecordCustomList.get(j).getCompleted());
if (s.equalsIgnoreCase(day[k])) {
entryList.add(new Entry(Float.parseFloat(answer), k, data));
}
}
}
filteredXValues.add(day[k]);
}
} else if (tag.equalsIgnoreCase("days_of_month")) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("d");
int month = startTime.getMonth();
int year = startTime.getYear();
for (int k = 1; k <= numberOfDaysInMonth(month, year); k++) {
for (int j = 0, size = stepRecordCustomList.size(); j < size; j++) {
if (stepRecordCustomList.get(j).getCompleted().before(endtime)
&& stepRecordCustomList.get(j).getCompleted().after(startTime)) {
JSONObject jsonObject;
String answer = "";
String data = "";
try {
jsonObject = new JSONObject(stepRecordCustomList.get(j).result);
String[] id = stepRecordCustomList.get(j).activityID.split("_STUDYID_");
ActivitiesWS activityObj = dbServiceSubscriber.getActivityObj(id[1], id[0], realm);
if (activityObj.getType().equalsIgnoreCase("task")) {
JSONObject answerjson = new JSONObject(jsonObject.getString("answer"));
answer = answerjson.getString("duration");
answer = Double.toString(Integer.parseInt(answer) / 60f);
data = "min \nfor\n" + answerjson.getString("value") + " kicks";
} else {
answer = jsonObject.getString("answer");
data = "";
}
} catch (JSONException e) {
Logger.log(e);
}
String s = simpleDateFormat.format(stepRecordCustomList.get(j).getCompleted());
if (s.equalsIgnoreCase("" + k)) {
entryList.add(new Entry(Float.parseFloat(answer), k - 1, data));
}
}
}
if (k % 5 == 0) {
filteredXValues.add("" + k);
} else {
filteredXValues.add("");
}
}
} else if (tag.equalsIgnoreCase("weeks_of_month")) {
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.SUNDAY);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMM");
for (int k = 1; k <= numberOfWeeksInMonth(simpleDateFormat.format(startTime)); k++) {
for (int j = 0, size = stepRecordCustomList.size(); j < size; j++) {
if (stepRecordCustomList.get(j).getCompleted().before(endtime)
&& stepRecordCustomList.get(j).getCompleted().after(startTime)) {
JSONObject jsonObject;
String answer = "";
String data = "";
try {
jsonObject = new JSONObject(stepRecordCustomList.get(j).result);
String[] id = stepRecordCustomList.get(j).activityID.split("_STUDYID_");
ActivitiesWS activityObj = dbServiceSubscriber.getActivityObj(id[1], id[0], realm);
if (activityObj.getType().equalsIgnoreCase("task")) {
JSONObject answerjson = new JSONObject(jsonObject.getString("answer"));
answer = answerjson.getString("duration");
answer = Double.toString(Integer.parseInt(answer) / 60f);
data = "min \nfor\n" + answerjson.getString("value") + " kicks";
} else {
answer = jsonObject.getString("answer");
data = "";
}
} catch (JSONException e) {
Logger.log(e);
}
cal.setTime(stepRecordCustomList.get(j).getCompleted());
int week = cal.get(Calendar.WEEK_OF_MONTH);
if (k == week) {
entryList.add(new Entry(Float.parseFloat(answer), k - 1, data));
}
}
}
filteredXValues.add("W" + k);
}
} else if (tag.equalsIgnoreCase("months_of_year")) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMM");
for (int k = 0; k < month.length; k++) {
for (int j = 0, size = stepRecordCustomList.size(); j < size; j++) {
if (stepRecordCustomList.get(j).getCompleted().before(endtime)
&& stepRecordCustomList.get(j).getCompleted().after(startTime)) {
JSONObject jsonObject;
String answer = "";
String data = "";
try {
jsonObject = new JSONObject(stepRecordCustomList.get(j).result);
String[] id = stepRecordCustomList.get(j).activityID.split("_STUDYID_");
ActivitiesWS activityObj = dbServiceSubscriber.getActivityObj(id[1], id[0], realm);
if (activityObj.getType().equalsIgnoreCase("task")) {
JSONObject answerjson = new JSONObject(jsonObject.getString("answer"));
answer = answerjson.getString("duration");
answer = Double.toString(Integer.parseInt(answer) / 60f);
data = "min \nfor\n" + answerjson.getString("value") + " kicks";
} else {
answer = jsonObject.getString("answer");
data = "";
}
} catch (JSONException e) {
Logger.log(e);
}
String s = simpleDateFormat.format(stepRecordCustomList.get(j).getCompleted());
if (s.equalsIgnoreCase(monthfull[k])) {
entryList.add(new Entry(Float.parseFloat(answer), k, data));
}
}
}
filteredXValues.add(month[k]);
}
}
} else if (tag.equalsIgnoreCase("hours_of_day")) {
activityRuns =
dbServiceSubscriber.getAllActivityRunforDate(
activityId, getIntent().getStringExtra("studyId"), startTime, realm);
for (int k = 0; k < activityRuns.size(); k++) {
for (int l = 0; l < stepRecordCustomList.size(); l++) {
if (stepRecordCustomList.get(l).getCompleted().before(endtime)
&& stepRecordCustomList.get(l).getCompleted().after(startTime)) {
if (stepRecordCustomList.get(l).taskId.contains("_")) {
String[] taskId = stepRecordCustomList.get(l).taskId.split("_STUDYID_");
String runId =
taskId[1].substring(taskId[1].lastIndexOf("_") + 1, taskId[1].length());
JSONObject jsonObject;
String answer = "";
String data = "";
try {
jsonObject = new JSONObject(stepRecordCustomList.get(l).result);
String[] id = stepRecordCustomList.get(l).activityID.split("_STUDYID_");
ActivitiesWS activityObj = dbServiceSubscriber.getActivityObj(id[1], id[0], realm);
if (activityObj.getType().equalsIgnoreCase("task")) {
JSONObject answerjson = new JSONObject(jsonObject.getString("answer"));
answer = answerjson.getString("duration");
answer = Double.toString(Integer.parseInt(answer) / 60f);
data = "min \nfor\n" + answerjson.getString("value") + " kicks";
} else {
answer = jsonObject.getString("answer");
data = "";
}
if (answer == null || answer.equalsIgnoreCase("")) {
answer = "0";
}
} catch (JSONException e) {
Logger.log(e);
if (answer.equalsIgnoreCase("")) {
answer = "0";
}
}
if (runId.equalsIgnoreCase("" + activityRuns.get(k).getRunId())) {
entryList.add(new Entry(Float.parseFloat(answer), k, data));
}
}
}
}
filteredXValues.add("" + (k + 1));
}
} else {
activityRuns =
dbServiceSubscriber.getAllActivityRunFromDB(
getIntent().getStringExtra("studyId"), activityId, realm);
for (int k = 0; k < activityRuns.size(); k++) {
for (int l = 0; l < stepRecordCustomList.size(); l++) {
if (stepRecordCustomList.get(l).getCompleted().before(endtime)
&& stepRecordCustomList.get(l).getCompleted().after(startTime)) {
if (stepRecordCustomList.get(l).taskId.contains("_")) {
String[] taskId = stepRecordCustomList.get(l).taskId.split("_STUDYID_");
String runId =
taskId[1].substring(taskId[1].lastIndexOf("_") + 1, taskId[1].length());
JSONObject jsonObject;
String answer = "";
String data = "";
try {
jsonObject = new JSONObject(stepRecordCustomList.get(l).result);
String[] id = stepRecordCustomList.get(l).activityID.split("_STUDYID_");
ActivitiesWS activityObj = dbServiceSubscriber.getActivityObj(id[1], id[0], realm);
if (activityObj.getType().equalsIgnoreCase("task")) {
JSONObject answerjson = new JSONObject(jsonObject.getString("answer"));
answer = answerjson.getString("duration");
answer = Double.toString(Integer.parseInt(answer) / 60f);
data = "min \nfor\n" + answerjson.getString("value") + " kicks";
} else {
answer = jsonObject.getString("answer");
data = "";
}
} catch (JSONException e) {
Logger.log(e);
}
if (runId.equalsIgnoreCase("" + activityRuns.get(k).getRunId())) {
entryList.add(new Entry(Float.parseFloat(answer), k, data));
}
}
}
}
filteredXValues.add("" + (k + 1));
}
}
// Update chart w/ our data
TempGraphHelper.updateLineChart(chart, 0, entryList, filteredXValues, barColor);
}