diff --git a/api/src/main/java/com/todoroo/astrid/api/AstridApiConstants.java b/api/src/main/java/com/todoroo/astrid/api/AstridApiConstants.java index 8c0ff1a62..c7a9323ca 100644 --- a/api/src/main/java/com/todoroo/astrid/api/AstridApiConstants.java +++ b/api/src/main/java/com/todoroo/astrid/api/AstridApiConstants.java @@ -68,20 +68,6 @@ public class AstridApiConstants { */ public static final String EXTRAS_NEW_DUE_DATE = "newDueDate"; - // --- Filters API - - /** - * Action name for broadcast intent requesting filters - */ - public static final String BROADCAST_REQUEST_FILTERS = API_PACKAGE + ".REQUEST_FILTERS"; - - /** - * Action name for broadcast intent sending filters back to Astrid - *
  • EXTRAS_ADDON your add-on identifier
  • - *
  • EXTRAS_RESPONSE an array of {@link FilterListItem}s
  • - */ - public static final String BROADCAST_SEND_FILTERS = API_PACKAGE + ".SEND_FILTERS"; - // -- Custom criteria API /** diff --git a/astrid/src/main/AndroidManifest.xml b/astrid/src/main/AndroidManifest.xml index f9a51b58c..fe2fad390 100644 --- a/astrid/src/main/AndroidManifest.xml +++ b/astrid/src/main/AndroidManifest.xml @@ -244,14 +244,6 @@ - - - - - - - - - - - - - - - @@ -289,13 +274,6 @@ - - - - - - - @@ -348,13 +326,6 @@ - - - - - - - - - - - - - - diff --git a/astrid/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java b/astrid/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java index c1f4804f8..809ca03d7 100644 --- a/astrid/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java @@ -48,8 +48,6 @@ public class TagViewFragment extends TaskListFragment { @Inject TagDataDao tagDataDao; - protected View taskListView; - private boolean dataLoaded = false; // --- UI initialization diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java b/astrid/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java index 9a51382e5..b0f8943bf 100644 --- a/astrid/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java +++ b/astrid/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java @@ -46,7 +46,7 @@ public class FilterShortcutActivity extends InjectingListActivity { // set up ui adapter = new FilterAdapter(injector, filterCounter, this, getListView(), - R.layout.filter_adapter_row, true, true); + R.layout.filter_adapter_row, true); adapter.filterStyle = R.style.TextAppearance_FLA_Filter_Widget; setListAdapter(adapter); diff --git a/astrid/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java b/astrid/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java index 843a47785..df33610aa 100644 --- a/astrid/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java +++ b/astrid/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java @@ -10,8 +10,6 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; import android.graphics.Color; import android.os.Parcelable; import android.text.TextUtils; @@ -20,11 +18,9 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; -import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; -import com.todoroo.andlib.service.ContextManager; import com.todoroo.astrid.activity.AstridActivity; import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.api.AstridApiConstants; @@ -33,21 +29,21 @@ 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.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.filters.FilterCounter; import org.tasks.injection.Injector; -import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class FilterAdapter extends ArrayAdapter { - private static final Logger log = LoggerFactory.getLogger(FilterAdapter.class); - // --- style constants public int filterStyle = R.style.TextAppearance_FLA_Filter; @@ -66,9 +62,6 @@ public class FilterAdapter extends ArrayAdapter { /** display metrics for scaling icons */ protected final DisplayMetrics metrics = new DisplayMetrics(); - /** receiver for new filters */ - protected final FilterReceiver filterReceiver = new FilterReceiver(); - private final FilterListUpdateReceiver filterListUpdateReceiver = new FilterListUpdateReceiver(); /** row layout to inflate */ @@ -80,11 +73,8 @@ public class FilterAdapter extends ArrayAdapter { /** whether to skip Filters that launch intents instead of being real filters */ private final boolean skipIntentFilters; - /** whether rows are selectable */ - private final boolean selectable; - public FilterAdapter(Injector injector, FilterCounter filterCounter, Activity activity, ListView listView, - int rowLayout, boolean skipIntentFilters, boolean selectable) { + int rowLayout, boolean skipIntentFilters) { super(activity, 0); this.injector = injector; this.filterCounter = filterCounter; @@ -92,7 +82,6 @@ public class FilterAdapter extends ArrayAdapter { this.listView = listView; this.layout = rowLayout; this.skipIntentFilters = skipIntentFilters; - this.selectable = selectable; inflater = (LayoutInflater) activity.getSystemService( Context.LAYOUT_INFLATER_SERVICE); @@ -100,12 +89,6 @@ public class FilterAdapter extends ArrayAdapter { activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); } - private void offerFilter(final Filter filter) { - if(selectable && selection == null) { - setSelection(filter); - } - } - @Override public boolean hasStableIds() { return true; @@ -116,7 +99,6 @@ public class FilterAdapter extends ArrayAdapter { super.add(item); // load sizes filterCounter.registerFilter(item); - offerFilter(item); notifyDataSetChanged(); } @@ -170,7 +152,6 @@ public class FilterAdapter extends ArrayAdapter { ViewHolder viewHolder = new ViewHolder(); viewHolder.view = convertView; viewHolder.name = (TextView)convertView.findViewById(R.id.name); - viewHolder.selected = (ImageView)convertView.findViewById(R.id.selected); viewHolder.size = (TextView)convertView.findViewById(R.id.size); viewHolder.decoration = null; convertView.setTag(viewHolder); @@ -182,7 +163,6 @@ public class FilterAdapter extends ArrayAdapter { public FilterListItem item; public TextView name; public TextView size; - public ImageView selected; public View view; public View decoration; } @@ -247,81 +227,43 @@ public class FilterAdapter extends ArrayAdapter { } } - /** - * Receiver which receives intents to add items to the filter list - * - * @author Tim Su - * - */ - public class FilterReceiver extends BroadcastReceiver { - private final List filterExposerList; - - public FilterReceiver() { - // query astrids AndroidManifest.xml for all registered default-receivers to expose filters - PackageManager pm = ContextManager.getContext().getPackageManager(); - filterExposerList = pm.queryBroadcastReceivers( - new Intent(AstridApiConstants.BROADCAST_REQUEST_FILTERS), - PackageManager.MATCH_DEFAULT_ONLY); + protected void populateFiltersToAdapter(AstridFilterExposer astridFilterExposer) { + Parcelable[] filters = astridFilterExposer.getFilters(injector); + if (filters == null) { + return; } - @Override - public void onReceive(Context context, Intent intent) { - try { - for (ResolveInfo filterExposerInfo : filterExposerList) { - String className = filterExposerInfo.activityInfo.name; - AstridFilterExposer filterExposer; - filterExposer = (AstridFilterExposer) Class.forName(className, true, FilterAdapter.class.getClassLoader()).newInstance(); - - if (filterExposer != null) { - populateFiltersToAdapter(filterExposer.getFilters(injector)); - } - } - } catch (Exception e) { - log.error(e.getMessage(), e); + for (Parcelable item : filters) { + FilterListItem filter = (FilterListItem) item; + if(skipIntentFilters && !(filter instanceof Filter)) { + continue; } - } - protected void populateFiltersToAdapter(final Parcelable[] filters) { - if (filters == null) { - return; + if (filter instanceof Filter){ + addOrLookup((Filter) filter); } + } - for (Parcelable item : filters) { - FilterListItem filter = (FilterListItem) item; - if(skipIntentFilters && !(filter instanceof Filter)) { - continue; - } - - if (filter instanceof Filter){ - addOrLookup((Filter) filter); - } + filterCounter.refreshFilterCounts(new Runnable() { + @Override + public void run() { + notifyDataSetChanged(); } - - filterCounter.refreshFilterCounts(new Runnable() { - @Override - public void run() { - notifyDataSetChanged(); - } - }); - } + }); } - /** - * Broadcast a request for lists. The request is sent to every - * application registered to listen for this broadcast. Each application - * can then add lists to this activity - */ public void getLists() { - filterReceiver.onReceive(activity, null); + populateFiltersToAdapter(new CoreFilterExposer()); + populateFiltersToAdapter(new TimerFilterExposer()); + populateFiltersToAdapter(new CustomFilterExposer()); + populateFiltersToAdapter(new TagFilterExposer()); + populateFiltersToAdapter(new GtasksFilterExposer()); } /** * Call this method from your activity's onResume() method */ public void registerRecevier() { - IntentFilter regularFilter = new IntentFilter(AstridApiConstants.BROADCAST_SEND_FILTERS); - regularFilter.setPriority(2); - activity.registerReceiver(filterReceiver, regularFilter); activity.registerReceiver(filterListUpdateReceiver, new IntentFilter(AstridApiConstants.BROADCAST_EVENT_FILTER_LIST_UPDATED)); getLists(); @@ -332,7 +274,6 @@ public class FilterAdapter extends ArrayAdapter { * Call this method from your activity's onResume() method */ public void unregisterRecevier() { - activity.unregisterReceiver(filterReceiver); activity.unregisterReceiver(filterListUpdateReceiver); } @@ -398,10 +339,8 @@ public class FilterAdapter extends ArrayAdapter { // selection if(selection == viewHolder.item) { - viewHolder.selected.setVisibility(View.VISIBLE); + // TODO: convert to color viewHolder.view.setBackgroundColor(Color.rgb(128, 230, 0)); - } else { - viewHolder.selected.setVisibility(View.GONE); } } } diff --git a/astrid/src/main/java/com/todoroo/astrid/core/CoreFilterExposer.java b/astrid/src/main/java/com/todoroo/astrid/core/CoreFilterExposer.java index 987af51bc..a39d0fa01 100644 --- a/astrid/src/main/java/com/todoroo/astrid/core/CoreFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/core/CoreFilterExposer.java @@ -7,7 +7,6 @@ package com.todoroo.astrid.core; import android.content.ContentValues; import android.content.Context; -import android.content.Intent; import android.content.res.Resources; import com.todoroo.andlib.service.ContextManager; @@ -15,7 +14,6 @@ import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.andlib.utility.AndroidUtilities; -import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridFilterExposer; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; @@ -48,18 +46,6 @@ public final class CoreFilterExposer extends InjectingBroadcastReceiver implemen @Inject Preferences preferences; @Inject @ForApplication Context context; - @Override - public void onReceive(Context context, Intent intent) { - super.onReceive(context, intent); - - ContextManager.setContext(context); - - FilterListItem[] list = prepareFilters(); - Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, list); - context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); - } - private FilterListItem[] prepareFilters() { Resources r = context.getResources(); // core filters diff --git a/astrid/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java b/astrid/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java index 01f5681ae..dd1980239 100644 --- a/astrid/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/core/CustomFilterExposer.java @@ -16,7 +16,6 @@ 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.AstridApiConstants; import com.todoroo.astrid.api.AstridFilterExposer; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; @@ -51,18 +50,6 @@ public final class CustomFilterExposer extends InjectingBroadcastReceiver implem @Inject Preferences preferences; @Inject @ForApplication Context context; - @Override - public void onReceive(Context context, Intent intent) { - super.onReceive(context, intent); - - FilterListItem[] list = prepareFilters(); - - // transmit filter list - Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, list); - context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); - } - private FilterListItem[] prepareFilters() { Resources r = context.getResources(); diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java index 6ac5b37a6..409328356 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java @@ -8,17 +8,14 @@ package com.todoroo.astrid.gtasks; import android.content.ComponentName; import android.content.ContentValues; import android.content.Context; -import android.content.Intent; import android.os.Bundle; import com.todoroo.andlib.data.AbstractModel; -import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.sql.Criterion; 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.AstridApiConstants; import com.todoroo.astrid.api.AstridFilterExposer; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; @@ -77,17 +74,6 @@ public class GtasksFilterExposer extends InjectingBroadcastReceiver implements A return filter; } - @Override - public void onReceive(Context context, Intent intent) { - super.onReceive(context, intent); - - ContextManager.setContext(context); - FilterListItem[] list = prepareFilters(); - Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, list); - context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); - } - private FilterListItem[] prepareFilters() { // if we aren't logged in (or we are logged in to astrid.com), don't expose features if(!gtasksPreferenceService.isLoggedIn()) { diff --git a/astrid/src/main/java/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java b/astrid/src/main/java/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java index 4637c02b7..01ee8b0ea 100644 --- a/astrid/src/main/java/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java @@ -47,8 +47,8 @@ public class SubtasksTagListFragment extends TagViewFragment { @Override protected View getListBody(ViewGroup root) { - taskListView = getActivity().getLayoutInflater().inflate(R.layout.task_list_body_subtasks, root, false); - return taskListView; + return getActivity().getLayoutInflater().inflate( + R.layout.task_list_body_subtasks, root, false); } @Override diff --git a/astrid/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java b/astrid/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java index 1bb9a27ab..02080392c 100644 --- a/astrid/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/tags/TagFilterExposer.java @@ -21,7 +21,6 @@ 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.AstridApiConstants; import com.todoroo.astrid.api.AstridFilterExposer; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; @@ -104,17 +103,6 @@ public class TagFilterExposer extends InjectingBroadcastReceiver implements Astr return ret; } - @Override - public void onReceive(Context context, Intent intent) { - super.onReceive(context, intent); - - FilterListItem[] listAsArray = prepareFilters(); - - Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, listAsArray); - context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); - } - private FilterListItem[] prepareFilters() { ContextManager.setContext(context); diff --git a/astrid/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java b/astrid/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java index 4e2961d06..f624a66f3 100644 --- a/astrid/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/timers/TimerFilterExposer.java @@ -7,13 +7,10 @@ package com.todoroo.astrid.timers; import android.content.ContentValues; import android.content.Context; -import android.content.Intent; import android.content.res.Resources; -import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.QueryTemplate; -import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridFilterExposer; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; @@ -38,18 +35,6 @@ public final class TimerFilterExposer extends InjectingBroadcastReceiver impleme @Inject TaskService taskService; @Inject @ForApplication Context context; - @Override - public void onReceive(Context context, Intent intent) { - super.onReceive(context, intent); - - ContextManager.setContext(context); - FilterListItem[] list = prepareFilters(); - - Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, list); - context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); - } - private FilterListItem[] prepareFilters() { if(taskService.count(Query.select(Task.ID). where(Task.TIMER_START.gt(0))) == 0) { diff --git a/astrid/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java b/astrid/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java index 7599dbc58..8ccacb3c8 100644 --- a/astrid/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java +++ b/astrid/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java @@ -89,7 +89,7 @@ public class WidgetConfigActivity extends InjectingListActivity { // set up ui adapter = new FilterAdapter(injector, filterCounter, this, getListView(), - R.layout.filter_adapter_row, true, true); + R.layout.filter_adapter_row, true); adapter.filterStyle = R.style.TextAppearance_FLA_Filter_Widget; setListAdapter(adapter); diff --git a/astrid/src/main/java/org/tasks/ui/NavigationDrawerFragment.java b/astrid/src/main/java/org/tasks/ui/NavigationDrawerFragment.java index 44d68e6bd..a12556e76 100644 --- a/astrid/src/main/java/org/tasks/ui/NavigationDrawerFragment.java +++ b/astrid/src/main/java/org/tasks/ui/NavigationDrawerFragment.java @@ -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, false); + adapter = new FilterAdapter(injector, filterCounter, getActivity(), null, R.layout.filter_adapter_row, false); } @Override diff --git a/astrid/src/main/res/layout/filter_adapter_row.xml b/astrid/src/main/res/layout/filter_adapter_row.xml index e20d1fa0b..3f49f81cc 100644 --- a/astrid/src/main/res/layout/filter_adapter_row.xml +++ b/astrid/src/main/res/layout/filter_adapter_row.xml @@ -34,16 +34,5 @@ android:paddingRight="7dip" android:textColor="?attr/drawer_text" android:gravity="center" /> - - - - +