|
|
|
@ -7,7 +7,6 @@ package com.todoroo.astrid.core
|
|
|
|
|
|
|
|
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.res.Resources
|
|
|
|
import android.content.res.Resources
|
|
|
|
import com.todoroo.andlib.sql.Criterion
|
|
|
|
|
|
|
|
import com.todoroo.andlib.sql.Criterion.Companion.and
|
|
|
|
import com.todoroo.andlib.sql.Criterion.Companion.and
|
|
|
|
import com.todoroo.andlib.sql.Criterion.Companion.or
|
|
|
|
import com.todoroo.andlib.sql.Criterion.Companion.or
|
|
|
|
import com.todoroo.andlib.sql.Join
|
|
|
|
import com.todoroo.andlib.sql.Join
|
|
|
|
@ -87,76 +86,68 @@ class BuiltInFilterExposer @Inject constructor(
|
|
|
|
todayValues)
|
|
|
|
todayValues)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fun getNoListFilter(): Filter {
|
|
|
|
fun getNoListFilter() =
|
|
|
|
return Filter(
|
|
|
|
Filter(
|
|
|
|
"No list",
|
|
|
|
"No list",
|
|
|
|
QueryTemplate()
|
|
|
|
QueryTemplate()
|
|
|
|
.join(Join.left(GoogleTask.TABLE, and(GoogleTask.TASK.eq(Task.ID), GoogleTask.DELETED.eq(0))))
|
|
|
|
.join(Join.left(GoogleTask.TABLE, GoogleTask.TASK.eq(Task.ID)))
|
|
|
|
.join(Join.left(CaldavTask.TABLE, and(CaldavTask.TASK.eq(Task.ID), CaldavTask.DELETED.eq(0))))
|
|
|
|
.join(Join.left(CaldavTask.TABLE, CaldavTask.TASK.eq(Task.ID)))
|
|
|
|
.where(and(
|
|
|
|
.where(and(GoogleTask.ID.eq(null), CaldavTask.ID.eq(null)))
|
|
|
|
activeAndVisible(),
|
|
|
|
).apply {
|
|
|
|
GoogleTask.ID.eq(null),
|
|
|
|
icon = R.drawable.ic_outline_cloud_off_24px
|
|
|
|
CaldavTask.ID.eq(null))))
|
|
|
|
}
|
|
|
|
.apply {
|
|
|
|
|
|
|
|
icon = R.drawable.ic_outline_cloud_off_24px
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fun getMissingListFilter(): Filter {
|
|
|
|
fun getDeleted() =
|
|
|
|
return Filter(
|
|
|
|
Filter("Deleted", QueryTemplate().where(Task.DELETION_DATE.gt(0)))
|
|
|
|
"Missing list",
|
|
|
|
.apply { icon = R.drawable.ic_outline_delete_24px }
|
|
|
|
QueryTemplate()
|
|
|
|
|
|
|
|
.join(Join.left(GoogleTask.TABLE, and(GoogleTask.TASK.eq(Task.ID), GoogleTask.DELETED.eq(0))))
|
|
|
|
|
|
|
|
.join(Join.left(CaldavTask.TABLE, and(CaldavTask.TASK.eq(Task.ID), CaldavTask.DELETED.eq(0))))
|
|
|
|
|
|
|
|
.join(Join.left(GoogleTaskList.TABLE, GoogleTaskList.REMOTE_ID.eq(GoogleTask.LIST)))
|
|
|
|
|
|
|
|
.join(Join.left(CaldavCalendar.TABLE, CaldavCalendar.UUID.eq(CaldavTask.CALENDAR)))
|
|
|
|
|
|
|
|
.where(and(
|
|
|
|
|
|
|
|
activeAndVisible(),
|
|
|
|
|
|
|
|
or(
|
|
|
|
|
|
|
|
and(GoogleTask.ID.gt(0), GoogleTaskList.REMOTE_ID.eq(null)),
|
|
|
|
|
|
|
|
and(CaldavTask.ID.gt(0), CaldavCalendar.UUID.eq(null))
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
)))
|
|
|
|
|
|
|
|
.apply {
|
|
|
|
|
|
|
|
icon = R.drawable.ic_outline_cloud_off_24px
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fun getNoTitleFilter(): Filter {
|
|
|
|
fun getMissingListFilter() =
|
|
|
|
return Filter(
|
|
|
|
Filter(
|
|
|
|
"No title",
|
|
|
|
"Missing list",
|
|
|
|
QueryTemplate()
|
|
|
|
QueryTemplate()
|
|
|
|
.where(and(
|
|
|
|
.join(Join.left(GoogleTask.TABLE, GoogleTask.TASK.eq(Task.ID)))
|
|
|
|
activeAndVisible(),
|
|
|
|
.join(Join.left(CaldavTask.TABLE, CaldavTask.TASK.eq(Task.ID)))
|
|
|
|
Criterion.or(Task.TITLE.eq(null), Task.TITLE.eq("")))))
|
|
|
|
.join(Join.left(GoogleTaskList.TABLE, GoogleTaskList.REMOTE_ID.eq(GoogleTask.LIST)))
|
|
|
|
.apply {
|
|
|
|
.join(Join.left(CaldavCalendar.TABLE, CaldavCalendar.UUID.eq(CaldavTask.CALENDAR)))
|
|
|
|
icon = R.drawable.ic_outline_clear_24px
|
|
|
|
.where(or(
|
|
|
|
}
|
|
|
|
and(GoogleTask.ID.gt(0), GoogleTaskList.REMOTE_ID.eq(null)),
|
|
|
|
}
|
|
|
|
and(CaldavTask.ID.gt(0), CaldavCalendar.UUID.eq(null))))
|
|
|
|
|
|
|
|
).apply {
|
|
|
|
|
|
|
|
icon = R.drawable.ic_outline_cloud_off_24px
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fun getNoCreateDateFilter(): Filter {
|
|
|
|
fun getMissingAccountFilter() =
|
|
|
|
return Filter(
|
|
|
|
Filter(
|
|
|
|
"No create time",
|
|
|
|
"Missing account",
|
|
|
|
QueryTemplate()
|
|
|
|
QueryTemplate()
|
|
|
|
.where(and(
|
|
|
|
.join(Join.left(GoogleTask.TABLE, and(GoogleTask.TASK.eq(Task.ID))))
|
|
|
|
activeAndVisible(),
|
|
|
|
.join(Join.left(CaldavTask.TABLE, and(CaldavTask.TASK.eq(Task.ID))))
|
|
|
|
Task.CREATION_DATE.eq(0))))
|
|
|
|
.join(Join.left(GoogleTaskList.TABLE, GoogleTaskList.REMOTE_ID.eq(GoogleTask.LIST)))
|
|
|
|
.apply {
|
|
|
|
.join(Join.left(CaldavCalendar.TABLE, CaldavCalendar.UUID.eq(CaldavTask.CALENDAR)))
|
|
|
|
icon = R.drawable.ic_outline_add_24px
|
|
|
|
.join(Join.left(GoogleTaskAccount.TABLE, GoogleTaskAccount.ACCOUNT.eq(GoogleTaskList.ACCOUNT)))
|
|
|
|
}
|
|
|
|
.join(Join.left(CaldavAccount.TABLE, CaldavAccount.UUID.eq(CaldavCalendar.ACCOUNT)))
|
|
|
|
}
|
|
|
|
.where(or(
|
|
|
|
|
|
|
|
and(GoogleTask.ID.gt(0), GoogleTaskAccount.ACCOUNT.eq(null)),
|
|
|
|
|
|
|
|
and(CaldavTask.ID.gt(0), CaldavAccount.UUID.eq(null))))
|
|
|
|
|
|
|
|
).apply {
|
|
|
|
|
|
|
|
icon = R.drawable.ic_outline_cloud_off_24px
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fun getNoModificationDateFilter(): Filter {
|
|
|
|
fun getNoTitleFilter() =
|
|
|
|
return Filter(
|
|
|
|
Filter(
|
|
|
|
"No modify time",
|
|
|
|
"No title",
|
|
|
|
QueryTemplate()
|
|
|
|
QueryTemplate().where(or(Task.TITLE.eq(null), Task.TITLE.eq("")))
|
|
|
|
.where(and(
|
|
|
|
).apply {
|
|
|
|
activeAndVisible(),
|
|
|
|
icon = R.drawable.ic_outline_clear_24px
|
|
|
|
Task.MODIFICATION_DATE.eq(0))))
|
|
|
|
}
|
|
|
|
.apply {
|
|
|
|
|
|
|
|
icon = R.drawable.ic_outline_edit_24px
|
|
|
|
fun getNoCreateDateFilter() =
|
|
|
|
}
|
|
|
|
Filter("No create time", QueryTemplate().where(Task.CREATION_DATE.eq(0)))
|
|
|
|
}
|
|
|
|
.apply { icon = R.drawable.ic_outline_add_24px }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fun getNoModificationDateFilter() =
|
|
|
|
|
|
|
|
Filter("No modify time", QueryTemplate().where(Task.MODIFICATION_DATE.eq(0)))
|
|
|
|
|
|
|
|
.apply { icon = R.drawable.ic_outline_edit_24px }
|
|
|
|
|
|
|
|
|
|
|
|
fun getRecentlyModifiedFilter(r: Resources) =
|
|
|
|
fun getRecentlyModifiedFilter(r: Resources) =
|
|
|
|
RecentlyModifiedFilter(r.getString(R.string.BFE_Recent))
|
|
|
|
RecentlyModifiedFilter(r.getString(R.string.BFE_Recent))
|
|
|
|
|