pull/14/head
Joshua Ball 15 years ago
parent e1f47b734c
commit 48802ec93d

@ -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);
}
} }

Loading…
Cancel
Save