Revert "Remove static BuiltInFilterExposer methods"

This reverts commit 0d85adcb28.

Conflicts:
	src/main/java/com/todoroo/astrid/activity/TaskListActivity.java
pull/384/head
Alex Baker 10 years ago
parent 876a474872
commit 70ed8fbcc2

@ -1,7 +1,7 @@
package com.todoroo.astrid.subtasks; package com.todoroo.astrid.subtasks;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.BuiltInFilters; import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.dao.TaskListMetadataDao; import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskListMetadata; import com.todoroo.astrid.data.TaskListMetadata;
@ -23,7 +23,6 @@ public class SubtasksTestCase extends DatabaseTestCase {
@Inject TaskListMetadataDao taskListMetadataDao; @Inject TaskListMetadataDao taskListMetadataDao;
@Inject TaskService taskService; @Inject TaskService taskService;
@Inject Preferences preferences; @Inject Preferences preferences;
@Inject BuiltInFilters builtInFilters;
protected SubtasksUpdater<TaskListMetadata> updater; protected SubtasksUpdater<TaskListMetadata> updater;
protected Filter filter; protected Filter filter;
@ -42,7 +41,7 @@ public class SubtasksTestCase extends DatabaseTestCase {
@Override @Override
protected void setUp() { protected void setUp() {
super.setUp(); super.setUp();
filter = builtInFilters.getMyTasks(); filter = BuiltInFilterExposer.getMyTasksFilter(getContext().getResources());
preferences.clear(SubtasksUpdater.ACTIVE_TASKS_ORDER); preferences.clear(SubtasksUpdater.ACTIVE_TASKS_ORDER);
updater = new SubtasksFilterUpdater(taskListMetadataDao, taskService); updater = new SubtasksFilterUpdater(taskListMetadataDao, taskService);
} }

@ -36,7 +36,7 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.CustomFilter; import com.todoroo.astrid.api.CustomFilter;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.core.BuiltInFilters; import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.dao.TagDataDao; import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.TagData;
@ -73,7 +73,6 @@ public class TaskListActivity extends AstridActivity implements OnFilterItemClic
@Inject ActivityPreferences preferences; @Inject ActivityPreferences preferences;
@Inject GtasksPreferenceService gtasksPreferenceService; @Inject GtasksPreferenceService gtasksPreferenceService;
@Inject VoiceInputAssistant voiceInputAssistant; @Inject VoiceInputAssistant voiceInputAssistant;
@Inject BuiltInFilters builtInFilters;
@Inject Tracker tracker; @Inject Tracker tracker;
private static final int REQUEST_EDIT_TAG = 11543; private static final int REQUEST_EDIT_TAG = 11543;
@ -153,7 +152,7 @@ public class TaskListActivity extends AstridActivity implements OnFilterItemClic
Filter savedFilter = getIntent().getParcelableExtra(TaskListFragment.TOKEN_FILTER); Filter savedFilter = getIntent().getParcelableExtra(TaskListFragment.TOKEN_FILTER);
if (savedFilter == null) { if (savedFilter == null) {
savedFilter = builtInFilters.getMyTasks(); savedFilter = getDefaultFilter();
extras.putAll(configureIntentAndExtrasWithFilter(getIntent(), savedFilter)); extras.putAll(configureIntentAndExtrasWithFilter(getIntent(), savedFilter));
} }
@ -252,6 +251,10 @@ public class TaskListActivity extends AstridActivity implements OnFilterItemClic
return true; return true;
} }
protected Filter getDefaultFilter() {
return BuiltInFilterExposer.getMyTasksFilter(getResources());
}
@Override @Override
public boolean onFilterItemClicked(FilterListItem item) { public boolean onFilterItemClicked(FilterListItem item) {
TaskEditFragment.removeExtrasFromIntent(getIntent()); TaskEditFragment.removeExtrasFromIntent(getIntent());
@ -501,7 +504,7 @@ public class TaskListActivity extends AstridActivity implements OnFilterItemClic
activeUuid = tagData.getUuid(); activeUuid = tagData.getUuid();
} }
if (activeUuid.equals(uuid)) { if (activeUuid.equals(uuid)) {
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, builtInFilters.getMyTasks()); // Handle in onPostResume() getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, BuiltInFilterExposer.getMyTasksFilter(getResources())); // Handle in onPostResume()
navigationDrawer.clear(); // Should auto refresh navigationDrawer.clear(); // Should auto refresh
} else { } else {
tlf.refresh(); tlf.refresh();
@ -518,7 +521,7 @@ public class TaskListActivity extends AstridActivity implements OnFilterItemClic
CustomFilter customFilter = data.getParcelableExtra(FilterSettingsActivity.TOKEN_FILTER); CustomFilter customFilter = data.getParcelableExtra(FilterSettingsActivity.TOKEN_FILTER);
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, customFilter); getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, customFilter);
} else if(AstridApiConstants.BROADCAST_EVENT_FILTER_DELETED.equals(action)) { } else if(AstridApiConstants.BROADCAST_EVENT_FILTER_DELETED.equals(action)) {
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, builtInFilters.getMyTasks()); getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, BuiltInFilterExposer.getMyTasksFilter(getResources()));
} }
navigationDrawer.refresh(); navigationDrawer.refresh();

@ -45,7 +45,7 @@ import com.todoroo.astrid.adapter.TaskAdapter.ViewHolder;
import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.BuiltInFilters; import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.TaskAttachmentDao; import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.dao.TaskListMetadataDao; import com.todoroo.astrid.dao.TaskListMetadataDao;
@ -136,7 +136,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
@Inject Injector injector; @Inject Injector injector;
@Inject GtasksPreferenceService gtasksPreferenceService; @Inject GtasksPreferenceService gtasksPreferenceService;
@Inject DialogBuilder dialogBuilder; @Inject DialogBuilder dialogBuilder;
@Inject BuiltInFilters builtInFilters;
protected Resources resources; protected Resources resources;
protected TaskAdapter taskAdapter = null; protected TaskAdapter taskAdapter = null;
@ -361,13 +360,13 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
filter = extras.getParcelable(TOKEN_FILTER); filter = extras.getParcelable(TOKEN_FILTER);
extras.remove(TOKEN_FILTER); // Otherwise writing this filter to parcel gives infinite recursion extras.remove(TOKEN_FILTER); // Otherwise writing this filter to parcel gives infinite recursion
} else { } else {
filter = builtInFilters.getMyTasks(); filter = BuiltInFilterExposer.getMyTasksFilter(resources);
} }
filter.setFilterQueryOverride(null); filter.setFilterQueryOverride(null);
isInbox = builtInFilters.isMyTasksFilter(filter); isInbox = BuiltInFilterExposer.isInbox(context, filter);
isTodayFilter = false; isTodayFilter = false;
if (!isInbox) { if (!isInbox) {
isTodayFilter = builtInFilters.isTodayFilter(filter); isTodayFilter = BuiltInFilterExposer.isTodayFilter(context, filter);
} }
initializeTaskListMetadata(); initializeTaskListMetadata();

@ -31,58 +31,58 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton;
@Singleton /**
public final class BuiltInFilters { * Exposes Astrid's built in filters to the NavigationDrawerFragment
*
* @author Tim Su <tim@todoroo.com>
*
*/
public final class BuiltInFilterExposer {
private final Filter myTasks; private final Preferences preferences;
private final Filter today; private final Context context;
private final Filter recentlyModified;
private final Filter uncategorized;
@Inject @Inject
public BuiltInFilters(@ForApplication Context context) { public BuiltInFilterExposer(@ForApplication Context context, Preferences preferences) {
Resources resources = context.getResources(); this.context = context;
this.preferences = preferences;
myTasks = getMyTasksFilter(resources);
myTasks.icon = R.drawable.ic_inbox_24dp;
today = getTodayFilter(resources);
today.icon = R.drawable.ic_today_24dp;
recentlyModified = getRecentlyModifiedFilter(resources);
recentlyModified.icon = R.drawable.ic_history_24dp;
uncategorized = getUncategorizedFilter(resources);
uncategorized.icon = R.drawable.ic_label_outline_24dp;
} }
public Filter getMyTasks() { public Filter getMyTasksFilter() {
return myTasks; Filter myTasksFilter = getMyTasksFilter(context.getResources());
myTasksFilter.icon = R.drawable.ic_inbox_24dp;
return myTasksFilter;
} }
public Filter getToday() { public List<Filter> getFilters() {
return today; Resources r = context.getResources();
} // core filters
List<Filter> filters = new ArrayList<>();
public Filter getRecentlyModified() { if (preferences.getBoolean(R.string.p_show_today_filter, true)) {
return recentlyModified; Filter todayFilter = getTodayFilter(r);
todayFilter.icon = R.drawable.ic_today_24dp;
filters.add(todayFilter);
} }
if (preferences.getBoolean(R.string.p_show_recently_modified_filter, true)) {
public Filter getUncategorized() { Filter recentlyModifiedFilter = getRecentlyModifiedFilter(r);
return uncategorized; recentlyModifiedFilter.icon = R.drawable.ic_history_24dp;
filters.add(recentlyModifiedFilter);
} }
if (preferences.getBoolean(R.string.p_show_not_in_list_filter, true)) {
public boolean isMyTasksFilter(Filter filter) { Filter uncategorizedFilter = getUncategorizedFilter(r);
return myTasks.equals(filter); uncategorizedFilter.icon = R.drawable.ic_label_outline_24dp;
filters.add(uncategorizedFilter);
} }
// transmit filter list
public boolean isTodayFilter(Filter filter) { return filters;
return today.equals(filter);
} }
private static Filter getMyTasksFilter(Resources r) { /**
* Build inbox filter
*/
public static Filter getMyTasksFilter(Resources r) {
return new Filter(r.getString(R.string.BFE_Active), return new Filter(r.getString(R.string.BFE_Active),
new QueryTemplate().where( new QueryTemplate().where(
Criterion.and(TaskCriteria.activeAndVisible(), Criterion.and(TaskCriteria.activeAndVisible(),
@ -121,4 +121,15 @@ public final class BuiltInFilters {
TaskCriteria.isVisible())), TaskCriteria.isVisible())),
null); null);
} }
/**
* Is this the inbox?
*/
public static boolean isInbox(Context context, Filter filter) {
return (filter != null && filter.equals(getMyTasksFilter(context.getResources())));
}
public static boolean isTodayFilter(Context context, Filter filter) {
return (filter != null && filter.equals(getTodayFilter(context.getResources())));
}
} }

@ -1,5 +1,6 @@
package com.todoroo.astrid.subtasks; package com.todoroo.astrid.subtasks;
import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.Property;
@ -7,7 +8,7 @@ import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.Query;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.BuiltInFilters; import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.dao.TagDataDao; import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.dao.TaskListMetadataDao; import com.todoroo.astrid.dao.TaskListMetadataDao;
@ -19,6 +20,7 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.AstridOrderedListUpdater.Node; import com.todoroo.astrid.subtasks.AstridOrderedListUpdater.Node;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import java.util.ArrayList; import java.util.ArrayList;
@ -31,24 +33,23 @@ import timber.log.Timber;
public class SubtasksHelper { public class SubtasksHelper {
private final Context context;
private final Preferences preferences; private final Preferences preferences;
private final TaskService taskService; private final TaskService taskService;
private final TagDataDao tagDataDao; private final TagDataDao tagDataDao;
private final TaskListMetadataDao taskListMetadataDao; private final TaskListMetadataDao taskListMetadataDao;
private BuiltInFilters builtInFilters;
@Inject @Inject
public SubtasksHelper(Preferences preferences, TaskService taskService, TagDataDao tagDataDao, public SubtasksHelper(@ForApplication Context context, Preferences preferences, TaskService taskService, TagDataDao tagDataDao, TaskListMetadataDao taskListMetadataDao) {
TaskListMetadataDao taskListMetadataDao, BuiltInFilters builtInFilters) { this.context = context;
this.preferences = preferences; this.preferences = preferences;
this.taskService = taskService; this.taskService = taskService;
this.tagDataDao = tagDataDao; this.tagDataDao = tagDataDao;
this.taskListMetadataDao = taskListMetadataDao; this.taskListMetadataDao = taskListMetadataDao;
this.builtInFilters = builtInFilters;
} }
public boolean shouldUseSubtasksFragmentForFilter(Filter filter) { public boolean shouldUseSubtasksFragmentForFilter(Filter filter) {
if(filter == null || builtInFilters.isMyTasksFilter(filter) || builtInFilters.isTodayFilter(filter) || filter.isTagFilter()) { if(filter == null || BuiltInFilterExposer.isInbox(context, filter) || BuiltInFilterExposer.isTodayFilter(context, filter) || filter.isTagFilter()) {
if(preferences.getBoolean(R.string.p_manual_sort, false)) { if(preferences.getBoolean(R.string.p_manual_sort, false)) {
return true; return true;
} }
@ -70,9 +71,9 @@ public class SubtasksHelper {
TaskListMetadata tlm = null; TaskListMetadata tlm = null;
if (tagData != null) { if (tagData != null) {
tlm = taskListMetadataDao.fetchByTagId(tagData.getUuid(), TaskListMetadata.TASK_IDS); tlm = taskListMetadataDao.fetchByTagId(tagData.getUuid(), TaskListMetadata.TASK_IDS);
} else if (builtInFilters.isMyTasksFilter(filter)) { } else if (BuiltInFilterExposer.isInbox(context, filter)) {
tlm = taskListMetadataDao.fetchByTagId(TaskListMetadata.FILTER_ID_ALL, TaskListMetadata.TASK_IDS); tlm = taskListMetadataDao.fetchByTagId(TaskListMetadata.FILTER_ID_ALL, TaskListMetadata.TASK_IDS);
} else if (builtInFilters.isTodayFilter(filter)) { } else if (BuiltInFilterExposer.isTodayFilter(context, filter)) {
tlm = taskListMetadataDao.fetchByTagId(TaskListMetadata.FILTER_ID_TODAY, TaskListMetadata.TASK_IDS); tlm = taskListMetadataDao.fetchByTagId(TaskListMetadata.FILTER_ID_TODAY, TaskListMetadata.TASK_IDS);
} }

@ -2,7 +2,6 @@ package org.tasks;
import android.util.Log; import android.util.Log;
import com.todoroo.astrid.core.BuiltInFilters;
import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.MetadataDao; import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.dao.StoreObjectDao;
@ -56,7 +55,6 @@ public class Tasks extends InjectingApplication {
@Inject SyncThrottle syncThrottle; @Inject SyncThrottle syncThrottle;
@Inject Preferences preferences; @Inject Preferences preferences;
@Inject Tracker tracker; @Inject Tracker tracker;
@Inject BuiltInFilters builtInFilters;
@Override @Override
public void onCreate() { public void onCreate() {

@ -1,56 +1,43 @@
package org.tasks.filters; package org.tasks.filters;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.BuiltInFilters; import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.core.CustomFilterExposer; import com.todoroo.astrid.core.CustomFilterExposer;
import com.todoroo.astrid.gtasks.GtasksFilterExposer; import com.todoroo.astrid.gtasks.GtasksFilterExposer;
import com.todoroo.astrid.tags.TagFilterExposer; import com.todoroo.astrid.tags.TagFilterExposer;
import com.todoroo.astrid.timers.TimerFilterExposer; import com.todoroo.astrid.timers.TimerFilterExposer;
import org.tasks.R;
import org.tasks.preferences.Preferences;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
public class FilterProvider { public class FilterProvider {
private final BuiltInFilters builtInFilters; private final BuiltInFilterExposer builtInFilterExposer;
private final TimerFilterExposer timerFilterExposer; private final TimerFilterExposer timerFilterExposer;
private final CustomFilterExposer customFilterExposer; private final CustomFilterExposer customFilterExposer;
private final TagFilterExposer tagFilterExposer; private final TagFilterExposer tagFilterExposer;
private final GtasksFilterExposer gtasksFilterExposer; private final GtasksFilterExposer gtasksFilterExposer;
private final Preferences preferences;
@Inject @Inject
public FilterProvider(BuiltInFilters builtInFilters, TimerFilterExposer timerFilterExposer, public FilterProvider(BuiltInFilterExposer builtInFilterExposer, TimerFilterExposer timerFilterExposer,
CustomFilterExposer customFilterExposer, TagFilterExposer tagFilterExposer, CustomFilterExposer customFilterExposer, TagFilterExposer tagFilterExposer,
GtasksFilterExposer gtasksFilterExposer, Preferences preferences) { GtasksFilterExposer gtasksFilterExposer) {
this.builtInFilters = builtInFilters; this.builtInFilterExposer = builtInFilterExposer;
this.timerFilterExposer = timerFilterExposer; this.timerFilterExposer = timerFilterExposer;
this.customFilterExposer = customFilterExposer; this.customFilterExposer = customFilterExposer;
this.tagFilterExposer = tagFilterExposer; this.tagFilterExposer = tagFilterExposer;
this.gtasksFilterExposer = gtasksFilterExposer; this.gtasksFilterExposer = gtasksFilterExposer;
this.preferences = preferences;
} }
public Filter getMyTasksFilter() { public Filter getMyTasksFilter() {
return builtInFilters.getMyTasks(); return builtInFilterExposer.getMyTasksFilter();
} }
public List<Filter> getFilters() { public List<Filter> getFilters() {
return new ArrayList<Filter>() {{ return new ArrayList<Filter>() {{
if (preferences.getBoolean(R.string.p_show_today_filter, true)) { addAll(builtInFilterExposer.getFilters());
add(builtInFilters.getToday());
}
if (preferences.getBoolean(R.string.p_show_recently_modified_filter, true)) {
add(builtInFilters.getRecentlyModified());
}
if (preferences.getBoolean(R.string.p_show_not_in_list_filter, true)) {
add(builtInFilters.getUncategorized());
}
addAll(timerFilterExposer.getFilters()); addAll(timerFilterExposer.getFilters());
addAll(customFilterExposer.getFilters()); addAll(customFilterExposer.getFilters());
}}; }};

@ -18,7 +18,7 @@ import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.BuiltInFilters; import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.dao.TagDataDao; import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.tags.TagFilterExposer; import com.todoroo.astrid.tags.TagFilterExposer;
@ -46,15 +46,12 @@ public class WidgetHelper {
private final TagDataDao tagDataDao; private final TagDataDao tagDataDao;
private final Preferences preferences; private final Preferences preferences;
private AlarmManager alarmManager; private AlarmManager alarmManager;
private BuiltInFilters builtInFilters;
@Inject @Inject
public WidgetHelper(TagDataDao tagDataDao, Preferences preferences, AlarmManager alarmManager, public WidgetHelper(TagDataDao tagDataDao, Preferences preferences, AlarmManager alarmManager) {
BuiltInFilters builtInFilters) {
this.tagDataDao = tagDataDao; this.tagDataDao = tagDataDao;
this.preferences = preferences; this.preferences = preferences;
this.alarmManager = alarmManager; this.alarmManager = alarmManager;
this.builtInFilters = builtInFilters;
} }
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@ -143,7 +140,7 @@ public class WidgetHelper {
public Filter getFilter(Context context, int widgetId) { public Filter getFilter(Context context, int widgetId) {
// base our filter off the inbox filter, replace stuff if we have it // base our filter off the inbox filter, replace stuff if we have it
Filter filter = builtInFilters.getMyTasks(); Filter filter = BuiltInFilterExposer.getMyTasksFilter(context.getResources());
String sql = preferences.getStringValue(WidgetConfigActivity.PREF_SQL + widgetId); String sql = preferences.getStringValue(WidgetConfigActivity.PREF_SQL + widgetId);
if (sql != null) { if (sql != null) {
sql = sql.replace("tasks.userId=0", "1"); // TODO: replace dirty hack for missing column sql = sql.replace("tasks.userId=0", "1"); // TODO: replace dirty hack for missing column

Loading…
Cancel
Save