diff --git a/app/src/main/java/com/todoroo/astrid/api/PermaSql.java b/app/src/main/java/com/todoroo/astrid/api/PermaSql.java index 2c944b2a4..fe4213d3a 100644 --- a/app/src/main/java/com/todoroo/astrid/api/PermaSql.java +++ b/app/src/main/java/com/todoroo/astrid/api/PermaSql.java @@ -36,7 +36,7 @@ public final class PermaSql { /** value to be replaced by approximate end of day next month as long */ public static final String VALUE_EOD_NEXT_MONTH = "EODM()"; // $NON-NLS-1$ /** value to be replaced with the current time as long */ - private static final String VALUE_NOW = "NOW()"; // $NON-NLS-1$ + public static final String VALUE_NOW = "NOW()"; // $NON-NLS-1$ /** value to be replaced by noon yesterday as long */ private static final String VALUE_NOON_YESTERDAY = "NOONY()"; // $NON-NLS-1$ /** value to be replaced by noon tomorrow as long */ diff --git a/app/src/main/java/org/tasks/filters/FilterCriteriaProvider.kt b/app/src/main/java/org/tasks/filters/FilterCriteriaProvider.kt index 1c412acb7..ec04ac2d1 100644 --- a/app/src/main/java/org/tasks/filters/FilterCriteriaProvider.kt +++ b/app/src/main/java/org/tasks/filters/FilterCriteriaProvider.kt @@ -34,6 +34,7 @@ class FilterCriteriaProvider @Inject constructor( IDENTIFIER_TAG_CONTAINS -> tagNameContainsFilter IDENTIFIER_RECUR -> recurringFilter IDENTIFIER_COMPLETED -> completedFilter + IDENTIFIER_HIDDEN -> hiddenFilter else -> throw RuntimeException("Unknown identifier: $identifier") } } @@ -61,6 +62,7 @@ class FilterCriteriaProvider @Inject constructor( result.add(caldavFilterCriteria()) result.add(recurringFilter) result.add(completedFilter) + result.add(hiddenFilter) return result } @@ -108,6 +110,16 @@ class FilterCriteriaProvider @Inject constructor( .toString() ) + private val hiddenFilter: CustomFilterCriterion + get() = BooleanCriterion( + IDENTIFIER_HIDDEN, + context.getString(R.string.widget_due_date_hidden), + select(Task.ID) + .from(Task.TABLE) + .where(field("${Task.HIDE_UNTIL.gt(PermaSql.VALUE_NOW)}").eq(1)) + .toString() + ) + val tagNameContainsFilter: CustomFilterCriterion get() = TextInputCriterion( IDENTIFIER_TAG_CONTAINS, @@ -252,5 +264,6 @@ class FilterCriteriaProvider @Inject constructor( private const val IDENTIFIER_TAG_CONTAINS = "tag_contains" private const val IDENTIFIER_RECUR = "tag_recur" private const val IDENTIFIER_COMPLETED = "tag_completed" + private const val IDENTIFIER_HIDDEN = "tag_hidden" } } \ No newline at end of file