package org.dodgybits.shuffle.android.list.config; import static org.dodgybits.shuffle.android.core.model.persistence.selector.Flag.yes; import java.util.HashMap; import org.dodgybits.shuffle.android.core.model.persistence.selector.TaskSelector; import org.dodgybits.shuffle.android.core.model.persistence.selector.TaskSelector.PredefinedQuery; import org.dodgybits.shuffle.android.list.activity.task.InboxActivity; import org.dodgybits.shuffle.android.list.activity.task.TabbedDueActionsActivity; import org.dodgybits.shuffle.android.list.activity.task.TopTasksActivity; import android.content.Context; import android.content.Intent; public class StandardTaskQueries { public static final String cInbox = "inbox"; public static final String cDueToday = "due_today"; public static final String cDueNextWeek = "due_next_week"; public static final String cDueNextMonth = "due_next_month"; public static final String cNextTasks = "next_tasks"; public static final String cTickler = "tickler"; public static final String cTrash = "trash"; private static final TaskSelector cInboxQuery = TaskSelector.newBuilder().setPredefined(PredefinedQuery.inbox).build(); private static final TaskSelector cDueTodayQuery = TaskSelector.newBuilder().setPredefined(PredefinedQuery.dueToday).build(); private static final TaskSelector cDueNextWeekQuery = TaskSelector.newBuilder().setPredefined(PredefinedQuery.dueNextWeek).build(); private static final TaskSelector cDueNextMonthQuery = TaskSelector.newBuilder().setPredefined(PredefinedQuery.dueNextMonth).build(); private static final TaskSelector cNextTasksQuery = TaskSelector.newBuilder().setPredefined(PredefinedQuery.nextTasks).build(); private static final TaskSelector cTicklerQuery = TaskSelector.newBuilder().setPredefined(PredefinedQuery.tickler).build(); private static final TaskSelector cTrashQuery = TaskSelector.newBuilder().setDeleted(yes).build(); private static final HashMap<String,TaskSelector> cQueryMap = new HashMap<String,TaskSelector>(); static { cQueryMap.put(cInbox, cInboxQuery); cQueryMap.put(cDueToday, cDueTodayQuery); cQueryMap.put(cDueNextWeek, cDueNextWeekQuery); cQueryMap.put(cDueNextMonth, cDueNextMonthQuery); cQueryMap.put(cNextTasks, cNextTasksQuery); cQueryMap.put(cTickler, cTicklerQuery); cQueryMap.put(cTrash, cTrashQuery); } public static TaskSelector getQuery(String name) { return cQueryMap.get(name); } public static Intent getActivityIntent(Context context, String name) { if (cInbox.equals(name)) { return new Intent(context, InboxActivity.class); } if (cNextTasks.equals(name)) { return new Intent(context, TopTasksActivity.class); } PredefinedQuery query = PredefinedQuery.dueToday; if (cDueNextWeek.equals(name)) { query = PredefinedQuery.dueNextWeek; } else if (cDueNextMonth.equals(name)) { query = PredefinedQuery.dueNextMonth; } Intent intent = new Intent(context, TabbedDueActionsActivity.class); intent.putExtra(TabbedDueActionsActivity.DUE_MODE, query.name()); return intent; } }