public List<Task> getTaskList() { // SortedSet<Task> tasks = new TreeSet<Task>(tc); List<Task> tasks = new ArrayList<Task>(); Cursor lastWeekUpdatedTasks = fetchTask(WEEK); while (!lastWeekUpdatedTasks.isAfterLast()) { lastWeekUpdatedTasks.moveToNext(); Task t = new Task(lastWeekUpdatedTasks.getString(1)); t.setId(lastWeekUpdatedTasks.getLong(0)); t.setLastTimeExecuted(lastWeekUpdatedTasks.getLong(2)); int[] frequencyAndTimeSum = getNumAndDurationSumOfSessionsForTaskInRange(t.getId(), WEEK); t.setFrequency(frequencyAndTimeSum[0]); t.setTotalDuration(frequencyAndTimeSum[1]); t.setOrder(t.getFrequency() * t.getTotalDuration()); tasks.add(t); } Collections.sort(tasks, tc); return tasks; }