Remove static BuiltInFilterExposer methods

pull/384/head
Alex Baker 10 years ago
parent 4fb79be300
commit 0d85adcb28

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

@ -35,7 +35,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.BuiltInFilterExposer;
import com.todoroo.astrid.core.BuiltInFilters;
import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.TagData;
@ -70,6 +70,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
@Inject ActivityPreferences preferences;
@Inject GtasksPreferenceService gtasksPreferenceService;
@Inject VoiceInputAssistant voiceInputAssistant;
@Inject BuiltInFilters builtInFilters;
private static final int REQUEST_EDIT_TAG = 11543;
private static final int REQUEST_EDIT_FILTER = 11544;
@ -249,7 +250,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
}
protected Filter getDefaultFilter() {
return BuiltInFilterExposer.getMyTasksFilter(getResources());
return builtInFilters.getMyTasks();
}
@Override
@ -486,7 +487,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
activeUuid = tagData.getUuid();
}
if (activeUuid.equals(uuid)) {
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, BuiltInFilterExposer.getMyTasksFilter(getResources())); // Handle in onPostResume()
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, builtInFilters.getMyTasks()); // Handle in onPostResume()
navigationDrawer.clear(); // Should auto refresh
} else {
tlf.refresh();
@ -503,7 +504,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
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, BuiltInFilterExposer.getMyTasksFilter(getResources()));
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, builtInFilters.getMyTasks());
}
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.BuiltInFilterExposer;
import com.todoroo.astrid.core.BuiltInFilters;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.dao.TaskListMetadataDao;
@ -136,6 +136,7 @@ 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;
@ -360,13 +361,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 = BuiltInFilterExposer.getMyTasksFilter(resources);
filter = builtInFilters.getMyTasks();
}
filter.setFilterQueryOverride(null);
isInbox = BuiltInFilterExposer.isInbox(context, filter);
isInbox = builtInFilters.isMyTasksFilter(filter);
isTodayFilter = false;
if (!isInbox) {
isTodayFilter = BuiltInFilterExposer.isTodayFilter(context, filter);
isTodayFilter = builtInFilters.isTodayFilter(filter);
}
initializeTaskListMetadata();

@ -31,58 +31,58 @@ import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
/**
* Exposes Astrid's built in filters to the NavigationDrawerFragment
*
* @author Tim Su <tim@todoroo.com>
*
*/
public final class BuiltInFilterExposer {
@Singleton
public final class BuiltInFilters {
private final Preferences preferences;
private final Context context;
private final Filter myTasks;
private final Filter today;
private final Filter recentlyModified;
private final Filter uncategorized;
@Inject
public BuiltInFilterExposer(@ForApplication Context context, Preferences preferences) {
this.context = context;
this.preferences = preferences;
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 Filter getMyTasksFilter() {
Filter myTasksFilter = getMyTasksFilter(context.getResources());
myTasksFilter.icon = R.drawable.ic_inbox_24dp;
return myTasksFilter;
public Filter getToday() {
return today;
}
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 getRecentlyModified() {
return recentlyModified;
}
/**
* Build inbox filter
*/
public static Filter getMyTasksFilter(Resources r) {
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) {
return new Filter(r.getString(R.string.BFE_Active),
new QueryTemplate().where(
Criterion.and(TaskCriteria.activeAndVisible(),
@ -121,15 +121,4 @@ public final class BuiltInFilterExposer {
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,6 +1,5 @@
package com.todoroo.astrid.subtasks;
import android.content.Context;
import android.text.TextUtils;
import com.todoroo.andlib.data.Property;
@ -8,7 +7,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.BuiltInFilterExposer;
import com.todoroo.astrid.core.BuiltInFilters;
import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.dao.TaskListMetadataDao;
@ -20,7 +19,6 @@ 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;
@ -33,23 +31,24 @@ 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(@ForApplication Context context, Preferences preferences, TaskService taskService, TagDataDao tagDataDao, TaskListMetadataDao taskListMetadataDao) {
this.context = context;
public SubtasksHelper(Preferences preferences, TaskService taskService, TagDataDao tagDataDao,
TaskListMetadataDao taskListMetadataDao, BuiltInFilters builtInFilters) {
this.preferences = preferences;
this.taskService = taskService;
this.tagDataDao = tagDataDao;
this.taskListMetadataDao = taskListMetadataDao;
this.builtInFilters = builtInFilters;
}
public boolean shouldUseSubtasksFragmentForFilter(Filter filter) {
if(filter == null || BuiltInFilterExposer.isInbox(context, filter) || BuiltInFilterExposer.isTodayFilter(context, filter) || filter.isTagFilter()) {
if(filter == null || builtInFilters.isMyTasksFilter(filter) || builtInFilters.isTodayFilter(filter) || filter.isTagFilter()) {
if(preferences.getBoolean(R.string.p_manual_sort, false)) {
return true;
}
@ -71,9 +70,9 @@ public class SubtasksHelper {
TaskListMetadata tlm = null;
if (tagData != null) {
tlm = taskListMetadataDao.fetchByTagId(tagData.getUuid(), TaskListMetadata.TASK_IDS);
} else if (BuiltInFilterExposer.isInbox(context, filter)) {
} else if (builtInFilters.isMyTasksFilter(filter)) {
tlm = taskListMetadataDao.fetchByTagId(TaskListMetadata.FILTER_ID_ALL, TaskListMetadata.TASK_IDS);
} else if (BuiltInFilterExposer.isTodayFilter(context, filter)) {
} else if (builtInFilters.isTodayFilter(filter)) {
tlm = taskListMetadataDao.fetchByTagId(TaskListMetadata.FILTER_ID_TODAY, TaskListMetadata.TASK_IDS);
}

@ -2,6 +2,7 @@ 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;
@ -55,6 +56,7 @@ public class Tasks extends InjectingApplication {
@Inject SyncThrottle syncThrottle;
@Inject Preferences preferences;
@Inject Tracker tracker;
@Inject BuiltInFilters builtInFilters;
@Override
public void onCreate() {

@ -1,43 +1,56 @@
package org.tasks.filters;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.core.BuiltInFilters;
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 BuiltInFilterExposer builtInFilterExposer;
private final BuiltInFilters builtInFilters;
private final TimerFilterExposer timerFilterExposer;
private final CustomFilterExposer customFilterExposer;
private final TagFilterExposer tagFilterExposer;
private final GtasksFilterExposer gtasksFilterExposer;
private final Preferences preferences;
@Inject
public FilterProvider(BuiltInFilterExposer builtInFilterExposer, TimerFilterExposer timerFilterExposer,
public FilterProvider(BuiltInFilters builtInFilters, TimerFilterExposer timerFilterExposer,
CustomFilterExposer customFilterExposer, TagFilterExposer tagFilterExposer,
GtasksFilterExposer gtasksFilterExposer) {
GtasksFilterExposer gtasksFilterExposer, Preferences preferences) {
this.builtInFilterExposer = builtInFilterExposer;
this.builtInFilters = builtInFilters;
this.timerFilterExposer = timerFilterExposer;
this.customFilterExposer = customFilterExposer;
this.tagFilterExposer = tagFilterExposer;
this.gtasksFilterExposer = gtasksFilterExposer;
this.preferences = preferences;
}
public Filter getMyTasksFilter() {
return builtInFilterExposer.getMyTasksFilter();
return builtInFilters.getMyTasks();
}
public List<Filter> getFilters() {
return new ArrayList<Filter>() {{
addAll(builtInFilterExposer.getFilters());
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(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.BuiltInFilterExposer;
import com.todoroo.astrid.core.BuiltInFilters;
import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.tags.TagFilterExposer;
@ -36,7 +36,6 @@ import javax.inject.Inject;
import javax.inject.Singleton;
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
import static android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
@Singleton
@ -47,12 +46,15 @@ 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) {
public WidgetHelper(TagDataDao tagDataDao, Preferences preferences, AlarmManager alarmManager,
BuiltInFilters builtInFilters) {
this.tagDataDao = tagDataDao;
this.preferences = preferences;
this.alarmManager = alarmManager;
this.builtInFilters = builtInFilters;
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@ -141,7 +143,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 = BuiltInFilterExposer.getMyTasksFilter(context.getResources());
Filter filter = builtInFilters.getMyTasks();
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