From 04c92a39150a501a4531c77358565a85db9ef47f Mon Sep 17 00:00:00 2001 From: Tim Su Date: Wed, 22 Feb 2012 02:14:31 -0800 Subject: [PATCH] Made tag view stuff work together in tandem with subtasks --- api/src/com/todoroo/andlib/data/Table.java | 7 +++++++ api/src/com/todoroo/andlib/sql/DBObject.java | 2 +- .../com/todoroo/astrid/actfm/TagViewFragment.java | 5 +++++ .../com/todoroo/astrid/subtasks/OrderedListUpdater.java | 3 +++ .../todoroo/astrid/subtasks/SubtasksFragmentHelper.java | 9 ++++++++- .../todoroo/astrid/subtasks/SubtasksTagListFragment.java | 6 +++--- .../com/todoroo/astrid/tags/TagFilterExposer.java | 3 ++- .../plugin-src/com/todoroo/astrid/tags/TagService.java | 6 ++++-- .../src/com/todoroo/astrid/activity/AstridActivity.java | 3 --- astrid/src/com/todoroo/astrid/ui/DraggableListView.java | 2 +- 10 files changed, 34 insertions(+), 12 deletions(-) diff --git a/api/src/com/todoroo/andlib/data/Table.java b/api/src/com/todoroo/andlib/data/Table.java index 3d2cb8880..3d1e8a7ec 100644 --- a/api/src/com/todoroo/andlib/data/Table.java +++ b/api/src/com/todoroo/andlib/data/Table.java @@ -65,4 +65,11 @@ public final class Table extends SqlTable { return Field.field(alias + "." + property.name); return Field.field(name + "." + property.name); } + + @Override + public String toString() { + if(hasAlias()) + return expression + " AS " + alias; //$NON-NLS-1$ + return expression; + } } \ No newline at end of file diff --git a/api/src/com/todoroo/andlib/sql/DBObject.java b/api/src/com/todoroo/andlib/sql/DBObject.java index b29c6550b..5eeaa0055 100644 --- a/api/src/com/todoroo/andlib/sql/DBObject.java +++ b/api/src/com/todoroo/andlib/sql/DBObject.java @@ -46,7 +46,7 @@ public abstract class DBObject> implements Cloneable { } @Override - public final String toString() { + public String toString() { if (hasAlias()) { return alias; } diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java index d4e8bcd45..89552750c 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java @@ -200,6 +200,7 @@ public class TagViewFragment extends TaskListFragment { cursor.close(); } + postLoadTagData(); setUpMembersGallery(); super.onNewIntent(intent); @@ -210,6 +211,10 @@ public class TagViewFragment extends TaskListFragment { } } + protected void postLoadTagData() { + // stub + } + @Override public TagData getActiveTagData() { return tagData; diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java index 5af1ac94f..28c2fe721 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java @@ -156,6 +156,7 @@ abstract public class OrderedListUpdater { if(list == null) return; + System.err.println("u wanna? " + targetTaskId + " before " + moveBeforeTaskId); Node root = buildTreeModel(filter, list); Node target = findNode(root, targetTaskId); @@ -166,6 +167,7 @@ abstract public class OrderedListUpdater { target.parent = root; } else { Node sibling = findNode(root, moveBeforeTaskId); + System.err.println("siblin found: " + sibling); if(sibling != null && !ancestorOf(target, sibling)) { int index = sibling.parent.children.indexOf(sibling); @@ -211,6 +213,7 @@ abstract public class OrderedListUpdater { metadata.setValue(indentProperty(), indent); if(parentProperty() != null) metadata.setValue(parentProperty(), node.parent.taskId); + System.err.println("updated metadata " + metadata.getSetValues() + " where " + metadata.getMergedValues()); saveAndUpdateModifiedDate(metadata, node.taskId); } diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksFragmentHelper.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksFragmentHelper.java index 24bbc7bfd..3e0da7ab8 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksFragmentHelper.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksFragmentHelper.java @@ -83,7 +83,7 @@ public class SubtasksFragmentHelper { } public void beforeSetUpTaskList(Filter filter) { - updater.applySubtasksToFilter(filter, null); + updater.applySubtasksToFilter(filter, list); updater.sanitizeTaskList(filter, list); } @@ -101,11 +101,18 @@ public class SubtasksFragmentHelper { long targetTaskId = taskAdapter.getItemId(from); long destinationTaskId = taskAdapter.getItemId(to); + System.err.println("move " + from + " to " + to); + + updater.debugPrint(getFilter(), list); + if(to == getListView().getCount() - 1) updater.moveTo(getFilter(), list, targetTaskId, -1); else updater.moveTo(getFilter(), list, targetTaskId, destinationTaskId); + System.err.println(" --- after ---"); + updater.debugPrint(getFilter(), list); + fragment.loadTaskListContent(true); } }; diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java index 48aef75d3..44e7c3baa 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java @@ -1,6 +1,5 @@ package com.todoroo.astrid.subtasks; -import android.content.Intent; import android.view.View; import android.view.ViewGroup; @@ -21,10 +20,10 @@ public class SubtasksTagListFragment extends TagViewFragment { } @Override - protected void onNewIntent(Intent intent) { - super.onNewIntent(intent); + protected void postLoadTagData() { String list = "td:" + tagData.getId(); //$NON-NLS-1$ helper.setList(list); + System.err.println("set list to " + list); } /* (non-Javadoc) @@ -52,6 +51,7 @@ public class SubtasksTagListFragment extends TagViewFragment { @Override protected void setUpTaskList() { helper.beforeSetUpTaskList(filter); + System.err.println("sql: " + filter.sqlQuery); super.setUpTaskList(); diff --git a/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java b/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java index f5b76a34b..ab7e913eb 100644 --- a/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java @@ -81,7 +81,8 @@ public class TagFilterExposer extends BroadcastReceiver implements AstridFilterE filter.color = Color.GRAY; } - TagData tagData = PluginServices.getTagDataService().getTag(tag.tag, TagData.ID, TagData.USER_ID, TagData.MEMBER_COUNT); + TagData tagData = PluginServices.getTagDataService().getTag(tag.tag, TagData.ID, + TagData.USER_ID, TagData.MEMBER_COUNT); int deleteIntentLabel; if (tagData != null && tagData.getValue(TagData.MEMBER_COUNT) > 0 && tagData.getValue(TagData.USER_ID) != 0) deleteIntentLabel = R.string.tag_cm_leave; diff --git a/astrid/plugin-src/com/todoroo/astrid/tags/TagService.java b/astrid/plugin-src/com/todoroo/astrid/tags/TagService.java index 7dc21a74e..ae277b7b5 100644 --- a/astrid/plugin-src/com/todoroo/astrid/tags/TagService.java +++ b/astrid/plugin-src/com/todoroo/astrid/tags/TagService.java @@ -132,8 +132,10 @@ public final class TagService { * @return */ public QueryTemplate queryTemplate(Criterion criterion) { - return new QueryTemplate().join(Join.inner(Metadata.TABLE, - Task.ID.eq(Metadata.TASK))).where(tagEqIgnoreCase(tag, criterion)); + return new QueryTemplate().join(Join.inner(Metadata.TABLE.as("mtags"), + Criterion.and(Task.ID.eq(Field.field("mtags." + Metadata.TASK.name)), + Field.field("mtags." + Metadata.KEY.name).eq(KEY), + Field.field("mtags." + TAG.name).eqCaseInsensitive(tag)))).where(criterion); } } diff --git a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java index f09cf133c..6732998d0 100644 --- a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java @@ -205,12 +205,9 @@ public class AstridActivity extends FragmentActivity public final void setupTasklistFragmentWithFilter(Filter filter) { Class customTaskList = TaskListFragment.class; - System.err.println("default time - " + ((filter != null) ? filter.title : "null")); //$NON-NLS-1$ if(filter == null || CoreFilterExposer.isInbox(filter)) { - System.err.println("is inbox"); //$NON-NLS-1$ SharedPreferences publicPrefs = AstridPreferences.getPublicPrefs(this); int sortFlags = publicPrefs.getInt(SortHelper.PREF_SORT_FLAGS, 0); - System.err.println("is manual sort? " + SortHelper.isManualSort(sortFlags)); //$NON-NLS-1$ if(SortHelper.isManualSort(sortFlags)) customTaskList = SubtasksListFragment.class; } diff --git a/astrid/src/com/todoroo/astrid/ui/DraggableListView.java b/astrid/src/com/todoroo/astrid/ui/DraggableListView.java index c4dcfa106..92e970f51 100644 --- a/astrid/src/com/todoroo/astrid/ui/DraggableListView.java +++ b/astrid/src/com/todoroo/astrid/ui/DraggableListView.java @@ -218,7 +218,7 @@ public class DraggableListView extends ListView { } else if (i == childnum) { if (mDragPos < getCount() - 1) { marginTop = mItemHeightNormal; - // height = mItemHeightExpanded; + height = 2 * mItemHeightNormal; } }