diff --git a/api/src/com/todoroo/andlib/sql/Field.java b/api/src/com/todoroo/andlib/sql/Field.java index caa321a05..7bc503fc6 100644 --- a/api/src/com/todoroo/andlib/sql/Field.java +++ b/api/src/com/todoroo/andlib/sql/Field.java @@ -49,6 +49,10 @@ public class Field extends DBObject { return UnaryCriterion.gt(this, value); } + public Criterion gte(Object value) { + return UnaryCriterion.gte(this, value); + } + public Criterion lt(final Object value) { return UnaryCriterion.lt(this, value); } diff --git a/api/src/com/todoroo/andlib/sql/UnaryCriterion.java b/api/src/com/todoroo/andlib/sql/UnaryCriterion.java index 0dcff2bd5..f2c816561 100644 --- a/api/src/com/todoroo/andlib/sql/UnaryCriterion.java +++ b/api/src/com/todoroo/andlib/sql/UnaryCriterion.java @@ -59,6 +59,10 @@ public class UnaryCriterion extends Criterion { return new UnaryCriterion(field, Operator.gt, value); } + public static Criterion gte(Field field, Object value) { + return new UnaryCriterion(field, Operator.gte, value); + } + public static Criterion lt(Field field, Object value) { return new UnaryCriterion(field, Operator.lt, value); } diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java index 1fba67cc2..9d614e26a 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java @@ -65,7 +65,9 @@ import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.ExceptionService; +import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Functions; +import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DateUtilities; @@ -82,6 +84,7 @@ import com.todoroo.astrid.adapter.TaskAdapter.OnCompletedTaskListener; 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.api.PermaSql; import com.todoroo.astrid.api.SyncAction; import com.todoroo.astrid.api.TaskAction; @@ -93,6 +96,7 @@ import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.data.Metadata; +import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.gcal.GCalHelper; import com.todoroo.astrid.helper.MetadataHelper; @@ -105,9 +109,11 @@ import com.todoroo.astrid.service.MetadataService; import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsService; +import com.todoroo.astrid.service.TagDataService; import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.service.UpgradeService; +import com.todoroo.astrid.tags.TagFilterExposer; import com.todoroo.astrid.utility.AstridPreferences; import com.todoroo.astrid.utility.Constants; import com.todoroo.astrid.utility.Flags; @@ -180,6 +186,8 @@ public class TaskListActivity extends ListActivity implements OnScrollListener, @Autowired ActFmPreferenceService actFmPreferenceService; + @Autowired TagDataService tagDataService; + private final TaskContextActionExposer[] contextItemExposers = new TaskContextActionExposer[] { new ReminderDebugContextActions.MakeNotification(), new ReminderDebugContextActions.WhenReminder(), @@ -761,10 +769,26 @@ public class TaskListActivity extends ListActivity implements OnScrollListener, DialogInterface.OnClickListener okListener = new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - Intent intent = new Intent(TaskListActivity.this, TaskListActivity.class); - intent.putExtra(TaskListActivity.TOKEN_FILTER, CustomFilterExposer.getAssignedByMeFilter(getResources())); - intent.putExtra(TaskListActivity.TOKEN_OVERRIDE_ANIM, true); - startActivityForResult(intent, 0); + String nameLike = "%" + assignedEmail + "%"; + TodorooCursor c = tagDataService.query(Query.select(TagData.NAME, TagData.TASK_COUNT, TagData.REMOTE_ID).where(Criterion.and(TagData.FLAGS.gte(TagData.FLAG_EMERGENT), TagData.MEMBERS.like(nameLike)))); + try { + if (c.getCount() > 0) { + c.moveToFirst(); + TagData tagData = new TagData(c); + FilterWithCustomIntent emergentTagFilter = (FilterWithCustomIntent) TagFilterExposer.filterFromTagData(TaskListActivity.this, tagData); + emergentTagFilter.start(TaskListActivity.this, 0); + } else { + Filter assignedFilter = CustomFilterExposer.getAssignedByMeFilter(getResources()); + + Intent intent = new Intent(TaskListActivity.this, TaskListActivity.class); + intent.putExtra(TaskListActivity.TOKEN_FILTER, assignedFilter); + intent.putExtra(TaskListActivity.TOKEN_OVERRIDE_ANIM, true); + startActivityForResult(intent, 0); + } + } finally { + c.close(); + } + transitionForTaskEdit(); } };