diff --git a/build.gradle b/build.gradle index cb3db0c84..207d1bbbb 100644 --- a/build.gradle +++ b/build.gradle @@ -44,7 +44,7 @@ android { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.txt' - signingConfig signingConfigs.release + signingConfig signingConfigs.release } } diff --git a/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java b/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java index 6357d8cc8..aaab3f76b 100644 --- a/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java +++ b/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java @@ -1,7 +1,7 @@ package com.todoroo.astrid.subtasks; import com.todoroo.astrid.api.Filter; -import com.todoroo.astrid.core.CoreFilterExposer; +import com.todoroo.astrid.core.BuiltInFilterExposer; import com.todoroo.astrid.dao.TaskListMetadataDao; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.TaskListMetadata; @@ -41,7 +41,7 @@ public class SubtasksTestCase extends DatabaseTestCase { @Override protected void setUp() { super.setUp(); - filter = CoreFilterExposer.buildInboxFilter(getContext().getResources()); + filter = BuiltInFilterExposer.getMyTasksFilter(getContext().getResources()); preferences.clear(SubtasksUpdater.ACTIVE_TASKS_ORDER); updater = new SubtasksFilterUpdater(taskListMetadataDao, taskService); } diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 3ac54c1b9..8a96e436b 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -5,8 +5,8 @@ --> + android:versionName="4.7.5" + android:versionCode="342"> diff --git a/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java b/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java index b0f8943bf..fa733a0e9 100644 --- a/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java +++ b/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java @@ -18,8 +18,8 @@ import com.todoroo.astrid.api.Filter; import org.tasks.R; import org.tasks.filters.FilterCounter; +import org.tasks.filters.FilterProvider; import org.tasks.injection.InjectingListActivity; -import org.tasks.injection.Injector; import org.tasks.preferences.ActivityPreferences; import org.tasks.ui.NavigationDrawerFragment; @@ -28,8 +28,8 @@ import javax.inject.Inject; public class FilterShortcutActivity extends InjectingListActivity { @Inject FilterCounter filterCounter; - @Inject Injector injector; @Inject ActivityPreferences preferences; + @Inject FilterProvider filterProvider; private FilterAdapter adapter = null; @@ -45,7 +45,7 @@ public class FilterShortcutActivity extends InjectingListActivity { setContentView(R.layout.widget_config_activity); // set up ui - adapter = new FilterAdapter(injector, filterCounter, this, getListView(), + adapter = new FilterAdapter(filterProvider, filterCounter, this, getListView(), R.layout.filter_adapter_row, true); adapter.filterStyle = R.style.TextAppearance_FLA_Filter_Widget; setListAdapter(adapter); diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java index f33b0b3fa..b97c14415 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java @@ -32,7 +32,7 @@ import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; -import com.todoroo.astrid.core.CoreFilterExposer; +import com.todoroo.astrid.core.BuiltInFilterExposer; import com.todoroo.astrid.core.CustomFilterActivity; import com.todoroo.astrid.dao.TagDataDao; import com.todoroo.astrid.data.RemoteModel; @@ -190,7 +190,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList } protected Filter getDefaultFilter() { - return CoreFilterExposer.buildInboxFilter(getResources()); + return BuiltInFilterExposer.getMyTasksFilter(getResources()); } protected void initializeFragments() { @@ -391,7 +391,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList } if (activeUuid.equals(uuid)) { - getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, CoreFilterExposer.buildInboxFilter(getResources())); // Handle in onPostResume() + getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, BuiltInFilterExposer.getMyTasksFilter(getResources())); // Handle in onPostResume() navigationDrawer.clear(); // Should auto refresh } else { tlf.refresh(); diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index 6ce32b806..ab25c8dae 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -48,7 +48,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.CoreFilterExposer; +import com.todoroo.astrid.core.BuiltInFilterExposer; import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.dao.TaskAttachmentDao; import com.todoroo.astrid.dao.TaskListMetadataDao; @@ -351,13 +351,13 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel filter = extras.getParcelable(TOKEN_FILTER); extras.remove(TOKEN_FILTER); // Otherwise writing this filter to parcel gives infinite recursion } else { - filter = CoreFilterExposer.buildInboxFilter(resources); + filter = BuiltInFilterExposer.getMyTasksFilter(resources); } filter.setFilterQueryOverride(null); - isInbox = CoreFilterExposer.isInbox(filter); + isInbox = BuiltInFilterExposer.isInbox(filter); isTodayFilter = false; if (!isInbox) { - isTodayFilter = CoreFilterExposer.isTodayFilter(filter); + isTodayFilter = BuiltInFilterExposer.isTodayFilter(filter); } initializeTaskListMetadata(); diff --git a/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java b/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java index f773b9c17..f59f3be37 100644 --- a/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java +++ b/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java @@ -11,7 +11,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; -import android.os.Parcelable; import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; @@ -23,20 +22,13 @@ import android.widget.TextView; import com.todoroo.astrid.activity.AstridActivity; import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.api.AstridApiConstants; -import com.todoroo.astrid.api.AstridFilterExposer; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; -import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.api.FilterWithUpdate; -import com.todoroo.astrid.core.CoreFilterExposer; -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.filters.FilterCounter; -import org.tasks.injection.Injector; +import org.tasks.filters.FilterProvider; public class FilterAdapter extends ArrayAdapter { @@ -46,7 +38,7 @@ public class FilterAdapter extends ArrayAdapter { // --- instance variables - private Injector injector; + private final FilterProvider filterProvider; private final FilterCounter filterCounter; /** parent activity */ @@ -69,10 +61,10 @@ public class FilterAdapter extends ArrayAdapter { /** whether to skip Filters that launch intents instead of being real filters */ private final boolean skipIntentFilters; - public FilterAdapter(Injector injector, FilterCounter filterCounter, Activity activity, ListView listView, + public FilterAdapter(FilterProvider filterProvider, FilterCounter filterCounter, Activity activity, ListView listView, int rowLayout, boolean skipIntentFilters) { super(activity, 0); - this.injector = injector; + this.filterProvider = filterProvider; this.filterCounter = filterCounter; this.activity = activity; this.listView = listView; @@ -221,14 +213,8 @@ public class FilterAdapter extends ArrayAdapter { } } - private void populateFiltersToAdapter(AstridFilterExposer astridFilterExposer) { - Parcelable[] filters = astridFilterExposer.getFilters(injector); - if (filters == null) { - return; - } - - for (Parcelable item : filters) { - FilterListItem filter = (FilterListItem) item; + public void getLists() { + for (FilterListItem filter : filterProvider.getFilters()) { if(skipIntentFilters && !(filter instanceof Filter)) { continue; } @@ -237,15 +223,6 @@ public class FilterAdapter extends ArrayAdapter { addOrLookup((Filter) filter); } } - } - - public void getLists() { - populateFiltersToAdapter(new CoreFilterExposer()); - populateFiltersToAdapter(new TimerFilterExposer()); - populateFiltersToAdapter(new CustomFilterExposer()); - populateFiltersToAdapter(new TagFilterExposer()); - populateFiltersToAdapter(new GtasksFilterExposer()); - filterCounter.refreshFilterCounts(new Runnable() { @Override public void run() { diff --git a/src/main/java/com/todoroo/astrid/api/AstridFilterExposer.java b/src/main/java/com/todoroo/astrid/api/AstridFilterExposer.java deleted file mode 100644 index 654af3a01..000000000 --- a/src/main/java/com/todoroo/astrid/api/AstridFilterExposer.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (c) 2012 Todoroo Inc - * - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.astrid.api; - -import org.tasks.injection.Injector; - -/** - * Common interface for Astrids filter-exposers to provide their FilterListitem instances. - * - * @author Arne Jans - */ -public interface AstridFilterExposer { - public FilterListItem[] getFilters(Injector injector); -} diff --git a/src/main/java/com/todoroo/astrid/core/CoreFilterExposer.java b/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.java similarity index 60% rename from src/main/java/com/todoroo/astrid/core/CoreFilterExposer.java rename to src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.java index ab3d67bef..2c2fdbbed 100644 --- a/src/main/java/com/todoroo/astrid/core/CoreFilterExposer.java +++ b/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.java @@ -11,13 +11,14 @@ import android.content.res.Resources; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.sql.Criterion; +import com.todoroo.andlib.sql.Order; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.andlib.utility.AndroidUtilities; -import com.todoroo.astrid.api.AstridFilterExposer; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.PermaSql; +import com.todoroo.astrid.dao.MetadataDao; import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria; import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.data.Metadata; @@ -26,8 +27,6 @@ import com.todoroo.astrid.tags.TaskToTagMetadata; import org.tasks.R; import org.tasks.injection.ForApplication; -import org.tasks.injection.InjectingBroadcastReceiver; -import org.tasks.injection.Injector; import org.tasks.preferences.Preferences; import java.util.ArrayList; @@ -41,36 +40,47 @@ import javax.inject.Inject; * @author Tim Su * */ -public final class CoreFilterExposer extends InjectingBroadcastReceiver implements AstridFilterExposer { +public final class BuiltInFilterExposer { - @Inject Preferences preferences; - @Inject @ForApplication Context context; + private final Preferences preferences; + private final Context context; - private FilterListItem[] prepareFilters() { + @Inject + public BuiltInFilterExposer(@ForApplication Context context, Preferences preferences) { + this.context = context; + this.preferences = preferences; + } + + public List getFilters() { Resources r = context.getResources(); // core filters List filters = new ArrayList<>(3); - filters.add(buildInboxFilter(r)); + filters.add(getMyTasksFilter(r)); if (preferences.getBoolean(R.string.p_show_today_filter, true)) { filters.add(getTodayFilter(r)); } - + if (preferences.getBoolean(R.string.p_show_recently_modified_filter, true)) { + filters.add(getRecentlyModifiedFilter(r)); + } + if (preferences.getBoolean(R.string.p_show_not_in_list_filter, true)) { + filters.add(getUncategorizedFilter(r)); + } // transmit filter list - return filters.toArray(new FilterListItem[filters.size()]); + return filters; } /** * Build inbox filter */ - public static Filter buildInboxFilter(Resources r) { + public static Filter getMyTasksFilter(Resources r) { return new Filter(r.getString(R.string.BFE_Active), r.getString(R.string.BFE_Active), new QueryTemplate().where( Criterion.and(TaskCriteria.activeAndVisible(), Criterion.not(Task.ID.in(Query.select(Metadata.TASK).from(Metadata.TABLE).where( Criterion.and(MetadataCriteria.withKey(TaskToTagMetadata.KEY), TaskToTagMetadata.TAG_NAME.like("x_%", "x"))))))), //$NON-NLS-1$ //$NON-NLS-2$ - null); + null); } private static Filter getTodayFilter(Resources r) { @@ -83,25 +93,37 @@ public final class CoreFilterExposer extends InjectingBroadcastReceiver implemen Criterion.and(TaskCriteria.activeAndVisible(), Task.DUE_DATE.gt(0), Task.DUE_DATE.lte(PermaSql.VALUE_EOD))), - todayValues); + todayValues); + } + + private static Filter getRecentlyModifiedFilter(Resources r) { + return new Filter(r.getString(R.string.BFE_Recent), + r.getString(R.string.BFE_Recent), + new QueryTemplate().where( + Criterion.all).orderBy( + Order.desc(Task.MODIFICATION_DATE)).limit(15), + null); + } + + private static Filter getUncategorizedFilter(Resources r) { + return new Filter(r.getString(R.string.tag_FEx_untagged), + r.getString(R.string.tag_FEx_untagged), + new QueryTemplate().where(Criterion.and( + Criterion.not(Task.UUID.in(Query.select(TaskToTagMetadata.TASK_UUID).from(Metadata.TABLE) + .where(Criterion.and(MetadataDao.MetadataCriteria.withKey(TaskToTagMetadata.KEY), Metadata.DELETION_DATE.eq(0))))), + TaskCriteria.isActive(), + TaskCriteria.isVisible())), + null); } /** * Is this the inbox? */ public static boolean isInbox(Filter filter) { - return (filter != null && filter.equals(buildInboxFilter(ContextManager.getContext().getResources()))); + return (filter != null && filter.equals(getMyTasksFilter(ContextManager.getContext().getResources()))); } public static boolean isTodayFilter(Filter filter) { return (filter != null && filter.equals(getTodayFilter(ContextManager.getContext().getResources()))); } - - @Override - public FilterListItem[] getFilters(Injector injector) { - injector.inject(this); - - return prepareFilters(); - } - } diff --git a/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java b/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java index dd1980239..8421939dd 100644 --- a/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java +++ b/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java @@ -8,27 +8,17 @@ package com.todoroo.astrid.core; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; -import android.content.res.Resources; import android.os.Bundle; import com.todoroo.andlib.data.Callback; -import com.todoroo.andlib.sql.Criterion; -import com.todoroo.andlib.sql.Order; -import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.andlib.utility.DialogUtilities; -import com.todoroo.astrid.api.AstridFilterExposer; import com.todoroo.astrid.api.Filter; -import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.data.StoreObject; -import com.todoroo.astrid.data.Task; import org.tasks.R; import org.tasks.injection.ForApplication; import org.tasks.injection.InjectingActivity; -import org.tasks.injection.InjectingBroadcastReceiver; -import org.tasks.injection.Injector; -import org.tasks.preferences.Preferences; import java.util.ArrayList; import java.util.List; @@ -41,35 +31,23 @@ import javax.inject.Inject; * @author Tim Su * */ -public final class CustomFilterExposer extends InjectingBroadcastReceiver implements AstridFilterExposer { +public final class CustomFilterExposer { private static final String TOKEN_FILTER_ID = "id"; //$NON-NLS-1$ private static final String TOKEN_FILTER_NAME = "name"; //$NON-NLS-1$ - @Inject StoreObjectDao storeObjectDao; - @Inject Preferences preferences; - @Inject @ForApplication Context context; + private final StoreObjectDao storeObjectDao; + private final Context context; - private FilterListItem[] prepareFilters() { - Resources r = context.getResources(); - - return buildSavedFilters(context, r); + @Inject + public CustomFilterExposer(@ForApplication Context context, StoreObjectDao storeObjectDao) { + this.context = context; + this.storeObjectDao = storeObjectDao; } - private Filter[] buildSavedFilters(final Context context, Resources r) { + public List getFilters() { final List list = new ArrayList<>(); - // stock filters - if (preferences.getBoolean(R.string.p_show_recently_modified_filter, true)) { - Filter recent = new Filter(r.getString(R.string.BFE_Recent), - r.getString(R.string.BFE_Recent), - new QueryTemplate().where( - Criterion.all).orderBy( - Order.desc(Task.MODIFICATION_DATE)).limit(15), - null); - list.add(recent); - } - storeObjectDao.getSavedFilters(new Callback() { @Override public void apply(StoreObject savedFilter) { @@ -85,7 +63,7 @@ public final class CustomFilterExposer extends InjectingBroadcastReceiver implem } }); - return list.toArray(new Filter[list.size()]); + return list; } /** @@ -130,12 +108,4 @@ public final class CustomFilterExposer extends InjectingBroadcastReceiver implem }); } } - - @Override - public FilterListItem[] getFilters(Injector injector) { - injector.inject(this); - - return prepareFilters(); - } - } diff --git a/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java b/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java index 4f7384bfc..7d1fcb863 100644 --- a/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java +++ b/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java @@ -16,9 +16,7 @@ import com.todoroo.andlib.sql.Functions; import com.todoroo.andlib.sql.Join; import com.todoroo.andlib.sql.Order; import com.todoroo.andlib.sql.QueryTemplate; -import com.todoroo.astrid.api.AstridFilterExposer; import com.todoroo.astrid.api.Filter; -import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.api.PermaSql; import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria; @@ -28,27 +26,49 @@ import com.todoroo.astrid.data.Task; import org.tasks.R; import org.tasks.injection.ForApplication; -import org.tasks.injection.InjectingBroadcastReceiver; -import org.tasks.injection.Injector; +import java.util.Collections; import java.util.List; import javax.inject.Inject; +import static com.google.common.collect.Lists.newArrayList; +import static java.util.Collections.*; + /** * Exposes filters based on lists * * @author Tim Su * */ -public class GtasksFilterExposer extends InjectingBroadcastReceiver implements AstridFilterExposer { +public class GtasksFilterExposer { + + private final GtasksListService gtasksListService; + private final GtasksPreferenceService gtasksPreferenceService; + private final Context context; + private final GtasksMetadata gtasksMetadata; + + @Inject + public GtasksFilterExposer(@ForApplication Context context, GtasksListService gtasksListService, + GtasksPreferenceService gtasksPreferenceService, GtasksMetadata gtasksMetadata) { + this.context = context; + this.gtasksListService = gtasksListService; + this.gtasksPreferenceService = gtasksPreferenceService; + this.gtasksMetadata = gtasksMetadata; + } - @Inject GtasksListService gtasksListService; - @Inject GtasksPreferenceService gtasksPreferenceService; - @Inject @ForApplication Context context; - @Inject GtasksMetadata gtasksMetadata; + public List getFilters() { + // if we aren't logged in (or we are logged in to astrid.com), don't expose features + if(!gtasksPreferenceService.isLoggedIn()) { + return emptyList(); + } - private List lists; + List listFilters = newArrayList(); + for (GtasksList list : gtasksListService.getLists()) { + listFilters.add(filterFromList(gtasksMetadata, context, list)); + } + return listFilters; + } public static Filter filterFromList(GtasksMetadata gtasksMetadata, Context context, GtasksList list) { String listName = list.getName(); @@ -72,36 +92,4 @@ public class GtasksFilterExposer extends InjectingBroadcastReceiver implements A return filter; } - - private FilterListItem[] prepareFilters() { - // if we aren't logged in (or we are logged in to astrid.com), don't expose features - if(!gtasksPreferenceService.isLoggedIn()) { - return null; - } - - lists = gtasksListService.getLists(); - - // If user does not have any lists, don't show this section at all - if(noListsToShow()) { - return null; - } - - Filter[] listFilters = new Filter[lists.size()]; - for(int i = 0; i < lists.size(); i++) { - listFilters[i] = filterFromList(gtasksMetadata, context, lists.get(i)); - } - - return listFilters; - } - - private boolean noListsToShow() { - return lists.isEmpty(); - } - - @Override - public FilterListItem[] getFilters(Injector injector) { - injector.inject(this); - - return prepareFilters(); - } } diff --git a/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java b/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java index 5934e8f2f..83cb8f85f 100644 --- a/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java +++ b/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java @@ -9,7 +9,7 @@ import com.todoroo.andlib.sql.Query; import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterWithCustomIntent; -import com.todoroo.astrid.core.CoreFilterExposer; +import com.todoroo.astrid.core.BuiltInFilterExposer; import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.dao.TagDataDao; import com.todoroo.astrid.dao.TaskDao.TaskCriteria; @@ -34,7 +34,7 @@ public class SubtasksHelper { private static final Logger log = LoggerFactory.getLogger(SubtasksHelper.class); public static boolean shouldUseSubtasksFragmentForFilter(Preferences preferences, Filter filter) { - if(filter == null || CoreFilterExposer.isInbox(filter) || CoreFilterExposer.isTodayFilter(filter) || SubtasksHelper.isTagFilter(filter)) { + if(filter == null || BuiltInFilterExposer.isInbox(filter) || BuiltInFilterExposer.isTodayFilter(filter) || SubtasksHelper.isTagFilter(filter)) { int sortFlags = preferences.getSortFlags(); if(SortHelper.isManualSort(sortFlags)) { return true; @@ -69,9 +69,9 @@ public class SubtasksHelper { TaskListMetadata tlm = null; if (tagData != null) { tlm = tlmd.fetchByTagId(tagData.getUuid(), TaskListMetadata.TASK_IDS); - } else if (CoreFilterExposer.isInbox(filter)) { + } else if (BuiltInFilterExposer.isInbox(filter)) { tlm = tlmd.fetchByTagId(TaskListMetadata.FILTER_ID_ALL, TaskListMetadata.TASK_IDS); - } else if (CoreFilterExposer.isTodayFilter(filter)) { + } else if (BuiltInFilterExposer.isTodayFilter(filter)) { tlm = tlmd.fetchByTagId(TaskListMetadata.FILTER_ID_TODAY, TaskListMetadata.TASK_IDS); } diff --git a/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java b/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java index 02080392c..e601fc6c0 100644 --- a/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java +++ b/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java @@ -10,7 +10,6 @@ import android.content.ComponentName; import android.content.ContentValues; import android.content.Context; import android.content.Intent; -import android.content.res.Resources; import android.os.Bundle; import android.text.TextUtils; @@ -18,15 +17,12 @@ import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Field; import com.todoroo.andlib.sql.Join; -import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.astrid.actfm.TagViewFragment; -import com.todoroo.astrid.api.AstridFilterExposer; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.api.FilterWithUpdate; -import com.todoroo.astrid.dao.MetadataDao; import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.TagData; @@ -34,9 +30,6 @@ import com.todoroo.astrid.data.Task; import org.tasks.R; import org.tasks.injection.ForApplication; -import org.tasks.injection.InjectingBroadcastReceiver; -import org.tasks.injection.Injector; -import org.tasks.preferences.Preferences; import java.util.ArrayList; import java.util.List; @@ -49,13 +42,29 @@ import javax.inject.Inject; * @author Tim Su * */ -public class TagFilterExposer extends InjectingBroadcastReceiver implements AstridFilterExposer { +public class TagFilterExposer { public static final String TAG = "tag"; //$NON-NLS-1$ - @Inject TagService tagService; - @Inject @ForApplication Context context; - @Inject Preferences preferences; + private final TagService tagService; + private final Context context; + + @Inject + public TagFilterExposer(@ForApplication Context context, TagService tagService) { + this.context = context; + this.tagService = tagService; + } + + public List getFilters() { + ContextManager.setContext(context); + + ArrayList list = new ArrayList<>(); + + list.addAll(filterFromTags(tagService.getTagList())); + + // transmit filter list + return list; + } /** Create filter from new tag object */ public static FilterWithCustomIntent filterFromTag(Context context, TagData tag, Criterion criterion) { @@ -103,33 +112,10 @@ public class TagFilterExposer extends InjectingBroadcastReceiver implements Astr return ret; } - private FilterListItem[] prepareFilters() { - ContextManager.setContext(context); - - ArrayList list = new ArrayList<>(); - - list.addAll(filterFromTags(tagService.getTagList())); - - // transmit filter list - return list.toArray(new FilterListItem[list.size()]); - } - private List filterFromTags(List tags) { - boolean shouldAddUntagged = preferences.getBoolean(R.string.p_show_not_in_list_filter, true); List filters = new ArrayList<>(); - Resources r = context.getResources(); - - // --- untagged - if (shouldAddUntagged) { - Filter untagged = new Filter(r.getString(R.string.tag_FEx_untagged), - r.getString(R.string.tag_FEx_untagged), - untaggedTemplate(), - null); - filters.add(untagged); - } - for (TagData tag : tags) { Filter f = constructFilter(context, tag); if (f != null) { @@ -143,21 +129,6 @@ public class TagFilterExposer extends InjectingBroadcastReceiver implements Astr return filterFromTag(context, tag, TaskCriteria.activeAndVisible()); } - @Override - public FilterListItem[] getFilters(Injector injector) { - injector.inject(this); - - return prepareFilters(); - } - - private QueryTemplate untaggedTemplate() { - return new QueryTemplate().where(Criterion.and( - Criterion.not(Task.UUID.in(Query.select(TaskToTagMetadata.TASK_UUID).from(Metadata.TABLE) - .where(Criterion.and(MetadataDao.MetadataCriteria.withKey(TaskToTagMetadata.KEY), Metadata.DELETION_DATE.eq(0))))), - TaskCriteria.isActive(), - TaskCriteria.isVisible())); - } - private static QueryTemplate queryTemplate(String uuid, Criterion criterion) { Criterion fullCriterion = Criterion.and( Field.field("mtags." + Metadata.KEY.name).eq(TaskToTagMetadata.KEY), diff --git a/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java b/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java index f624a66f3..6d7ab83f5 100644 --- a/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java +++ b/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java @@ -11,42 +11,44 @@ import android.content.res.Resources; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.QueryTemplate; -import com.todoroo.astrid.api.AstridFilterExposer; import com.todoroo.astrid.api.Filter; -import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.service.TaskService; import org.tasks.R; import org.tasks.injection.ForApplication; -import org.tasks.injection.InjectingBroadcastReceiver; -import org.tasks.injection.Injector; + +import java.util.Collections; +import java.util.List; import javax.inject.Inject; +import static com.google.common.collect.Lists.newArrayList; +import static java.util.Collections.emptyList; + /** * Exposes "working on" filter to the NavigationDrawerFragment * * @author Tim Su * */ -public final class TimerFilterExposer extends InjectingBroadcastReceiver implements AstridFilterExposer { +public final class TimerFilterExposer { - @Inject TaskService taskService; - @Inject @ForApplication Context context; + private final TaskService taskService; + private final Context context; - private FilterListItem[] prepareFilters() { - if(taskService.count(Query.select(Task.ID). - where(Task.TIMER_START.gt(0))) == 0) { - return null; - } + @Inject + public TimerFilterExposer(@ForApplication Context context, TaskService taskService) { + this.context = context; + this.taskService = taskService; + } - Filter workingOn = createFilter(context); + public List getFilters() { + if(taskService.count(Query.select(Task.ID).where(Task.TIMER_START.gt(0))) == 0) { + return emptyList(); + } - // transmit filter list - FilterListItem[] list = new FilterListItem[1]; - list[0] = workingOn; - return list; + return newArrayList(createFilter(context)); } public static Filter createFilter(Context context) { @@ -58,11 +60,4 @@ public final class TimerFilterExposer extends InjectingBroadcastReceiver impleme new QueryTemplate().where(Task.TIMER_START.gt(0)), values); } - - @Override - public FilterListItem[] getFilters(Injector injector) { - injector.inject(this); - - return prepareFilters(); - } } diff --git a/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java b/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java index 01d5f27e1..88bd30b15 100644 --- a/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java +++ b/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java @@ -20,7 +20,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.injection.Injector; -import org.tasks.preferences.ActivityPreferences; import javax.inject.Inject; @@ -36,7 +35,6 @@ public class QuickAddBar { @Inject TaskService taskService; @Inject TaskCreator taskCreator; - @Inject ActivityPreferences preferences; @Inject DateChangedAlerts dateChangedAlerts; private TaskListActivity activity; diff --git a/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java b/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java index b9c3842f1..02d5b1cc4 100644 --- a/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java +++ b/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java @@ -8,7 +8,6 @@ package com.todoroo.astrid.widget; import android.appwidget.AppWidgetManager; import android.content.ContentValues; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.View; @@ -23,8 +22,8 @@ import com.todoroo.astrid.api.FilterWithCustomIntent; import org.tasks.R; import org.tasks.filters.FilterCounter; +import org.tasks.filters.FilterProvider; import org.tasks.injection.InjectingListActivity; -import org.tasks.injection.Injector; import org.tasks.preferences.ActivityPreferences; import org.tasks.widget.WidgetHelper; @@ -47,8 +46,8 @@ public class WidgetConfigActivity extends InjectingListActivity { @Inject WidgetHelper widgetHelper; @Inject FilterCounter filterCounter; - @Inject Injector injector; @Inject ActivityPreferences preferences; + @Inject FilterProvider filterProvider; private void updateWidget() { if (preIceCreamSandwich()) { @@ -90,7 +89,7 @@ public class WidgetConfigActivity extends InjectingListActivity { } // set up ui - adapter = new FilterAdapter(injector, filterCounter, this, getListView(), + adapter = new FilterAdapter(filterProvider, filterCounter, this, getListView(), R.layout.filter_adapter_row, true); adapter.filterStyle = R.style.TextAppearance_FLA_Filter_Widget; setListAdapter(adapter); diff --git a/src/main/java/org/tasks/filters/FilterProvider.java b/src/main/java/org/tasks/filters/FilterProvider.java new file mode 100644 index 000000000..7d6823976 --- /dev/null +++ b/src/main/java/org/tasks/filters/FilterProvider.java @@ -0,0 +1,43 @@ +package org.tasks.filters; + +import com.todoroo.astrid.api.FilterListItem; +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 java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +public class FilterProvider { + private final BuiltInFilterExposer builtInFilterExposer; + private final TimerFilterExposer timerFilterExposer; + private final CustomFilterExposer customFilterExposer; + private final TagFilterExposer tagFilterExposer; + private final GtasksFilterExposer gtasksFilterExposer; + + @Inject + public FilterProvider(BuiltInFilterExposer builtInFilterExposer, TimerFilterExposer timerFilterExposer, + CustomFilterExposer customFilterExposer, TagFilterExposer tagFilterExposer, + GtasksFilterExposer gtasksFilterExposer) { + + this.builtInFilterExposer = builtInFilterExposer; + this.timerFilterExposer = timerFilterExposer; + this.customFilterExposer = customFilterExposer; + this.tagFilterExposer = tagFilterExposer; + this.gtasksFilterExposer = gtasksFilterExposer; + } + + public List getFilters() { + return new ArrayList() {{ + addAll(builtInFilterExposer.getFilters()); + addAll(timerFilterExposer.getFilters()); + addAll(customFilterExposer.getFilters()); + addAll(tagFilterExposer.getFilters()); + addAll(gtasksFilterExposer.getFilters()); + }}; + } +} diff --git a/src/main/java/org/tasks/injection/ActivityModule.java b/src/main/java/org/tasks/injection/ActivityModule.java index dff39e298..cb5b38c52 100644 --- a/src/main/java/org/tasks/injection/ActivityModule.java +++ b/src/main/java/org/tasks/injection/ActivityModule.java @@ -12,7 +12,6 @@ import com.todoroo.astrid.activity.TaskEditActivity; import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.backup.BackupPreferences; import com.todoroo.astrid.calls.MissedCallActivity; -import com.todoroo.astrid.core.CoreFilterExposer; import com.todoroo.astrid.core.CustomFilterActivity; import com.todoroo.astrid.core.CustomFilterExposer; import com.todoroo.astrid.core.DefaultsPreferences; @@ -20,14 +19,11 @@ import com.todoroo.astrid.core.OldTaskPreferences; import com.todoroo.astrid.files.AACRecordingActivity; import com.todoroo.astrid.gcal.CalendarAlarmListCreator; import com.todoroo.astrid.gcal.CalendarReminderActivity; -import com.todoroo.astrid.gtasks.GtasksFilterExposer; import com.todoroo.astrid.gtasks.GtasksPreferences; import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity; import com.todoroo.astrid.reminders.ReminderPreferences; import com.todoroo.astrid.tags.DeleteTagActivity; import com.todoroo.astrid.tags.RenameTagActivity; -import com.todoroo.astrid.tags.TagFilterExposer; -import com.todoroo.astrid.timers.TimerFilterExposer; import com.todoroo.astrid.widget.WidgetConfigActivity; import org.tasks.voice.VoiceCommandActivity; @@ -39,50 +35,37 @@ import dagger.Provides; @Module(addsTo = TasksModule.class, injects = { - TaskListActivity.class, - TaskEditActivity.class, - ShareLinkActivity.class, - TagSettingsActivity.class, - TagSettingsActivityTablet.class, - CustomFilterActivity.class, - MissedCallActivity.class, - CalendarAlarmListCreator.class, - CustomFilterExposer.DeleteActivity.class, - CalendarReminderActivity.class, - DeleteTagActivity.class, - RenameTagActivity.class, - VoiceCommandActivity.class, - GtasksLoginActivity.class, - WidgetConfigActivity.class, - EditPreferences.class, - GtasksPreferences.class, - OldTaskPreferences.class, - BackupPreferences.class, - FilterShortcutActivity.class, - CoreFilterExposer.class, - TimerFilterExposer.class, - CustomFilterExposer.class, - GtasksFilterExposer.class, - TagFilterExposer.class, - BeastModePreferences.class, - DefaultsPreferences.class, - ReminderPreferences.class, - AACRecordingActivity.class -}) + TaskListActivity.class, + TaskEditActivity.class, + ShareLinkActivity.class, + TagSettingsActivity.class, + TagSettingsActivityTablet.class, + CustomFilterActivity.class, + MissedCallActivity.class, + CalendarAlarmListCreator.class, + CustomFilterExposer.DeleteActivity.class, + CalendarReminderActivity.class, + DeleteTagActivity.class, + RenameTagActivity.class, + VoiceCommandActivity.class, + GtasksLoginActivity.class, + WidgetConfigActivity.class, + EditPreferences.class, + GtasksPreferences.class, + OldTaskPreferences.class, + BackupPreferences.class, + FilterShortcutActivity.class, + BeastModePreferences.class, + DefaultsPreferences.class, + ReminderPreferences.class, + AACRecordingActivity.class + }) public class ActivityModule { private final Activity activity; - private final Injector injector; - public ActivityModule(Activity activity, Injector injector) { + public ActivityModule(Activity activity) { this.activity = activity; - this.injector = injector; - } - - @Singleton - @Provides - public Injector getInjector() { - return injector; } @Singleton diff --git a/src/main/java/org/tasks/injection/BroadcastModule.java b/src/main/java/org/tasks/injection/BroadcastModule.java index 48dc4f2dd..8ca9df7cd 100644 --- a/src/main/java/org/tasks/injection/BroadcastModule.java +++ b/src/main/java/org/tasks/injection/BroadcastModule.java @@ -2,19 +2,14 @@ package org.tasks.injection; import com.todoroo.astrid.alarms.AlarmTaskRepeatListener; import com.todoroo.astrid.calls.PhoneStateChangedReceiver; -import com.todoroo.astrid.core.CoreFilterExposer; -import com.todoroo.astrid.core.CustomFilterExposer; import com.todoroo.astrid.gcal.CalendarAlarmReceiver; import com.todoroo.astrid.gcal.CalendarStartupReceiver; import com.todoroo.astrid.gcal.GCalTaskCompleteListener; import com.todoroo.astrid.gtasks.GtasksCustomFilterCriteriaExposer; -import com.todoroo.astrid.gtasks.GtasksFilterExposer; import com.todoroo.astrid.reminders.Notifications; import com.todoroo.astrid.reminders.ShowNotificationReceiver; import com.todoroo.astrid.repeats.RepeatTaskCompleteListener; import com.todoroo.astrid.tags.TagCustomFilterCriteriaExposer; -import com.todoroo.astrid.tags.TagFilterExposer; -import com.todoroo.astrid.timers.TimerFilterExposer; import com.todoroo.astrid.timers.TimerTaskCompleteListener; import com.todoroo.astrid.widget.TasksWidget; @@ -38,11 +33,6 @@ import dagger.Module; AlarmTaskRepeatListener.class, PhoneStateChangedReceiver.class, ShowNotificationReceiver.class, - CoreFilterExposer.class, - TimerFilterExposer.class, - CustomFilterExposer.class, - GtasksFilterExposer.class, - TagFilterExposer.class, CalendarAlarmReceiver.class, CalendarStartupReceiver.class, BootCompletedReceiver.class, diff --git a/src/main/java/org/tasks/injection/FragmentModule.java b/src/main/java/org/tasks/injection/FragmentModule.java index 9dba40c59..972a01e5a 100644 --- a/src/main/java/org/tasks/injection/FragmentModule.java +++ b/src/main/java/org/tasks/injection/FragmentModule.java @@ -7,15 +7,10 @@ import android.support.v4.app.Fragment; import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.activity.TaskEditFragment; import com.todoroo.astrid.activity.TaskListFragment; -import com.todoroo.astrid.core.CoreFilterExposer; -import com.todoroo.astrid.core.CustomFilterExposer; -import com.todoroo.astrid.gtasks.GtasksFilterExposer; import com.todoroo.astrid.gtasks.GtasksListFragment; import com.todoroo.astrid.reminders.NotificationFragment; import com.todoroo.astrid.subtasks.SubtasksListFragment; import com.todoroo.astrid.subtasks.SubtasksTagListFragment; -import com.todoroo.astrid.tags.TagFilterExposer; -import com.todoroo.astrid.timers.TimerFilterExposer; import com.todoroo.astrid.ui.QuickAddBar; import org.tasks.ui.NavigationDrawerFragment; @@ -27,21 +22,16 @@ import dagger.Provides; @Module(addsTo = TasksModule.class, injects = { - TaskListFragment.class, - GtasksListFragment.class, - NotificationFragment.class, - SubtasksListFragment.class, - SubtasksTagListFragment.class, - TagViewFragment.class, - TaskEditFragment.class, - NavigationDrawerFragment.class, - QuickAddBar.class, - CoreFilterExposer.class, - TimerFilterExposer.class, - CustomFilterExposer.class, - GtasksFilterExposer.class, - TagFilterExposer.class -}) + TaskListFragment.class, + GtasksListFragment.class, + NotificationFragment.class, + SubtasksListFragment.class, + SubtasksTagListFragment.class, + TagViewFragment.class, + TaskEditFragment.class, + NavigationDrawerFragment.class, + QuickAddBar.class + }) public class FragmentModule { private final Fragment fragment; diff --git a/src/main/java/org/tasks/injection/InjectingActionBarActivity.java b/src/main/java/org/tasks/injection/InjectingActionBarActivity.java index 773aebd3d..ed2715e3c 100644 --- a/src/main/java/org/tasks/injection/InjectingActionBarActivity.java +++ b/src/main/java/org/tasks/injection/InjectingActionBarActivity.java @@ -10,7 +10,7 @@ public class InjectingActionBarActivity extends ActionBarActivity implements Inj @Override protected void onCreate(Bundle savedInstanceState) { - objectGraph = ((Injector) getApplication()).getObjectGraph().plus(new ActivityModule(this, this)); + objectGraph = ((Injector) getApplication()).getObjectGraph().plus(new ActivityModule(this)); inject(this); super.onCreate(savedInstanceState); diff --git a/src/main/java/org/tasks/injection/InjectingActivity.java b/src/main/java/org/tasks/injection/InjectingActivity.java index a7734ffd0..b8d9b706d 100644 --- a/src/main/java/org/tasks/injection/InjectingActivity.java +++ b/src/main/java/org/tasks/injection/InjectingActivity.java @@ -10,7 +10,7 @@ public class InjectingActivity extends Activity implements Injector { @Override protected void onCreate(Bundle savedInstanceState) { - objectGraph = ((Injector) getApplication()).getObjectGraph().plus(new ActivityModule(this, this)); + objectGraph = ((Injector) getApplication()).getObjectGraph().plus(new ActivityModule(this)); inject(this); super.onCreate(savedInstanceState); diff --git a/src/main/java/org/tasks/injection/InjectingListActivity.java b/src/main/java/org/tasks/injection/InjectingListActivity.java index 23dd72212..aa760b0ac 100644 --- a/src/main/java/org/tasks/injection/InjectingListActivity.java +++ b/src/main/java/org/tasks/injection/InjectingListActivity.java @@ -10,7 +10,7 @@ public class InjectingListActivity extends ListActivity implements Injector { @Override protected void onCreate(Bundle savedInstanceState) { - objectGraph = ((Injector) getApplication()).getObjectGraph().plus(new ActivityModule(this, this)); + objectGraph = ((Injector) getApplication()).getObjectGraph().plus(new ActivityModule(this)); inject(this); super.onCreate(savedInstanceState); diff --git a/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java b/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java index 26d46d13b..589e0e269 100644 --- a/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java +++ b/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java @@ -10,7 +10,7 @@ public abstract class InjectingPreferenceActivity extends PreferenceActivity imp @Override public void onCreate(Bundle savedInstanceState) { - objectGraph = ((Injector) getApplication()).getObjectGraph().plus(new ActivityModule(this, this)); + objectGraph = ((Injector) getApplication()).getObjectGraph().plus(new ActivityModule(this)); inject(this); super.onCreate(savedInstanceState); diff --git a/src/main/java/org/tasks/injection/InjectingSyncProviderPreferences.java b/src/main/java/org/tasks/injection/InjectingSyncProviderPreferences.java index 752c8059c..2421e210a 100644 --- a/src/main/java/org/tasks/injection/InjectingSyncProviderPreferences.java +++ b/src/main/java/org/tasks/injection/InjectingSyncProviderPreferences.java @@ -11,7 +11,7 @@ public abstract class InjectingSyncProviderPreferences extends TodorooPreference @Override public void onCreate(Bundle savedInstanceState) { - objectGraph = ((Injector) getApplication()).getObjectGraph().plus(new ActivityModule(this, this)); + objectGraph = ((Injector) getApplication()).getObjectGraph().plus(new ActivityModule(this)); inject(this); super.onCreate(savedInstanceState); diff --git a/src/main/java/org/tasks/ui/NavigationDrawerFragment.java b/src/main/java/org/tasks/ui/NavigationDrawerFragment.java index a12556e76..4fb399322 100644 --- a/src/main/java/org/tasks/ui/NavigationDrawerFragment.java +++ b/src/main/java/org/tasks/ui/NavigationDrawerFragment.java @@ -44,8 +44,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.filters.FilterCounter; +import org.tasks.filters.FilterProvider; import org.tasks.injection.InjectingFragment; -import org.tasks.injection.Injector; import org.tasks.preferences.Preferences; import javax.inject.Inject; @@ -86,8 +86,8 @@ public class NavigationDrawerFragment extends InjectingFragment { private int mCurrentSelectedPosition = 0; @Inject FilterCounter filterCounter; - @Inject Injector injector; @Inject Preferences preferences; + @Inject FilterProvider filterProvider; public NavigationDrawerFragment() { } @@ -241,7 +241,7 @@ public class NavigationDrawerFragment extends InjectingFragment { public void onAttach(Activity activity) { super.onAttach(activity); mCallbacks = (OnFilterItemClickedListener) activity; - adapter = new FilterAdapter(injector, filterCounter, getActivity(), null, R.layout.filter_adapter_row, false); + adapter = new FilterAdapter(filterProvider, filterCounter, getActivity(), null, R.layout.filter_adapter_row, false); } @Override diff --git a/src/main/java/org/tasks/widget/WidgetHelper.java b/src/main/java/org/tasks/widget/WidgetHelper.java index 5aab13cde..0d4233590 100644 --- a/src/main/java/org/tasks/widget/WidgetHelper.java +++ b/src/main/java/org/tasks/widget/WidgetHelper.java @@ -21,14 +21,13 @@ import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.api.PermaSql; -import com.todoroo.astrid.core.CoreFilterExposer; +import com.todoroo.astrid.core.BuiltInFilterExposer; import com.todoroo.astrid.dao.TagDataDao; import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.tags.TagFilterExposer; import com.todoroo.astrid.utility.Constants; import com.todoroo.astrid.widget.TasksWidget; import com.todoroo.astrid.widget.WidgetConfigActivity; -import com.todoroo.astrid.widget.WidgetUpdateService; import org.tasks.R; import org.tasks.preferences.ActivityPreferences; @@ -175,7 +174,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 = CoreFilterExposer.buildInboxFilter(context.getResources()); + 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