|
|
@ -3,6 +3,7 @@ package com.todoroo.astrid.activity;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map.Entry;
|
|
|
|
import java.util.Map.Entry;
|
|
|
|
|
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
|
|
|
|
|
|
|
import android.app.AlertDialog;
|
|
|
|
import android.app.AlertDialog;
|
|
|
|
import android.app.ListActivity;
|
|
|
|
import android.app.ListActivity;
|
|
|
@ -48,6 +49,7 @@ import com.flurry.android.FlurryAgent;
|
|
|
|
import com.timsu.astrid.R;
|
|
|
|
import com.timsu.astrid.R;
|
|
|
|
import com.todoroo.andlib.data.TodorooCursor;
|
|
|
|
import com.todoroo.andlib.data.TodorooCursor;
|
|
|
|
import com.todoroo.andlib.service.Autowired;
|
|
|
|
import com.todoroo.andlib.service.Autowired;
|
|
|
|
|
|
|
|
import com.todoroo.andlib.service.ContextManager;
|
|
|
|
import com.todoroo.andlib.service.DependencyInjectionService;
|
|
|
|
import com.todoroo.andlib.service.DependencyInjectionService;
|
|
|
|
import com.todoroo.andlib.service.ExceptionService;
|
|
|
|
import com.todoroo.andlib.service.ExceptionService;
|
|
|
|
import com.todoroo.andlib.utility.AndroidUtilities;
|
|
|
|
import com.todoroo.andlib.utility.AndroidUtilities;
|
|
|
@ -56,6 +58,7 @@ import com.todoroo.andlib.utility.DialogUtilities;
|
|
|
|
import com.todoroo.andlib.utility.Pair;
|
|
|
|
import com.todoroo.andlib.utility.Pair;
|
|
|
|
import com.todoroo.andlib.widget.GestureService;
|
|
|
|
import com.todoroo.andlib.widget.GestureService;
|
|
|
|
import com.todoroo.andlib.widget.GestureService.GestureInterface;
|
|
|
|
import com.todoroo.andlib.widget.GestureService.GestureInterface;
|
|
|
|
|
|
|
|
import com.todoroo.astrid.activity.SortSelectionActivity.OnSortSelectedListener;
|
|
|
|
import com.todoroo.astrid.adapter.TaskAdapter;
|
|
|
|
import com.todoroo.astrid.adapter.TaskAdapter;
|
|
|
|
import com.todoroo.astrid.adapter.TaskAdapter.ViewHolder;
|
|
|
|
import com.todoroo.astrid.adapter.TaskAdapter.ViewHolder;
|
|
|
|
import com.todoroo.astrid.api.AstridApiConstants;
|
|
|
|
import com.todoroo.astrid.api.AstridApiConstants;
|
|
|
@ -80,6 +83,8 @@ import com.todoroo.astrid.service.StartupService;
|
|
|
|
import com.todoroo.astrid.service.TaskService;
|
|
|
|
import com.todoroo.astrid.service.TaskService;
|
|
|
|
import com.todoroo.astrid.utility.Constants;
|
|
|
|
import com.todoroo.astrid.utility.Constants;
|
|
|
|
import com.todoroo.astrid.utility.Flags;
|
|
|
|
import com.todoroo.astrid.utility.Flags;
|
|
|
|
|
|
|
|
import com.todoroo.astrid.utility.Preferences;
|
|
|
|
|
|
|
|
import com.todoroo.astrid.widget.TasksWidget;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Primary activity for the Bente application. Shows a list of upcoming
|
|
|
|
* Primary activity for the Bente application. Shows a list of upcoming
|
|
|
@ -88,7 +93,8 @@ import com.todoroo.astrid.utility.Flags;
|
|
|
|
* @author Tim Su <tim@todoroo.com>
|
|
|
|
* @author Tim Su <tim@todoroo.com>
|
|
|
|
*
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public class TaskListActivity extends ListActivity implements OnScrollListener, GestureInterface {
|
|
|
|
public class TaskListActivity extends ListActivity implements OnScrollListener,
|
|
|
|
|
|
|
|
GestureInterface, OnSortSelectedListener {
|
|
|
|
|
|
|
|
|
|
|
|
// --- activities
|
|
|
|
// --- activities
|
|
|
|
|
|
|
|
|
|
|
@ -145,6 +151,9 @@ public class TaskListActivity extends ListActivity implements OnScrollListener,
|
|
|
|
ImageButton quickAddButton;
|
|
|
|
ImageButton quickAddButton;
|
|
|
|
EditText quickAddBox;
|
|
|
|
EditText quickAddBox;
|
|
|
|
Filter filter;
|
|
|
|
Filter filter;
|
|
|
|
|
|
|
|
int sortFlags;
|
|
|
|
|
|
|
|
int sortSort;
|
|
|
|
|
|
|
|
AtomicReference<String> sqlQueryTemplate = new AtomicReference<String>();
|
|
|
|
|
|
|
|
|
|
|
|
/* ======================================================================
|
|
|
|
/* ======================================================================
|
|
|
|
* ======================================================= initialization
|
|
|
|
* ======================================================= initialization
|
|
|
@ -515,21 +524,18 @@ public class TaskListActivity extends ListActivity implements OnScrollListener,
|
|
|
|
* Fill in the Task List with current items
|
|
|
|
* Fill in the Task List with current items
|
|
|
|
* @param withCustomId force task with given custom id to be part of list
|
|
|
|
* @param withCustomId force task with given custom id to be part of list
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@SuppressWarnings("nls")
|
|
|
|
|
|
|
|
protected void setUpTaskList() {
|
|
|
|
protected void setUpTaskList() {
|
|
|
|
// use default ordering if none specified
|
|
|
|
sqlQueryTemplate.set(SortSelectionActivity.adjustSortAndFlags(filter.sqlQuery,
|
|
|
|
if(!filter.sqlQuery.toUpperCase().contains("ORDER BY")) {
|
|
|
|
sortFlags, sortSort));
|
|
|
|
filter.sqlQuery += " ORDER BY " + TaskService.defaultTaskOrder();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// perform query
|
|
|
|
// perform query
|
|
|
|
TodorooCursor<Task> currentCursor = taskService.fetchFiltered(
|
|
|
|
TodorooCursor<Task> currentCursor = taskService.fetchFiltered(
|
|
|
|
filter, null, TaskAdapter.PROPERTIES);
|
|
|
|
sqlQueryTemplate.get(), null, TaskAdapter.PROPERTIES);
|
|
|
|
startManagingCursor(currentCursor);
|
|
|
|
startManagingCursor(currentCursor);
|
|
|
|
|
|
|
|
|
|
|
|
// set up list adapters
|
|
|
|
// set up list adapters
|
|
|
|
taskAdapter = new TaskAdapter(this, R.layout.task_adapter_row,
|
|
|
|
taskAdapter = new TaskAdapter(this, R.layout.task_adapter_row,
|
|
|
|
currentCursor, filter, false, null);
|
|
|
|
currentCursor, sqlQueryTemplate, false, null);
|
|
|
|
setListAdapter(taskAdapter);
|
|
|
|
setListAdapter(taskAdapter);
|
|
|
|
getListView().setOnScrollListener(this);
|
|
|
|
getListView().setOnScrollListener(this);
|
|
|
|
registerForContextMenu(getListView());
|
|
|
|
registerForContextMenu(getListView());
|
|
|
@ -555,14 +561,13 @@ public class TaskListActivity extends ListActivity implements OnScrollListener,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// create a custom cursor
|
|
|
|
// create a custom cursor
|
|
|
|
if(filter.sqlQuery == null)
|
|
|
|
if(!sqlQueryTemplate.get().contains("WHERE"))
|
|
|
|
filter.sqlQuery = "";
|
|
|
|
sqlQueryTemplate.set(sqlQueryTemplate.get() + " WHERE " + TaskCriteria.byId(withCustomId));
|
|
|
|
if(!filter.sqlQuery.contains("WHERE"))
|
|
|
|
|
|
|
|
filter.sqlQuery += " WHERE " + TaskCriteria.byId(withCustomId);
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
filter.sqlQuery = filter.sqlQuery.replace("WHERE ", "WHERE " +
|
|
|
|
sqlQueryTemplate.set(sqlQueryTemplate.get().replace("WHERE ", "WHERE " +
|
|
|
|
TaskCriteria.byId(withCustomId) + " OR ");
|
|
|
|
TaskCriteria.byId(withCustomId) + " OR "));
|
|
|
|
currentCursor = taskService.fetchFiltered(filter, null, TaskAdapter.PROPERTIES);
|
|
|
|
|
|
|
|
|
|
|
|
currentCursor = taskService.fetchFiltered(sqlQueryTemplate.get(), null, TaskAdapter.PROPERTIES);
|
|
|
|
getListView().setFilterText("");
|
|
|
|
getListView().setFilterText("");
|
|
|
|
startManagingCursor(currentCursor);
|
|
|
|
startManagingCursor(currentCursor);
|
|
|
|
|
|
|
|
|
|
|
@ -724,7 +729,8 @@ public class TaskListActivity extends ListActivity implements OnScrollListener,
|
|
|
|
startActivityForResult(intent, ACTIVITY_SETTINGS);
|
|
|
|
startActivityForResult(intent, ACTIVITY_SETTINGS);
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
case MENU_SORT_ID:
|
|
|
|
case MENU_SORT_ID:
|
|
|
|
AlertDialog dialog = SortSelectionActivity.createDialog(this);
|
|
|
|
AlertDialog dialog = SortSelectionActivity.createDialog(this,
|
|
|
|
|
|
|
|
this, sortFlags, sortSort);
|
|
|
|
dialog.show();
|
|
|
|
dialog.show();
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
case MENU_HELP_ID:
|
|
|
|
case MENU_HELP_ID:
|
|
|
@ -815,4 +821,19 @@ public class TaskListActivity extends ListActivity implements OnScrollListener,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onSortSelected(boolean always, int flags, int sort) {
|
|
|
|
|
|
|
|
sortFlags = flags;
|
|
|
|
|
|
|
|
sortSort = sort;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(always) {
|
|
|
|
|
|
|
|
Preferences.setInt(SortSelectionActivity.PREF_SORT_FLAGS, flags);
|
|
|
|
|
|
|
|
Preferences.setInt(SortSelectionActivity.PREF_SORT_SORT, sort);
|
|
|
|
|
|
|
|
ContextManager.getContext().startService(new Intent(ContextManager.getContext(),
|
|
|
|
|
|
|
|
TasksWidget.UpdateService.class));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setUpTaskList();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|