From 731f7c007c01a8a143b28174da74277a58278f79 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Thu, 23 Feb 2012 00:38:39 -0800 Subject: [PATCH] Fixed the cascading repeat ends up still indented bug --- .../astrid/repeats/RepeatTaskCompleteListener.java | 7 ------- .../astrid/subtasks/OrderedListFragmentHelper.java | 12 ++++++++++++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java index 6d3c52cee..e10f2373b 100644 --- a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java +++ b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java @@ -37,8 +37,6 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { @Autowired ActFmPreferenceService actFmPreferenceService; - private static boolean skipActFmCheck = false; - @Override public void onReceive(Context context, Intent intent) { ContextManager.setContext(context); @@ -90,11 +88,6 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { } } - /** for debug */ - public static void setSkipActFmCheck(boolean skipActFmCheck) { - RepeatTaskCompleteListener.skipActFmCheck = skipActFmCheck; - } - /** Compute next due date */ public static long computeNextDueDate(Task task, String recurrence) throws ParseException { boolean repeatAfterCompletion = task.getFlag(Task.FLAGS, Task.FLAG_REPEAT_AFTER_COMPLETION); diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListFragmentHelper.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListFragmentHelper.java index b11fef6ac..f78ee4528 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListFragmentHelper.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListFragmentHelper.java @@ -10,6 +10,7 @@ import java.util.concurrent.atomic.AtomicReference; import android.app.Activity; import android.content.Context; import android.database.Cursor; +import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.View; @@ -30,7 +31,9 @@ import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.adapter.TaskAdapter; import com.todoroo.astrid.adapter.TaskAdapter.OnCompletedTaskListener; import com.todoroo.astrid.api.Filter; +import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Task; +import com.todoroo.astrid.service.MetadataService; import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.subtasks.OrderedListUpdater.Node; import com.todoroo.astrid.subtasks.OrderedListUpdater.OrderedListNodeVisitor; @@ -43,6 +46,7 @@ public class OrderedListFragmentHelper { private final TaskListFragment fragment; @Autowired TaskService taskService; + @Autowired MetadataService metadataService; private DraggableTaskAdapter taskAdapter; @@ -250,9 +254,17 @@ public class OrderedListFragmentHelper { } final ArrayList chained = new ArrayList(); + final int parentIndent = item.getValue(updater.indentProperty()); updater.applyToChildren(getFilter(), list, itemId, new OrderedListNodeVisitor() { @Override public void visitNode(Node node) { + Task childTask = taskService.fetchById(node.taskId, Task.RECURRENCE); + if(!TextUtils.isEmpty(childTask.getValue(Task.RECURRENCE))) { + Metadata metadata = updater.getTaskMetadata(list, node.taskId); + metadata.setValue(updater.indentProperty(), parentIndent); + metadataService.save(metadata); + } + model.setId(node.taskId); model.setValue(Task.COMPLETION_DATE, completionDate); taskService.save(model);