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;
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.data.Task;
import com.todoroo.astrid.data.TaskListMetadata;
@ -23,7 +23,6 @@ public class SubtasksTestCase extends DatabaseTestCase {
@Inject TaskListMetadataDao taskListMetadataDao;
@Inject TaskService taskService;
@Inject Preferences preferences;
@Inject BuiltInFilters builtInFilters;
protected SubtasksUpdater<TaskListMetadata> updater;
protected Filter filter;
@ -42,7 +41,7 @@ public class SubtasksTestCase extends DatabaseTestCase {
@Override
protected void setUp() {
super.setUp();
filter = builtInFilters.getMyTasks();
filter = BuiltInFilterExposer.getMyTasksFilter(getContext().getResources());
preferences.clear(SubtasksUpdater.ACTIVE_TASKS_ORDER);
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.Filter;
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.data.RemoteModel;
import com.todoroo.astrid.data.TagData;
@ -73,7 +73,6 @@ public class TaskListActivity extends AstridActivity implements OnFilterItemClic
@Inject ActivityPreferences preferences;
@Inject GtasksPreferenceService gtasksPreferenceService;
@Inject VoiceInputAssistant voiceInputAssistant;
@Inject BuiltInFilters builtInFilters;
@Inject Tracker tracker;
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);
if (savedFilter == null) {
savedFilter = builtInFilters.getMyTasks();
savedFilter = getDefaultFilter();
extras.putAll(configureIntentAndExtrasWithFilter(getIntent(), savedFilter));
}
@ -252,6 +251,10 @@ public class TaskListActivity extends AstridActivity implements OnFilterItemClic
return true;
}
protected Filter getDefaultFilter() {
return BuiltInFilterExposer.getMyTasksFilter(getResources());
}
@Override
public boolean onFilterItemClicked(FilterListItem item) {
TaskEditFragment.removeExtrasFromIntent(getIntent());
@ -501,7 +504,7 @@ public class TaskListActivity extends AstridActivity implements OnFilterItemClic
activeUuid = tagData.getUuid();
}
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
} else {
tlf.refresh();
@ -518,7 +521,7 @@ public class TaskListActivity extends AstridActivity implements OnFilterItemClic
CustomFilter customFilter = data.getParcelableExtra(FilterSettingsActivity.TOKEN_FILTER);
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, customFilter);
} 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();

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

@ -31,58 +31,58 @@ import java.util.ArrayList;
import java.util.List;
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 Filter today;
private final Filter recentlyModified;
private final Filter uncategorized;
private final Preferences preferences;
private final Context context;
@Inject
public BuiltInFilters(@ForApplication Context context) {
Resources resources = context.getResources();
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() {
return myTasks;
public BuiltInFilterExposer(@ForApplication Context context, Preferences preferences) {
this.context = context;
this.preferences = preferences;
}
public Filter getToday() {
return today;
public Filter getMyTasksFilter() {
Filter myTasksFilter = getMyTasksFilter(context.getResources());
myTasksFilter.icon = R.drawable.ic_inbox_24dp;
return myTasksFilter;
}
public Filter getRecentlyModified() {
return recentlyModified;
public List<Filter> getFilters() {
Resources r = context.getResources();
// core filters
List<Filter> filters = new ArrayList<>();
if (preferences.getBoolean(R.string.p_show_today_filter, true)) {
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)) {
Filter recentlyModifiedFilter = getRecentlyModifiedFilter(r);
recentlyModifiedFilter.icon = R.drawable.ic_history_24dp;
filters.add(recentlyModifiedFilter);
}
if (preferences.getBoolean(R.string.p_show_not_in_list_filter, true)) {
Filter uncategorizedFilter = getUncategorizedFilter(r);
uncategorizedFilter.icon = R.drawable.ic_label_outline_24dp;
filters.add(uncategorizedFilter);
}
// transmit filter list
return filters;
}
public Filter getUncategorized() {
return uncategorized;
}
public boolean isMyTasksFilter(Filter filter) {
return myTasks.equals(filter);
}
public boolean isTodayFilter(Filter filter) {
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),
new QueryTemplate().where(
Criterion.and(TaskCriteria.activeAndVisible(),
@ -121,4 +121,15 @@ public final class BuiltInFilters {
TaskCriteria.isVisible())),
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;
import android.content.Context;
import android.text.TextUtils;
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.Query;
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.TaskDao.TaskCriteria;
import com.todoroo.astrid.dao.TaskListMetadataDao;
@ -19,6 +20,7 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.AstridOrderedListUpdater.Node;
import org.tasks.R;
import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences;
import java.util.ArrayList;
@ -31,24 +33,23 @@ import timber.log.Timber;
public class SubtasksHelper {
private final Context context;
private final Preferences preferences;
private final TaskService taskService;
private final TagDataDao tagDataDao;
private final TaskListMetadataDao taskListMetadataDao;
private BuiltInFilters builtInFilters;
@Inject
public SubtasksHelper(Preferences preferences, TaskService taskService, TagDataDao tagDataDao,
TaskListMetadataDao taskListMetadataDao, BuiltInFilters builtInFilters) {
public SubtasksHelper(@ForApplication Context context, Preferences preferences, TaskService taskService, TagDataDao tagDataDao, TaskListMetadataDao taskListMetadataDao) {
this.context = context;
this.preferences = preferences;
this.taskService = taskService;
this.tagDataDao = tagDataDao;
this.taskListMetadataDao = taskListMetadataDao;
this.builtInFilters = builtInFilters;
}
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)) {
return true;
}
@ -70,9 +71,9 @@ public class SubtasksHelper {
TaskListMetadata tlm = null;
if (tagData != null) {
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);
} else if (builtInFilters.isTodayFilter(filter)) {
} else if (BuiltInFilterExposer.isTodayFilter(context, filter)) {
tlm = taskListMetadataDao.fetchByTagId(TaskListMetadata.FILTER_ID_TODAY, TaskListMetadata.TASK_IDS);
}

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

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

@ -18,7 +18,7 @@ import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.api.Filter;
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.data.TagData;
import com.todoroo.astrid.tags.TagFilterExposer;
@ -46,15 +46,12 @@ public class WidgetHelper {
private final TagDataDao tagDataDao;
private final Preferences preferences;
private AlarmManager alarmManager;
private BuiltInFilters builtInFilters;
@Inject
public WidgetHelper(TagDataDao tagDataDao, Preferences preferences, AlarmManager alarmManager,
BuiltInFilters builtInFilters) {
public WidgetHelper(TagDataDao tagDataDao, Preferences preferences, AlarmManager alarmManager) {
this.tagDataDao = tagDataDao;
this.preferences = preferences;
this.alarmManager = alarmManager;
this.builtInFilters = builtInFilters;
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@ -143,7 +140,7 @@ public class WidgetHelper {
public Filter getFilter(Context context, int widgetId) {
// 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);
if (sql != null) {
sql = sql.replace("tasks.userId=0", "1"); // TODO: replace dirty hack for missing column

Loading…
Cancel
Save