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" />
-
-
-
-
+