/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.subtasks;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import com.timsu.astrid.R;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskListMetadata;
/**
* Fragment for subtasks
*
* @author Tim Su <tim@astrid.com>
*
*/
public class SubtasksListFragment extends TaskListFragment {
protected OrderedListFragmentHelperInterface<?> helper;
private int lastVisibleIndex = -1;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
helper = createFragmentHelper();
super.onActivityCreated(savedInstanceState);
}
protected OrderedListFragmentHelperInterface<?> createFragmentHelper() {
AstridOrderedListFragmentHelper<TaskListMetadata> olfh =
new AstridOrderedListFragmentHelper<TaskListMetadata>(this, new SubtasksFilterUpdater());
return olfh;
}
@Override
protected View getListBody(ViewGroup root) {
return getActivity().getLayoutInflater().inflate(R.layout.task_list_body_subtasks, root, false);
}
@Override
protected void setUpUiComponents() {
super.setUpUiComponents();
helper.setUpUiComponents();
}
@Override
public void setUpTaskList() {
if (helper instanceof AstridOrderedListFragmentHelper) {
((AstridOrderedListFragmentHelper<TaskListMetadata>) helper).setList(taskListMetadata);
}
helper.beforeSetUpTaskList(filter);
super.setUpTaskList();
unregisterForContextMenu(getListView());
}
@Override
public void onPause() {
super.onPause();
lastVisibleIndex = getListView().getFirstVisiblePosition();
}
@Override
public void onResume() {
super.onResume();
if (lastVisibleIndex >=0) {
getListView().setSelection(lastVisibleIndex);
}
}
@Override
protected boolean isDraggable() {
return true;
}
@Override
public void onTaskCreated(Task task) {
super.onTaskCreated(task);
helper.onCreateTask(task);
}
@Override
protected void onTaskDelete(Task task) {
super.onTaskDelete(task);
helper.onDeleteTask(task);
}
@Override
protected TaskAdapter createTaskAdapter(TodorooCursor<Task> cursor) {
return helper.createTaskAdapter(cursor, sqlQueryTemplate);
}
@Override
protected void refresh() {
initializeTaskListMetadata();
setUpTaskList();
}
}