From b3d026c0286f86a76facc2509f489960a3d834a7 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 14 Jan 2021 14:08:49 -0600 Subject: [PATCH] Fix up debug filters --- .../astrid/core/BuiltInFilterExposer.kt | 125 ++++++++---------- .../main/java/org/tasks/data/CaldavAccount.kt | 4 + .../java/org/tasks/data/CaldavCalendar.kt | 1 + .../java/org/tasks/data/GoogleTaskAccount.kt | 4 + .../java/org/tasks/data/GoogleTaskList.kt | 1 + .../java/org/tasks/filters/FilterProvider.kt | 6 +- 6 files changed, 72 insertions(+), 69 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 bf57e6d68..a214b16d4 100644 --- a/app/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.kt +++ b/app/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.kt @@ -7,7 +7,6 @@ package com.todoroo.astrid.core 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 @@ -87,76 +86,68 @@ class BuiltInFilterExposer @Inject constructor( todayValues) } - fun getNoListFilter(): Filter { - return Filter( - "No 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)))) - .where(and( - activeAndVisible(), - GoogleTask.ID.eq(null), - CaldavTask.ID.eq(null)))) - .apply { - icon = R.drawable.ic_outline_cloud_off_24px - } - } + fun getNoListFilter() = + Filter( + "No list", + QueryTemplate() + .join(Join.left(GoogleTask.TABLE, GoogleTask.TASK.eq(Task.ID))) + .join(Join.left(CaldavTask.TABLE, CaldavTask.TASK.eq(Task.ID))) + .where(and(GoogleTask.ID.eq(null), CaldavTask.ID.eq(null))) + ).apply { + icon = R.drawable.ic_outline_cloud_off_24px + } - 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 getDeleted() = + Filter("Deleted", QueryTemplate().where(Task.DELETION_DATE.gt(0))) + .apply { icon = R.drawable.ic_outline_delete_24px } - fun getNoTitleFilter(): Filter { - return Filter( - "No title", - QueryTemplate() - .where(and( - activeAndVisible(), - Criterion.or(Task.TITLE.eq(null), Task.TITLE.eq(""))))) - .apply { - icon = R.drawable.ic_outline_clear_24px - } - } + fun getMissingListFilter() = + Filter( + "Missing list", + QueryTemplate() + .join(Join.left(GoogleTask.TABLE, GoogleTask.TASK.eq(Task.ID))) + .join(Join.left(CaldavTask.TABLE, CaldavTask.TASK.eq(Task.ID))) + .join(Join.left(GoogleTaskList.TABLE, GoogleTaskList.REMOTE_ID.eq(GoogleTask.LIST))) + .join(Join.left(CaldavCalendar.TABLE, CaldavCalendar.UUID.eq(CaldavTask.CALENDAR))) + .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 { - return Filter( - "No create time", - QueryTemplate() - .where(and( - activeAndVisible(), - Task.CREATION_DATE.eq(0)))) - .apply { - icon = R.drawable.ic_outline_add_24px - } - } + fun getMissingAccountFilter() = + Filter( + "Missing account", + QueryTemplate() + .join(Join.left(GoogleTask.TABLE, and(GoogleTask.TASK.eq(Task.ID)))) + .join(Join.left(CaldavTask.TABLE, and(CaldavTask.TASK.eq(Task.ID)))) + .join(Join.left(GoogleTaskList.TABLE, GoogleTaskList.REMOTE_ID.eq(GoogleTask.LIST))) + .join(Join.left(CaldavCalendar.TABLE, CaldavCalendar.UUID.eq(CaldavTask.CALENDAR))) + .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 { - return Filter( - "No modify time", - QueryTemplate() - .where(and( - activeAndVisible(), - Task.MODIFICATION_DATE.eq(0)))) - .apply { - icon = R.drawable.ic_outline_edit_24px - } - } + fun getNoTitleFilter() = + Filter( + "No title", + QueryTemplate().where(or(Task.TITLE.eq(null), Task.TITLE.eq(""))) + ).apply { + icon = R.drawable.ic_outline_clear_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) = RecentlyModifiedFilter(r.getString(R.string.BFE_Recent)) diff --git a/app/src/main/java/org/tasks/data/CaldavAccount.kt b/app/src/main/java/org/tasks/data/CaldavAccount.kt index 6344e4af8..ae466429f 100644 --- a/app/src/main/java/org/tasks/data/CaldavAccount.kt +++ b/app/src/main/java/org/tasks/data/CaldavAccount.kt @@ -8,6 +8,7 @@ import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.Ignore import androidx.room.PrimaryKey +import com.todoroo.andlib.data.Table import com.todoroo.astrid.data.Task import org.tasks.R import org.tasks.activities.BaseListSettingsActivity @@ -178,6 +179,9 @@ class CaldavAccount : Parcelable { fun isPaymentRequired() = error?.startsWith(EROR_PAYMENT_REQUIRED) == true companion object { + val TABLE = Table("caldav_accounts") + val UUID = TABLE.column("cda_uuid") + const val TYPE_CALDAV = 0 @Deprecated("use etebase") const val TYPE_ETESYNC = 1 const val TYPE_LOCAL = 2 diff --git a/app/src/main/java/org/tasks/data/CaldavCalendar.kt b/app/src/main/java/org/tasks/data/CaldavCalendar.kt index 478f8a518..6606466aa 100644 --- a/app/src/main/java/org/tasks/data/CaldavCalendar.kt +++ b/app/src/main/java/org/tasks/data/CaldavCalendar.kt @@ -122,6 +122,7 @@ class CaldavCalendar : Parcelable { companion object { @JvmField val TABLE = Table("caldav_lists") + val ACCOUNT = TABLE.column("cdl_account") @JvmField val UUID = TABLE.column("cdl_uuid") @JvmField val NAME = TABLE.column("cdl_name") @JvmField val CREATOR: Parcelable.Creator = object : Parcelable.Creator { diff --git a/app/src/main/java/org/tasks/data/GoogleTaskAccount.kt b/app/src/main/java/org/tasks/data/GoogleTaskAccount.kt index d43268afd..57c7c33b3 100644 --- a/app/src/main/java/org/tasks/data/GoogleTaskAccount.kt +++ b/app/src/main/java/org/tasks/data/GoogleTaskAccount.kt @@ -7,6 +7,7 @@ import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.Ignore import androidx.room.PrimaryKey +import com.todoroo.andlib.data.Table @Entity(tableName = "google_task_accounts") class GoogleTaskAccount : Parcelable { @@ -82,6 +83,9 @@ class GoogleTaskAccount : Parcelable { "GoogleTaskAccount(id=$id, account=$account, error=$error, etag=$etag, isCollapsed=$isCollapsed)" companion object { + val TABLE = Table("google_task_accounts") + val ACCOUNT = TABLE.column("gta_account") + @JvmField val CREATOR: Parcelable.Creator = object : Parcelable.Creator { override fun createFromParcel(source: Parcel): GoogleTaskAccount = GoogleTaskAccount(source) diff --git a/app/src/main/java/org/tasks/data/GoogleTaskList.kt b/app/src/main/java/org/tasks/data/GoogleTaskList.kt index 1df813550..0e990336e 100644 --- a/app/src/main/java/org/tasks/data/GoogleTaskList.kt +++ b/app/src/main/java/org/tasks/data/GoogleTaskList.kt @@ -114,6 +114,7 @@ class GoogleTaskList : Parcelable { companion object { @JvmField val TABLE = Table("google_task_lists") + val ACCOUNT = TABLE.column("gtl_account") @JvmField val REMOTE_ID = TABLE.column("gtl_remote_id") @JvmField val NAME = TABLE.column("gtl_title") @JvmField val CREATOR: Parcelable.Creator = object : Parcelable.Creator { diff --git a/app/src/main/java/org/tasks/filters/FilterProvider.kt b/app/src/main/java/org/tasks/filters/FilterProvider.kt index 53855226a..da5d834e2 100644 --- a/app/src/main/java/org/tasks/filters/FilterProvider.kt +++ b/app/src/main/java/org/tasks/filters/FilterProvider.kt @@ -63,8 +63,10 @@ class FilterProvider @Inject constructor( BuiltInFilterExposer.getNoListFilter(), BuiltInFilterExposer.getNoTitleFilter(), BuiltInFilterExposer.getMissingListFilter(), + BuiltInFilterExposer.getMissingAccountFilter(), BuiltInFilterExposer.getNoCreateDateFilter(), - BuiltInFilterExposer.getNoModificationDateFilter() + BuiltInFilterExposer.getNoModificationDateFilter(), + BuiltInFilterExposer.getDeleted() )) } else { @@ -158,7 +160,6 @@ class FilterProvider @Inject constructor( } else { ArrayList() } - .plusAllIf(BuildConfig.DEBUG) { getDebugFilters() } .asSequence() .plus(addFilters(showCreate, showBuiltIn)) .plus(addTags(showCreate)) @@ -166,6 +167,7 @@ class FilterProvider @Inject constructor( .plus(googleTaskFilters(showCreate)) .plus(caldavFilters(showCreate)) .toList() + .plusAllIf(BuildConfig.DEBUG) { getDebugFilters() } private val navDrawerFooter: List get() = listOf(NavigationDrawerSeparator())