diff --git a/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java b/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java index 189f96b8c..7f861a3a4 100644 --- a/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java +++ b/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java @@ -152,10 +152,4 @@ public class TagViewFragment extends TaskListFragment { protected boolean hasDraggableOption() { return tagData != null; } - - @Override - protected void refresh() { - loadTaskListContent(); - setSyncOngoing(false); - } } diff --git a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index 79bf7fe06..d774bcb3d 100755 --- a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -122,6 +122,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { * Task ID */ public static final String TOKEN_ID = "id"; //$NON-NLS-1$ + public static final String TOKEN_UUID = "uuid"; /** * Content Values to set @@ -610,6 +611,8 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { if (taskEditActivity) { Intent data = new Intent(); data.putExtra(TOKEN_TAGS_CHANGED, tagsChanged); + data.putExtra(TOKEN_ID, model.getId()); + data.putExtra(TOKEN_UUID, model.getUuid()); getActivity().setResult(Activity.RESULT_OK, data); } else { @@ -621,6 +624,9 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { tla.tagsChanged(); } tla.refreshTaskList(); + if (isNewTask) { + tla.getTaskListFragment().onTaskCreated(model.getId(), model.getUuid()); + } } removeExtrasFromIntent(getActivity().getIntent()); diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java index e8250e3e1..4740867f6 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java @@ -430,6 +430,11 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList } } tlf.refresh(); + if (data != null) { + tlf.onTaskCreated( + data.getLongExtra(TaskEditFragment.TOKEN_ID, 0L), + data.getStringExtra(TaskEditFragment.TOKEN_UUID)); + } } } else if (requestCode == REQUEST_EDIT_TAG) { if (resultCode == RESULT_OK) { diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index 85d39f8fc..ea276537b 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -580,9 +580,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr * broadcast. Subclasses should override this. */ protected void refresh() { - if (taskAdapter != null) { - taskAdapter.flushCaches(); - } TaskEditFragment taskEditFragment = ((AstridActivity) getActivity()).getTaskEditFragment(); Task model = taskEditFragment == null ? null : taskEditFragment.model; taskDeleter.deleteTasksWithEmptyTitles(model == null ? null : model.getId()); @@ -608,7 +605,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr Cursor taskCursor = taskAdapter.getCursor(); taskCursor.requery(); - taskAdapter.flushCaches(); taskAdapter.notifyDataSetChanged(); if (getView() != null) { // This was happening sometimes @@ -776,7 +772,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr .show(); } - public void onTaskCreated(Task task) { + public void onTaskCreated(long id, String uuid) { } protected void onTaskDelete(Task task) { diff --git a/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java b/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java index ed7ca6750..f9b13d9a7 100644 --- a/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java @@ -148,7 +148,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable { protected final TaskListFragment fragment; private DialogBuilder dialogBuilder; protected final Resources resources; - protected final HashMap completedItems = new HashMap<>(0); protected OnCompletedTaskListener onCompletedTaskListener = null; protected final int resource = R.layout.task_adapter_row_simple; protected final LayoutInflater inflater; @@ -488,21 +487,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable { return string; } - /* ====================================================================== - * ============================================================== add-ons - * ====================================================================== */ - - /** - * Called to tell the cache to be cleared - */ - public void flushCaches() { - completedItems.clear(); - } - - public HashMap getCompletedItems() { - return completedItems; - } - /* ====================================================================== * ======================================================= event handlers * ====================================================================== */ @@ -550,15 +534,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { if (activity == null) { return; } - // show item as completed if it was recently checked - Boolean value = completedItems.get(task.getUuid()); - if (value == null) { - value = completedItems.get(task.getId()); - } - if(value != null) { - task.setCompletionDate( - value ? DateUtilities.now() : 0); - } + boolean state = task.isCompleted(); TextView name = viewHolder.nameView; @@ -677,7 +653,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable { onCompletedTaskListener.onCompletedTask(task, newState); } - completedItems.put(task.getUuid(), newState); taskService.setComplete(task, newState); } } diff --git a/src/main/java/com/todoroo/astrid/gtasks/OrderedMetadataListFragmentHelper.java b/src/main/java/com/todoroo/astrid/gtasks/OrderedMetadataListFragmentHelper.java index b7ef26d7c..bb431e4c3 100644 --- a/src/main/java/com/todoroo/astrid/gtasks/OrderedMetadataListFragmentHelper.java +++ b/src/main/java/com/todoroo/astrid/gtasks/OrderedMetadataListFragmentHelper.java @@ -234,8 +234,6 @@ public class OrderedMetadataListFragmentHelper implements OrderedListFragm model.setCompletionDate(completionDate); taskService.save(model); model.clear(); - - taskAdapter.getCompletedItems().put(taskId, false); } taskAdapter.notifyDataSetInvalidated(); } @@ -259,7 +257,6 @@ public class OrderedMetadataListFragmentHelper implements OrderedListFragm taskService.save(model); model.clear(); - taskAdapter.getCompletedItems().put(node.taskId, true); chained.add(node.taskId); } }); @@ -275,7 +272,7 @@ public class OrderedMetadataListFragmentHelper implements OrderedListFragm } @Override - public void onCreateTask(Task task) { + public void onCreateTask(long id, String uuid) { // } diff --git a/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java b/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java index 86a538091..b1ff07c53 100644 --- a/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java +++ b/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java @@ -224,8 +224,6 @@ public class AstridOrderedListFragmentHelper implements OrderedListFragmen model.setCompletionDate(completionDate); taskService.update(Task.UUID.eq(taskId), model); model.clear(); - - taskAdapter.getCompletedItems().put(taskId, false); } taskAdapter.notifyDataSetInvalidated(); } @@ -240,8 +238,6 @@ public class AstridOrderedListFragmentHelper implements OrderedListFragmen model.setCompletionDate(completionDate); taskService.update(Task.UUID.eq(uuid), model); model.clear(); - - taskAdapter.getCompletedItems().put(node.uuid, true); chained.add(node.uuid); } }); @@ -268,7 +264,6 @@ public class AstridOrderedListFragmentHelper implements OrderedListFragmen recurring.close(); } - chainedCompletions.put(itemId, chained); taskAdapter.notifyDataSetInvalidated(); } @@ -284,11 +279,11 @@ public class AstridOrderedListFragmentHelper implements OrderedListFragmen } @Override - public void onCreateTask(Task task) { - updater.onCreateTask(list, getFilter(), task.getUuid()); + public void onCreateTask(long id, String uuid) { + updater.onCreateTask(list, getFilter(), uuid); fragment.reconstructCursor(); fragment.loadTaskListContent(); - fragment.selectCustomId(task.getId()); + fragment.selectCustomId(id); } @Override @@ -296,6 +291,4 @@ public class AstridOrderedListFragmentHelper implements OrderedListFragmen updater.onDeleteTask(list, getFilter(), task.getUuid()); taskAdapter.notifyDataSetInvalidated(); } - - } diff --git a/src/main/java/com/todoroo/astrid/subtasks/OrderedListFragmentHelperInterface.java b/src/main/java/com/todoroo/astrid/subtasks/OrderedListFragmentHelperInterface.java index f05a03202..302c6020d 100644 --- a/src/main/java/com/todoroo/astrid/subtasks/OrderedListFragmentHelperInterface.java +++ b/src/main/java/com/todoroo/astrid/subtasks/OrderedListFragmentHelperInterface.java @@ -14,7 +14,7 @@ public interface OrderedListFragmentHelperInterface { void setUpUiComponents(); void beforeSetUpTaskList(Filter filter); - void onCreateTask(Task task); + void onCreateTask(long id, String uuid); void onDeleteTask(Task task); TaskAdapter createTaskAdapter(Context context, TodorooCursor cursor, AtomicReference queryTemplate); Property[] taskProperties(); diff --git a/src/main/java/com/todoroo/astrid/subtasks/SubtasksListFragment.java b/src/main/java/com/todoroo/astrid/subtasks/SubtasksListFragment.java index 379aec6c2..f01025e06 100644 --- a/src/main/java/com/todoroo/astrid/subtasks/SubtasksListFragment.java +++ b/src/main/java/com/todoroo/astrid/subtasks/SubtasksListFragment.java @@ -94,9 +94,8 @@ public class SubtasksListFragment extends TaskListFragment { } @Override - public void onTaskCreated(Task task) { - super.onTaskCreated(task); - helper.onCreateTask(task); + public void onTaskCreated(long id, String uuid) { + helper.onCreateTask(id, uuid); } @Override @@ -112,9 +111,7 @@ public class SubtasksListFragment extends TaskListFragment { @Override protected void refresh() { + super.refresh(); initializeTaskListMetadata(); - setUpTaskList(); - setSyncOngoing(false); } - } diff --git a/src/main/java/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java b/src/main/java/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java index 45116d91c..9318aef71 100644 --- a/src/main/java/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java +++ b/src/main/java/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java @@ -87,9 +87,8 @@ public class SubtasksTagListFragment extends TagViewFragment { } @Override - public void onTaskCreated(Task task) { - super.onTaskCreated(task); - helper.onCreateTask(task); + public void onTaskCreated(long id, String uuid) { + helper.onCreateTask(id, uuid); } @Override @@ -105,9 +104,7 @@ public class SubtasksTagListFragment extends TagViewFragment { @Override protected void refresh() { + super.refresh(); initializeTaskListMetadata(); - setUpTaskList(); - setSyncOngoing(false); } - } diff --git a/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java b/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java index b3d62bd45..f0e9dc254 100644 --- a/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java +++ b/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java @@ -80,7 +80,7 @@ public class QuickAddBar { fragment.selectCustomId(task.getId()); activity.onTaskListItemClicked(task.getId()); - fragment.onTaskCreated(task); + fragment.onTaskCreated(task.getId(), task.getUUID()); return task; } catch (Exception e) { log.error(e.getMessage(), e);