diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java index cd02525e2..06ebd0516 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java @@ -79,6 +79,7 @@ abstract public class OrderedListUpdater { final AtomicInteger targetTaskIndent = new AtomicInteger(-1); final AtomicInteger previousIndent = new AtomicInteger(-1); final AtomicLong previousTask = new AtomicLong(-1); + final AtomicLong globalOrder = new AtomicLong(-1); iterateThroughList(filter, list, new OrderedListIterator() { @Override @@ -88,6 +89,9 @@ abstract public class OrderedListUpdater { int indent = metadata.containsNonNullValue(indentProperty()) ? metadata.getValue(indentProperty()) : 0; + long order = globalOrder.incrementAndGet(); + metadata.setValue(orderProperty(), order); + if(targetTaskId == taskId) { // if indenting is warranted, indent me and my children if(indent + delta <= previousIndent.get() + 1 && indent + delta >= 0) { @@ -116,6 +120,9 @@ abstract public class OrderedListUpdater { previousIndent.set(indent); previousTask.set(taskId); } + + if(!metadata.isSaved()) + saveAndUpdateModifiedDate(metadata, taskId); } });