|
|
|
@ -157,104 +157,114 @@ public class CustomFilterActivity extends ListActivity {
|
|
|
|
Resources r = getResources();
|
|
|
|
Resources r = getResources();
|
|
|
|
|
|
|
|
|
|
|
|
// built in criteria: due date
|
|
|
|
// built in criteria: due date
|
|
|
|
String[] entryValues = new String[] {
|
|
|
|
{
|
|
|
|
"0",
|
|
|
|
String[] entryValues = new String[] {
|
|
|
|
PermaSql.VALUE_EOD_YESTERDAY,
|
|
|
|
"0",
|
|
|
|
PermaSql.VALUE_EOD,
|
|
|
|
PermaSql.VALUE_EOD_YESTERDAY,
|
|
|
|
PermaSql.VALUE_EOD_TOMORROW,
|
|
|
|
PermaSql.VALUE_EOD,
|
|
|
|
PermaSql.VALUE_EOD_DAY_AFTER,
|
|
|
|
PermaSql.VALUE_EOD_TOMORROW,
|
|
|
|
PermaSql.VALUE_EOD_NEXT_WEEK,
|
|
|
|
PermaSql.VALUE_EOD_DAY_AFTER,
|
|
|
|
PermaSql.VALUE_EOD_NEXT_MONTH,
|
|
|
|
PermaSql.VALUE_EOD_NEXT_WEEK,
|
|
|
|
};
|
|
|
|
PermaSql.VALUE_EOD_NEXT_MONTH,
|
|
|
|
ContentValues values = new ContentValues();
|
|
|
|
};
|
|
|
|
values.put(Task.DUE_DATE.name, "?");
|
|
|
|
ContentValues values = new ContentValues();
|
|
|
|
CustomFilterCriterion criterion = new MultipleSelectCriterion(
|
|
|
|
values.put(Task.DUE_DATE.name, "?");
|
|
|
|
IDENTIFIER_DUEDATE,
|
|
|
|
CustomFilterCriterion criterion = new MultipleSelectCriterion(
|
|
|
|
getString(R.string.CFC_dueBefore_text),
|
|
|
|
IDENTIFIER_DUEDATE,
|
|
|
|
Query.select(Task.ID).from(Task.TABLE).where(
|
|
|
|
getString(R.string.CFC_dueBefore_text),
|
|
|
|
Criterion.and(
|
|
|
|
Query.select(Task.ID).from(Task.TABLE).where(
|
|
|
|
TaskCriteria.activeAndVisible(),
|
|
|
|
Criterion.and(
|
|
|
|
Criterion.or(
|
|
|
|
TaskCriteria.activeAndVisible(),
|
|
|
|
Field.field("?").eq(0),
|
|
|
|
Criterion.or(
|
|
|
|
Task.DUE_DATE.gt(0)),
|
|
|
|
Field.field("?").eq(0),
|
|
|
|
Task.DUE_DATE.lte("?"))).toString(),
|
|
|
|
Task.DUE_DATE.gt(0)),
|
|
|
|
values, r.getStringArray(R.array.CFC_dueBefore_entries),
|
|
|
|
Task.DUE_DATE.lte("?"))).toString(),
|
|
|
|
entryValues, ((BitmapDrawable)r.getDrawable(R.drawable.tango_calendar)).getBitmap(),
|
|
|
|
values, r.getStringArray(R.array.CFC_dueBefore_entries),
|
|
|
|
getString(R.string.CFC_dueBefore_name));
|
|
|
|
entryValues, ((BitmapDrawable)r.getDrawable(R.drawable.tango_calendar)).getBitmap(),
|
|
|
|
criteria.add(criterion);
|
|
|
|
getString(R.string.CFC_dueBefore_name));
|
|
|
|
|
|
|
|
criteria.add(criterion);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// built in criteria: importance
|
|
|
|
// built in criteria: importance
|
|
|
|
entryValues = new String[] {
|
|
|
|
{
|
|
|
|
Integer.toString(Task.IMPORTANCE_DO_OR_DIE),
|
|
|
|
String[] entryValues = new String[] {
|
|
|
|
Integer.toString(Task.IMPORTANCE_MUST_DO),
|
|
|
|
Integer.toString(Task.IMPORTANCE_DO_OR_DIE),
|
|
|
|
Integer.toString(Task.IMPORTANCE_SHOULD_DO),
|
|
|
|
Integer.toString(Task.IMPORTANCE_MUST_DO),
|
|
|
|
Integer.toString(Task.IMPORTANCE_NONE),
|
|
|
|
Integer.toString(Task.IMPORTANCE_SHOULD_DO),
|
|
|
|
};
|
|
|
|
Integer.toString(Task.IMPORTANCE_NONE),
|
|
|
|
String[] entries = new String[] {
|
|
|
|
};
|
|
|
|
"!!!!", "!!!", "!!", "!"
|
|
|
|
String[] entries = new String[] {
|
|
|
|
};
|
|
|
|
"!!!!", "!!!", "!!", "!"
|
|
|
|
values = new ContentValues();
|
|
|
|
};
|
|
|
|
values.put(Task.IMPORTANCE.name, "?");
|
|
|
|
ContentValues values = new ContentValues();
|
|
|
|
criterion = new MultipleSelectCriterion(
|
|
|
|
values.put(Task.IMPORTANCE.name, "?");
|
|
|
|
IDENTIFIER_IMPORTANCE,
|
|
|
|
CustomFilterCriterion criterion = new MultipleSelectCriterion(
|
|
|
|
getString(R.string.CFC_importance_text),
|
|
|
|
IDENTIFIER_IMPORTANCE,
|
|
|
|
Query.select(Task.ID).from(Task.TABLE).where(
|
|
|
|
getString(R.string.CFC_importance_text),
|
|
|
|
Criterion.and(TaskCriteria.activeAndVisible(),
|
|
|
|
Query.select(Task.ID).from(Task.TABLE).where(
|
|
|
|
Task.IMPORTANCE.lte("?"))).toString(),
|
|
|
|
Criterion.and(TaskCriteria.activeAndVisible(),
|
|
|
|
values, entries,
|
|
|
|
Task.IMPORTANCE.lte("?"))).toString(),
|
|
|
|
entryValues, ((BitmapDrawable)r.getDrawable(R.drawable.tango_warning)).getBitmap(),
|
|
|
|
values, entries,
|
|
|
|
getString(R.string.CFC_importance_name));
|
|
|
|
entryValues, ((BitmapDrawable)r.getDrawable(R.drawable.tango_warning)).getBitmap(),
|
|
|
|
criteria.add(criterion);
|
|
|
|
getString(R.string.CFC_importance_name));
|
|
|
|
|
|
|
|
criteria.add(criterion);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// built in criteria: tags
|
|
|
|
// built in criteria: tags
|
|
|
|
Tag[] tags = TagService.getInstance().getGroupedTags(TagService.GROUPED_TAGS_BY_SIZE,
|
|
|
|
{
|
|
|
|
TaskCriteria.activeAndVisible());
|
|
|
|
Tag[] tags = TagService.getInstance().getGroupedTags(TagService.GROUPED_TAGS_BY_SIZE,
|
|
|
|
String[] tagNames = new String[tags.length];
|
|
|
|
TaskCriteria.activeAndVisible());
|
|
|
|
for(int i = 0; i < tags.length; i++)
|
|
|
|
String[] tagNames = new String[tags.length];
|
|
|
|
tagNames[i] = tags[i].tag;
|
|
|
|
for(int i = 0; i < tags.length; i++)
|
|
|
|
values = new ContentValues();
|
|
|
|
tagNames[i] = tags[i].tag;
|
|
|
|
values.put(Metadata.KEY.name, TagService.KEY);
|
|
|
|
ContentValues values = new ContentValues();
|
|
|
|
values.put(TagService.TAG.name, "?");
|
|
|
|
values.put(Metadata.KEY.name, TagService.KEY);
|
|
|
|
criterion = new MultipleSelectCriterion(
|
|
|
|
values.put(TagService.TAG.name, "?");
|
|
|
|
IDENTIFIER_TAG,
|
|
|
|
CustomFilterCriterion criterion = new MultipleSelectCriterion(
|
|
|
|
getString(R.string.CFC_tag_text),
|
|
|
|
IDENTIFIER_TAG,
|
|
|
|
Query.select(Metadata.TASK).from(Metadata.TABLE).join(Join.inner(
|
|
|
|
getString(R.string.CFC_tag_text),
|
|
|
|
Task.TABLE, Metadata.TASK.eq(Task.ID))).where(Criterion.and(
|
|
|
|
Query.select(Metadata.TASK).from(Metadata.TABLE).join(Join.inner(
|
|
|
|
TaskCriteria.activeAndVisible(),
|
|
|
|
Task.TABLE, Metadata.TASK.eq(Task.ID))).where(Criterion.and(
|
|
|
|
MetadataCriteria.withKey(TagService.KEY),
|
|
|
|
TaskCriteria.activeAndVisible(),
|
|
|
|
TagService.TAG.eq("?"))).toString(),
|
|
|
|
MetadataCriteria.withKey(TagService.KEY),
|
|
|
|
values, tagNames, tagNames,
|
|
|
|
TagService.TAG.eq("?"))).toString(),
|
|
|
|
((BitmapDrawable)r.getDrawable(R.drawable.filter_tags1)).getBitmap(),
|
|
|
|
values, tagNames, tagNames,
|
|
|
|
getString(R.string.CFC_tag_name));
|
|
|
|
((BitmapDrawable)r.getDrawable(R.drawable.filter_tags1)).getBitmap(),
|
|
|
|
criteria.add(criterion);
|
|
|
|
getString(R.string.CFC_tag_name));
|
|
|
|
|
|
|
|
criteria.add(criterion);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// built in criteria: tags containing X
|
|
|
|
// built in criteria: tags containing X
|
|
|
|
criterion = new TextInputCriterion(
|
|
|
|
{
|
|
|
|
IDENTIFIER_TAG,
|
|
|
|
CustomFilterCriterion criterion = new TextInputCriterion(
|
|
|
|
getString(R.string.CFC_tag_contains_text),
|
|
|
|
IDENTIFIER_TAG,
|
|
|
|
Query.select(Metadata.TASK).from(Metadata.TABLE).join(Join.inner(
|
|
|
|
getString(R.string.CFC_tag_contains_text),
|
|
|
|
Task.TABLE, Metadata.TASK.eq(Task.ID))).where(Criterion.and(
|
|
|
|
Query.select(Metadata.TASK).from(Metadata.TABLE).join(Join.inner(
|
|
|
|
TaskCriteria.activeAndVisible(),
|
|
|
|
Task.TABLE, Metadata.TASK.eq(Task.ID))).where(Criterion.and(
|
|
|
|
MetadataCriteria.withKey(TagService.KEY),
|
|
|
|
TaskCriteria.activeAndVisible(),
|
|
|
|
TagService.TAG.like("%?%"))).toString(),
|
|
|
|
MetadataCriteria.withKey(TagService.KEY),
|
|
|
|
null, getString(R.string.CFC_tag_contains_name), "",
|
|
|
|
TagService.TAG.like("%?%"))).toString(),
|
|
|
|
((BitmapDrawable)r.getDrawable(R.drawable.filter_tags2)).getBitmap(),
|
|
|
|
null, getString(R.string.CFC_tag_contains_name), "",
|
|
|
|
getString(R.string.CFC_tag_contains_name));
|
|
|
|
((BitmapDrawable)r.getDrawable(R.drawable.filter_tags2)).getBitmap(),
|
|
|
|
criteria.add(criterion);
|
|
|
|
getString(R.string.CFC_tag_contains_name));
|
|
|
|
|
|
|
|
criteria.add(criterion);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// built in criteria: title containing X
|
|
|
|
// built in criteria: title containing X
|
|
|
|
values = new ContentValues();
|
|
|
|
{
|
|
|
|
values.put(Task.TITLE.name, "?");
|
|
|
|
ContentValues values = new ContentValues();
|
|
|
|
criterion = new TextInputCriterion(
|
|
|
|
values.put(Task.TITLE.name, "?");
|
|
|
|
IDENTIFIER_TAG,
|
|
|
|
CustomFilterCriterion criterion = new TextInputCriterion(
|
|
|
|
getString(R.string.CFC_title_contains_text),
|
|
|
|
IDENTIFIER_TAG,
|
|
|
|
Query.select(Task.ID).from(Task.TABLE).where(
|
|
|
|
getString(R.string.CFC_title_contains_text),
|
|
|
|
Criterion.and(TaskCriteria.activeAndVisible(),
|
|
|
|
Query.select(Task.ID).from(Task.TABLE).where(
|
|
|
|
Task.TITLE.like("%?%"))).toString(),
|
|
|
|
Criterion.and(TaskCriteria.activeAndVisible(),
|
|
|
|
null, getString(R.string.CFC_title_contains_name), "",
|
|
|
|
Task.TITLE.like("%?%"))).toString(),
|
|
|
|
((BitmapDrawable)r.getDrawable(R.drawable.tango_alpha)).getBitmap(),
|
|
|
|
null, getString(R.string.CFC_title_contains_name), "",
|
|
|
|
getString(R.string.CFC_title_contains_name));
|
|
|
|
((BitmapDrawable)r.getDrawable(R.drawable.tango_alpha)).getBitmap(),
|
|
|
|
criteria.add(criterion);
|
|
|
|
getString(R.string.CFC_title_contains_name));
|
|
|
|
|
|
|
|
criteria.add(criterion);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|