From 1c122b9e1ff43faee14a993484cd3ada0c8ac13d Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 14 Aug 2020 15:30:07 -0500 Subject: [PATCH] Add missing list debug filter --- .../astrid/core/BuiltInFilterExposer.kt | 25 ++++++++++++++++--- .../java/org/tasks/filters/FilterProvider.kt | 1 + 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.kt b/app/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.kt index bbd8c0956..bf57e6d68 100644 --- a/app/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.kt +++ b/app/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.kt @@ -9,6 +9,7 @@ import android.content.Context 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.or import com.todoroo.andlib.sql.Join import com.todoroo.andlib.sql.QueryTemplate import com.todoroo.andlib.utility.AndroidUtilities @@ -18,9 +19,7 @@ import com.todoroo.astrid.data.Task import com.todoroo.astrid.timers.TimerPlugin import dagger.hilt.android.qualifiers.ApplicationContext import org.tasks.R -import org.tasks.data.CaldavTask -import org.tasks.data.GoogleTask -import org.tasks.data.TaskDao +import org.tasks.data.* import org.tasks.data.TaskDao.TaskCriteria.activeAndVisible import org.tasks.filters.RecentlyModifiedFilter import org.tasks.filters.SortableFilter @@ -103,6 +102,26 @@ class BuiltInFilterExposer @Inject constructor( } } + fun getMissingListFilter(): Filter { + return Filter( + "Missing list", + 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 { return Filter( "No title", diff --git a/app/src/main/java/org/tasks/filters/FilterProvider.kt b/app/src/main/java/org/tasks/filters/FilterProvider.kt index b16933dbb..7cb51c863 100644 --- a/app/src/main/java/org/tasks/filters/FilterProvider.kt +++ b/app/src/main/java/org/tasks/filters/FilterProvider.kt @@ -62,6 +62,7 @@ class FilterProvider @Inject constructor( .plus(listOf( BuiltInFilterExposer.getNoListFilter(), BuiltInFilterExposer.getNoTitleFilter(), + BuiltInFilterExposer.getMissingListFilter(), BuiltInFilterExposer.getNoCreateDateFilter(), BuiltInFilterExposer.getNoModificationDateFilter() ))