diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/NewOrderedListFragmentHelper.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/NewOrderedListFragmentHelper.java index 7be52bc92..2091e687c 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/NewOrderedListFragmentHelper.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/NewOrderedListFragmentHelper.java @@ -306,8 +306,8 @@ public class NewOrderedListFragmentHelper { this.list = list; } - public void onAddTask(long taskId) { - updater.onAddTask(list, getFilter(), taskId); + public void onCreateTask(Task task) { + updater.onCreateTask(list, getFilter(), task.getId()); } public void onDeleteTask(Task task) { diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/NewOrderedListUpdater.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/NewOrderedListUpdater.java index 6625629c7..5380205a2 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/NewOrderedListUpdater.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/NewOrderedListUpdater.java @@ -94,6 +94,8 @@ public abstract class NewOrderedListUpdater { public String getOrderString() { Long[] ids = getOrderedIds(); StringBuilder builder = new StringBuilder(); + if (ids.length == 0) + return "(1)"; //$NON-NLS-1$ for (int i = ids.length - 1; i >= 0; i--) { builder.append(Task.ID.eq(ids[i]).toString()); if (i > 0) @@ -242,8 +244,8 @@ public abstract class NewOrderedListUpdater { applyToFilter(filter); } - public void onAddTask(LIST list, Filter filter, long taskId) { - if (idToNode.containsKey(taskId)) + public void onCreateTask(LIST list, Filter filter, long taskId) { + if (idToNode.containsKey(taskId) || taskId < 0) return; Node newNode = new Node(taskId, treeRoot, 0); diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksListFragment.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksListFragment.java index 7d0b9b3dc..afe4a9157 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksListFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksListFragment.java @@ -65,6 +65,12 @@ public class SubtasksListFragment extends TaskListFragment { return true; } + @Override + public void onTaskCreated(Task task) { + super.onTaskCreated(task); + helper.onCreateTask(task); + } + @Override protected void onTaskDelete(Task task) { super.onTaskDelete(task); diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java index 76b56a802..4a29add1c 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java @@ -1157,6 +1157,10 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, }).setNegativeButton(android.R.string.cancel, null).show(); } + public void onTaskCreated(Task task) { + incrementFilterCount(); + } + protected void onTaskDelete(Task task) { decrementFilterCount(); diff --git a/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java b/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java index 046e94c81..baa86822d 100644 --- a/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java +++ b/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java @@ -357,7 +357,7 @@ public class QuickAddBar extends LinearLayout { metadataService.save(fileMetadata); } - fragment.incrementFilterCount(); + fragment.onTaskCreated(task); StatisticsService.reportEvent(StatisticsConstants.TASK_CREATED_TASKLIST); return task;