From a5c33f3045200c2bf0c11322576e615ee077e61d Mon Sep 17 00:00:00 2001 From: Tim Su Date: Mon, 20 Feb 2012 12:39:33 -0800 Subject: [PATCH] Initial subtasks thing --- astrid/res/layout/task_list_body_subtasks.xml | 31 +++++++++++++ .../astrid/activity/AstridActivity.java | 2 +- .../activity/DraggableTaskListFragment.java | 43 +++---------------- .../astrid/activity/SubtasksListFragment.java | 35 +++++++++++++++ .../astrid/activity/TaskListActivity.java | 3 +- .../astrid/activity/TaskListFragment.java | 23 ++++++---- 6 files changed, 90 insertions(+), 47 deletions(-) create mode 100644 astrid/res/layout/task_list_body_subtasks.xml create mode 100644 astrid/src/com/todoroo/astrid/activity/SubtasksListFragment.java diff --git a/astrid/res/layout/task_list_body_subtasks.xml b/astrid/res/layout/task_list_body_subtasks.xml new file mode 100644 index 000000000..f2aab0d9a --- /dev/null +++ b/astrid/res/layout/task_list_body_subtasks.xml @@ -0,0 +1,31 @@ + + + + + + + + + + diff --git a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java index 0689a2545..371c7507c 100644 --- a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java @@ -189,7 +189,7 @@ public class AstridActivity extends FragmentActivity } protected final void setupTasklistFragmentWithFilter(Filter filter) { - setupTasklistFragmentWithFilterAndCustomTaskList(filter, TaskListFragment.class); + setupTasklistFragmentWithFilterAndCustomTaskList(filter, SubtasksListFragment.class); } protected final void setupTasklistFragmentWithFilterAndCustomTaskList(Filter filter, Class customTaskList) { diff --git a/astrid/src/com/todoroo/astrid/activity/DraggableTaskListFragment.java b/astrid/src/com/todoroo/astrid/activity/DraggableTaskListFragment.java index 51ff0fd00..3d75b8421 100644 --- a/astrid/src/com/todoroo/astrid/activity/DraggableTaskListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/DraggableTaskListFragment.java @@ -5,7 +5,6 @@ import java.util.Arrays; import java.util.concurrent.atomic.AtomicReference; import android.database.Cursor; -import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; @@ -17,9 +16,7 @@ import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.Property.IntegerProperty; import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.astrid.adapter.TaskAdapter; -import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.data.Task; -import com.todoroo.astrid.helper.SyncActionHelper; /** * Activity for working with draggable task lists, like Google Tasks lists @@ -44,48 +41,20 @@ public class DraggableTaskListFragment extends TaskListFragment { return tlv; } - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - } - @Override protected View getListBody(ViewGroup root) { return getActivity().getLayoutInflater().inflate(R.layout.task_list_body_draggable, root, false); } @Override - protected void setUpUiComponents() { - super.setUpUiComponents(); - //getView().findViewById(R.id.sortContainer).setVisibility(View.GONE); + protected TaskAdapter createTaskAdapter(TodorooCursor cursor) { + return new DraggableTaskAdapter(this, R.layout.task_adapter_draggable_row, + cursor, sqlQueryTemplate, false, null); } - // --- task adapter - - /** - * Fill in the Task List with current items - * @param withCustomId force task with given custom id to be part of list - */ @Override - protected void setUpTaskList() { - sqlQueryTemplate.set(SortHelper.adjustQueryForFlagsAndSort(filter.sqlQuery, - sortFlags, sortSort)); - - // perform query - TodorooCursor currentCursor = taskService.fetchFiltered( - sqlQueryTemplate.get(), null, getProperties()); - getActivity().startManagingCursor(currentCursor); - - // set up list adapters - taskAdapter = new DraggableTaskAdapter(this, R.layout.task_adapter_draggable_row, - currentCursor, sqlQueryTemplate, false, null); - - setListAdapter(taskAdapter); - getListView().setOnScrollListener(this); - registerForContextMenu(getListView()); - - syncActionHelper = new SyncActionHelper(getActivity()); - loadTaskListContent(false); + protected void setUpUiComponents() { + super.setUpUiComponents(); getTouchListView().setOnTouchListener(new OnTouchListener() { @Override @@ -95,6 +64,8 @@ public class DraggableTaskListFragment extends TaskListFragment { }); } + // --- task adapter + public Property[] getProperties() { ArrayList> properties = new ArrayList>(Arrays.asList(TaskAdapter.PROPERTIES)); if(getIndentProperty() != null) diff --git a/astrid/src/com/todoroo/astrid/activity/SubtasksListFragment.java b/astrid/src/com/todoroo/astrid/activity/SubtasksListFragment.java new file mode 100644 index 000000000..f17454658 --- /dev/null +++ b/astrid/src/com/todoroo/astrid/activity/SubtasksListFragment.java @@ -0,0 +1,35 @@ +package com.todoroo.astrid.activity; + +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnTouchListener; +import android.view.ViewGroup; + +import com.commonsware.cwac.tlv.TouchListView; +import com.timsu.astrid.R; + +public class SubtasksListFragment extends TaskListFragment { + + public TouchListView getTouchListView() { + TouchListView tlv = (TouchListView) getListView(); + return tlv; + } + + @Override + protected View getListBody(ViewGroup root) { + return getActivity().getLayoutInflater().inflate(R.layout.task_list_body_subtasks, root, false); + } + + @Override + protected void setUpUiComponents() { + super.setUpUiComponents(); + + getTouchListView().setOnTouchListener(new OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + return false; + } + }); + } + +} diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java index 79451c127..f76e273ae 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java @@ -142,7 +142,8 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener commentsButton.setOnClickListener(commentsButtonClickListener); Filter savedFilter = getIntent().getParcelableExtra(TaskListFragment.TOKEN_FILTER); - if (getIntent().getIntExtra(TaskListFragment.TOKEN_SOURCE, Constants.SOURCE_DEFAULT) == Constants.SOURCE_NOTIFICATION) + if (getIntent().getIntExtra(TaskListFragment.TOKEN_SOURCE, Constants.SOURCE_DEFAULT) == + Constants.SOURCE_NOTIFICATION) setupTasklistFragmentWithFilterAndCustomTaskList(savedFilter, NotificationFragment.class); else setupTasklistFragmentWithFilter(savedFilter); diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java index 8b2a5d704..35df389ed 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java @@ -764,6 +764,18 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, syncActionHelper.request(); } + protected TaskAdapter createTaskAdapter(TodorooCursor cursor) { + return new TaskAdapter(this, R.layout.task_adapter_row, + cursor, sqlQueryTemplate, false, + new OnCompletedTaskListener() { + @Override + public void onCompletedTask(Task item, boolean newState) { + if (newState == true) + onTaskCompleted(item); + } + }); + } + /** * Fill in the Task List with current items * @@ -782,15 +794,8 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, sqlQueryTemplate.get(), null, TaskAdapter.PROPERTIES); // set up list adapters - taskAdapter = new TaskAdapter(this, R.layout.task_adapter_row, - currentCursor, sqlQueryTemplate, false, - new OnCompletedTaskListener() { - @Override - public void onCompletedTask(Task item, boolean newState) { - if (newState == true) - onTaskCompleted(item); - } - }); + taskAdapter = createTaskAdapter(currentCursor); + setListAdapter(taskAdapter); getListView().setOnScrollListener(this); registerForContextMenu(getListView());