Add 'is subtask' filter

pull/1194/head
Alex Baker 4 years ago
parent bcb14ccfc4
commit 2b98b12723

@ -5,6 +5,7 @@ import com.todoroo.andlib.sql.Criterion.Companion.and
import com.todoroo.andlib.sql.Criterion.Companion.or
import com.todoroo.andlib.sql.Field.Companion.field
import com.todoroo.andlib.sql.Join.Companion.inner
import com.todoroo.andlib.sql.Join.Companion.left
import com.todoroo.andlib.sql.Query.Companion.select
import com.todoroo.astrid.api.*
import com.todoroo.astrid.data.Task
@ -35,6 +36,7 @@ class FilterCriteriaProvider @Inject constructor(
IDENTIFIER_RECUR -> recurringFilter
IDENTIFIER_COMPLETED -> completedFilter
IDENTIFIER_HIDDEN -> hiddenFilter
IDENTIFIER_SUBTASK -> subtaskFilter
else -> throw RuntimeException("Unknown identifier: $identifier")
}
}
@ -63,6 +65,7 @@ class FilterCriteriaProvider @Inject constructor(
result.add(recurringFilter)
result.add(completedFilter)
result.add(hiddenFilter)
result.add(subtaskFilter)
return result
}
@ -120,6 +123,20 @@ class FilterCriteriaProvider @Inject constructor(
.toString()
)
private val subtaskFilter: CustomFilterCriterion
get() = BooleanCriterion(
IDENTIFIER_SUBTASK,
context.getString(R.string.custom_filter_is_subtask),
select(Task.ID)
.from(Task.TABLE)
.join(left(GoogleTask.TABLE, GoogleTask.TASK.eq(Task.ID)))
.where(or(
field("${Task.PARENT}>0").eq(1),
field("${GoogleTask.PARENT}>0").eq(1)
))
.toString()
)
val tagNameContainsFilter: CustomFilterCriterion
get() = TextInputCriterion(
IDENTIFIER_TAG_CONTAINS,
@ -265,5 +282,6 @@ class FilterCriteriaProvider @Inject constructor(
private const val IDENTIFIER_RECUR = "recur"
private const val IDENTIFIER_COMPLETED = "completed"
private const val IDENTIFIER_HIDDEN = "hidden"
private const val IDENTIFIER_SUBTASK = "subtask"
}
}

@ -656,4 +656,5 @@ File %1$s contained %2$s.\n\n
<string name="multi_select_reschedule">Reschedule</string>
<string name="date_picker_multiple">Multiple</string>
<string name="delete_comment">Delete this comment?</string>
<string name="custom_filter_is_subtask">Is subtask</string>
</resources>

Loading…
Cancel
Save