|
|
@ -422,22 +422,14 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
|
|
|
|
if(task.isCompleted())
|
|
|
|
if(task.isCompleted())
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
if(task.getValue(Task.DETAILS_DATE) >= task.getValue(Task.MODIFICATION_DATE))
|
|
|
|
if(detailsAreRecentAndUpToDate(task))
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
if(task.getValue(Task.DETAILS_DATE) < DateUtilities.now() - 3 * DateUtilities.ONE_DAY)
|
|
|
|
addTaskToLoadingArray(task);
|
|
|
|
continue;
|
|
|
|
requestNewDetails(task);
|
|
|
|
|
|
|
|
|
|
|
|
taskDetailLoader.put(task.getId(), new StringBuilder(task.getValue(Task.DETAILS)));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_REQUEST_DETAILS);
|
|
|
|
|
|
|
|
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, task.getId());
|
|
|
|
|
|
|
|
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_EXTENDED, false);
|
|
|
|
|
|
|
|
activity.sendOrderedBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TextUtils.isEmpty(task.getValue(Task.DETAILS))) {
|
|
|
|
if(TextUtils.isEmpty(task.getValue(Task.DETAILS)))
|
|
|
|
task.setValue(Task.DETAILS, DETAIL_SEPARATOR);
|
|
|
|
task.setValue(Task.DETAILS, DETAIL_SEPARATOR);
|
|
|
|
}
|
|
|
|
|
|
|
|
task.setValue(Task.DETAILS_DATE, DateUtilities.now());
|
|
|
|
task.setValue(Task.DETAILS_DATE, DateUtilities.now());
|
|
|
|
taskService.save(task);
|
|
|
|
taskService.save(task);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -445,6 +437,26 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
|
|
|
|
// suppress silently
|
|
|
|
// suppress silently
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean detailsAreRecentAndUpToDate(Task task) {
|
|
|
|
|
|
|
|
return task.getValue(Task.DETAILS_DATE) > DateUtilities.now() - 3 * 5 &&
|
|
|
|
|
|
|
|
task.getValue(Task.DETAILS_DATE) >= task.getValue(Task.MODIFICATION_DATE);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void addTaskToLoadingArray(Task task) {
|
|
|
|
|
|
|
|
StringBuilder detailStringBuilder = new StringBuilder();
|
|
|
|
|
|
|
|
if(TextUtils.isEmpty(task.getValue(Task.DETAILS)) || DETAIL_SEPARATOR.equals(task.getValue(Task.DETAILS)))
|
|
|
|
|
|
|
|
taskDetailLoader.put(task.getId(), detailStringBuilder);
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
taskDetailLoader.put(task.getId(), detailStringBuilder.append(task.getValue(Task.DETAILS)));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void requestNewDetails(Task task) {
|
|
|
|
|
|
|
|
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_REQUEST_DETAILS);
|
|
|
|
|
|
|
|
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, task.getId());
|
|
|
|
|
|
|
|
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_EXTENDED, false);
|
|
|
|
|
|
|
|
activity.sendOrderedBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -460,7 +472,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
|
|
|
|
synchronized(details) {
|
|
|
|
synchronized(details) {
|
|
|
|
if(details.toString().contains(detail))
|
|
|
|
if(details.toString().contains(detail))
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
if(details.length() > 0)
|
|
|
|
if(details.length() > 0 && !details.toString().endsWith(DETAIL_SEPARATOR))
|
|
|
|
details.append(DETAIL_SEPARATOR);
|
|
|
|
details.append(DETAIL_SEPARATOR);
|
|
|
|
details.append(detail);
|
|
|
|
details.append(detail);
|
|
|
|
taskDetailContainer.setId(id);
|
|
|
|
taskDetailContainer.setId(id);
|
|
|
@ -597,7 +609,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
Intent createBroadcastIntent(Task task) {
|
|
|
|
Intent createBroadcastIntent(Task task) {
|
|
|
|
// TODO performance hack hack
|
|
|
|
// performance hack, get rid of me when task list performance is improved
|
|
|
|
if(task.getValue(Task.TIMER_START) == 0 &&
|
|
|
|
if(task.getValue(Task.TIMER_START) == 0 &&
|
|
|
|
task.getValue(Task.ELAPSED_SECONDS) == 0)
|
|
|
|
task.getValue(Task.ELAPSED_SECONDS) == 0)
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|