Move filters to multiplatform library

pull/2912/head
Alex Baker 2 years ago
parent 4c1121869d
commit bbaaf27386

@ -155,6 +155,7 @@ val googleplayImplementation by configurations
dependencies { dependencies {
implementation(projects.data) implementation(projects.data)
implementation(projects.kmp)
coreLibraryDesugaring(libs.desugar.jdk.libs) coreLibraryDesugaring(libs.desugar.jdk.libs)
implementation(libs.bitfire.dav4jvm) { implementation(libs.bitfire.dav4jvm) {
exclude(group = "junit") exclude(group = "junit")

@ -1,13 +1,13 @@
package com.todoroo.astrid.subtasks package com.todoroo.astrid.subtasks
import androidx.test.InstrumentationRegistry import androidx.test.InstrumentationRegistry
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.core.BuiltInFilterExposer import com.todoroo.astrid.core.BuiltInFilterExposer
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import org.tasks.data.entity.Task
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull import org.junit.Assert.assertNotNull
import org.tasks.data.dao.TaskListMetadataDao import org.tasks.data.dao.TaskListMetadataDao
import org.tasks.data.entity.Task
import org.tasks.filters.AstridOrderingFilter
import org.tasks.injection.InjectingTestCase import org.tasks.injection.InjectingTestCase
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import javax.inject.Inject import javax.inject.Inject

@ -23,7 +23,6 @@ import androidx.lifecycle.repeatOnLifecycle
import com.todoroo.andlib.utility.AndroidUtilities import com.todoroo.andlib.utility.AndroidUtilities
import com.todoroo.astrid.activity.TaskEditFragment.Companion.newTaskEditFragment import com.todoroo.astrid.activity.TaskEditFragment.Companion.newTaskEditFragment
import com.todoroo.astrid.adapter.SubheaderClickHandler import com.todoroo.astrid.adapter.SubheaderClickHandler
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.service.TaskCreator import com.todoroo.astrid.service.TaskCreator
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@ -53,6 +52,7 @@ import org.tasks.dialogs.NewFilterDialog
import org.tasks.dialogs.WhatsNewDialog import org.tasks.dialogs.WhatsNewDialog
import org.tasks.extensions.Context.nightMode import org.tasks.extensions.Context.nightMode
import org.tasks.extensions.hideKeyboard import org.tasks.extensions.hideKeyboard
import org.tasks.filters.Filter
import org.tasks.filters.FilterProvider import org.tasks.filters.FilterProvider
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter
import org.tasks.location.LocationPickerActivity.Companion.EXTRA_PLACE import org.tasks.location.LocationPickerActivity.Companion.EXTRA_PLACE

@ -10,7 +10,6 @@ import com.todoroo.astrid.activity.MainActivity.Companion.LOAD_FILTER
import com.todoroo.astrid.activity.MainActivity.Companion.OPEN_FILTER import com.todoroo.astrid.activity.MainActivity.Companion.OPEN_FILTER
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.CustomFilter import com.todoroo.astrid.api.CustomFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.TagFilter import com.todoroo.astrid.api.TagFilter
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
@ -28,11 +27,12 @@ import org.tasks.R
import org.tasks.Tasks.Companion.IS_GENERIC import org.tasks.Tasks.Companion.IS_GENERIC
import org.tasks.billing.Inventory import org.tasks.billing.Inventory
import org.tasks.compose.drawer.DrawerItem import org.tasks.compose.drawer.DrawerItem
import org.tasks.data.dao.CaldavDao
import org.tasks.data.NO_COUNT import org.tasks.data.NO_COUNT
import org.tasks.data.entity.Task
import org.tasks.data.dao.TaskDao
import org.tasks.data.count import org.tasks.data.count
import org.tasks.data.dao.CaldavDao
import org.tasks.data.dao.TaskDao
import org.tasks.data.entity.Task
import org.tasks.filters.Filter
import org.tasks.filters.FilterProvider import org.tasks.filters.FilterProvider
import org.tasks.filters.NavigationDrawerSubheader import org.tasks.filters.NavigationDrawerSubheader
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter

@ -44,9 +44,7 @@ import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.appbar.AppBarLayout.Behavior.DragCallback import com.google.android.material.appbar.AppBarLayout.Behavior.DragCallback
import com.todoroo.andlib.utility.AndroidUtilities.atLeastOreoMR1 import com.todoroo.andlib.utility.AndroidUtilities.atLeastOreoMR1
import com.todoroo.andlib.utility.DateUtilities import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import org.tasks.data.entity.Task
import com.todoroo.astrid.files.FilesControlSet import com.todoroo.astrid.files.FilesControlSet
import com.todoroo.astrid.repeats.RepeatControlSet import com.todoroo.astrid.repeats.RepeatControlSet
import com.todoroo.astrid.tags.TagsControlSet import com.todoroo.astrid.tags.TagsControlSet
@ -70,10 +68,11 @@ import org.tasks.compose.edit.DueDateRow
import org.tasks.compose.edit.InfoRow import org.tasks.compose.edit.InfoRow
import org.tasks.compose.edit.ListRow import org.tasks.compose.edit.ListRow
import org.tasks.compose.edit.PriorityRow import org.tasks.compose.edit.PriorityRow
import org.tasks.data.entity.Alarm
import org.tasks.data.Location import org.tasks.data.Location
import org.tasks.data.entity.TagData
import org.tasks.data.dao.UserActivityDao import org.tasks.data.dao.UserActivityDao
import org.tasks.data.entity.Alarm
import org.tasks.data.entity.TagData
import org.tasks.data.entity.Task
import org.tasks.databinding.FragmentTaskEditBinding import org.tasks.databinding.FragmentTaskEditBinding
import org.tasks.databinding.TaskEditCalendarBinding import org.tasks.databinding.TaskEditCalendarBinding
import org.tasks.databinding.TaskEditFilesBinding import org.tasks.databinding.TaskEditFilesBinding
@ -92,6 +91,7 @@ import org.tasks.dialogs.FilterPicker.Companion.setFilterPickerResultListener
import org.tasks.dialogs.Linkify import org.tasks.dialogs.Linkify
import org.tasks.extensions.hideKeyboard import org.tasks.extensions.hideKeyboard
import org.tasks.files.FileHelper import org.tasks.files.FileHelper
import org.tasks.filters.Filter
import org.tasks.fragments.TaskEditControlSetFragmentManager import org.tasks.fragments.TaskEditControlSetFragmentManager
import org.tasks.fragments.TaskEditControlSetFragmentManager.Companion.TAG_CREATION import org.tasks.fragments.TaskEditControlSetFragmentManager.Companion.TAG_CREATION
import org.tasks.fragments.TaskEditControlSetFragmentManager.Companion.TAG_DESCRIPTION import org.tasks.fragments.TaskEditControlSetFragmentManager.Companion.TAG_DESCRIPTION

@ -53,11 +53,8 @@ import com.todoroo.astrid.adapter.TaskAdapter
import com.todoroo.astrid.adapter.TaskAdapterProvider import com.todoroo.astrid.adapter.TaskAdapterProvider
import com.todoroo.astrid.api.AstridApiConstants.EXTRAS_OLD_DUE_DATE import com.todoroo.astrid.api.AstridApiConstants.EXTRAS_OLD_DUE_DATE
import com.todoroo.astrid.api.AstridApiConstants.EXTRAS_TASK_ID import com.todoroo.astrid.api.AstridApiConstants.EXTRAS_TASK_ID
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.CustomFilter import com.todoroo.astrid.api.CustomFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterImpl
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.TagFilter import com.todoroo.astrid.api.TagFilter
import com.todoroo.astrid.core.BuiltInFilterExposer import com.todoroo.astrid.core.BuiltInFilterExposer
@ -112,6 +109,9 @@ import org.tasks.extensions.Context.toast
import org.tasks.extensions.Fragment.safeStartActivityForResult import org.tasks.extensions.Fragment.safeStartActivityForResult
import org.tasks.extensions.hideKeyboard import org.tasks.extensions.hideKeyboard
import org.tasks.extensions.setOnQueryTextListener import org.tasks.extensions.setOnQueryTextListener
import org.tasks.filters.AstridOrderingFilter
import org.tasks.filters.Filter
import org.tasks.filters.FilterImpl
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter
import org.tasks.markdown.MarkdownProvider import org.tasks.markdown.MarkdownProvider
import org.tasks.preferences.Device import org.tasks.preferences.Device

@ -1,16 +1,16 @@
package com.todoroo.astrid.adapter package com.todoroo.astrid.adapter
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import org.tasks.data.entity.Task
import com.todoroo.astrid.service.TaskMover import com.todoroo.astrid.service.TaskMover
import com.todoroo.astrid.subtasks.SubtasksFilterUpdater import com.todoroo.astrid.subtasks.SubtasksFilterUpdater
import org.tasks.LocalBroadcastManager import org.tasks.LocalBroadcastManager
import org.tasks.Strings.isNullOrEmpty import org.tasks.Strings.isNullOrEmpty
import org.tasks.data.TaskContainer
import org.tasks.data.dao.CaldavDao import org.tasks.data.dao.CaldavDao
import org.tasks.data.dao.GoogleTaskDao import org.tasks.data.dao.GoogleTaskDao
import org.tasks.data.TaskContainer import org.tasks.data.entity.Task
import org.tasks.data.entity.TaskListMetadata import org.tasks.data.entity.TaskListMetadata
import org.tasks.filters.AstridOrderingFilter
import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.time.DateTimeUtils2.currentTimeMillis
import timber.log.Timber import timber.log.Timber
import java.util.Collections import java.util.Collections

@ -9,13 +9,13 @@ import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.CustomFilter import com.todoroo.astrid.api.CustomFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.TagFilter import com.todoroo.astrid.api.TagFilter
import org.tasks.R import org.tasks.R
import org.tasks.billing.Inventory import org.tasks.billing.Inventory
import org.tasks.databinding.FilterAdapterRowBinding import org.tasks.databinding.FilterAdapterRowBinding
import org.tasks.extensions.formatNumber import org.tasks.extensions.formatNumber
import org.tasks.filters.Filter
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter
import org.tasks.themes.ColorProvider import org.tasks.themes.ColorProvider
import org.tasks.themes.CustomIcons.getIconResId import org.tasks.themes.CustomIcons.getIconResId

@ -10,14 +10,15 @@ import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.asCoroutineDispatcher import kotlinx.coroutines.asCoroutineDispatcher
import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import org.tasks.R
import org.tasks.activities.DragAndDropDiffer import org.tasks.activities.DragAndDropDiffer
import org.tasks.billing.Inventory import org.tasks.billing.Inventory
import org.tasks.filters.Filter
import org.tasks.filters.FilterListItem
import org.tasks.filters.NavigationDrawerSubheader import org.tasks.filters.NavigationDrawerSubheader
import org.tasks.themes.ColorProvider import org.tasks.themes.ColorProvider
import java.util.LinkedList import java.util.LinkedList
@ -58,7 +59,11 @@ class NavigationDrawerAdapter @Inject constructor(
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val type = FilterListItem.Type.values()[viewType] val type = FilterListItem.Type.values()[viewType]
val view = LayoutInflater.from(parent.context).inflate(type.layout, parent, false) val layout = when (type) {
FilterListItem.Type.ITEM -> R.layout.filter_adapter_row
FilterListItem.Type.SUBHEADER -> R.layout.filter_adapter_subheader
}
val view = LayoutInflater.from(parent.context).inflate(layout, parent, false)
return when (type) { return when (type) {
FilterListItem.Type.ITEM -> FilterViewHolder( FilterListItem.Type.ITEM -> FilterViewHolder(
view, true, locale, activity, inventory, colorProvider) { onClickFilter(it) } view, true, locale, activity, inventory, colorProvider) { onClickFilter(it) }

@ -1,14 +1,11 @@
package com.todoroo.astrid.adapter package com.todoroo.astrid.adapter
import android.content.Context import android.content.Context
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.TagFilter import com.todoroo.astrid.api.TagFilter
import com.todoroo.astrid.core.BuiltInFilterExposer import com.todoroo.astrid.core.BuiltInFilterExposer
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import org.tasks.data.entity.Task.Companion.isUuidEmpty
import com.todoroo.astrid.service.TaskMover import com.todoroo.astrid.service.TaskMover
import com.todoroo.astrid.subtasks.SubtasksFilterUpdater import com.todoroo.astrid.subtasks.SubtasksFilterUpdater
import com.todoroo.astrid.subtasks.SubtasksHelper import com.todoroo.astrid.subtasks.SubtasksHelper
@ -18,8 +15,11 @@ import org.tasks.LocalBroadcastManager
import org.tasks.Strings.isNullOrEmpty import org.tasks.Strings.isNullOrEmpty
import org.tasks.data.dao.CaldavDao import org.tasks.data.dao.CaldavDao
import org.tasks.data.dao.GoogleTaskDao import org.tasks.data.dao.GoogleTaskDao
import org.tasks.data.entity.TaskListMetadata
import org.tasks.data.dao.TaskListMetadataDao import org.tasks.data.dao.TaskListMetadataDao
import org.tasks.data.entity.Task.Companion.isUuidEmpty
import org.tasks.data.entity.TaskListMetadata
import org.tasks.filters.AstridOrderingFilter
import org.tasks.filters.Filter
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import javax.inject.Inject import javax.inject.Inject

@ -10,6 +10,8 @@ import org.tasks.data.entity.CaldavTask
import org.tasks.data.NO_COUNT import org.tasks.data.NO_COUNT
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import org.tasks.data.dao.TaskDao.TaskCriteria.activeAndVisible import org.tasks.data.dao.TaskDao.TaskCriteria.activeAndVisible
import org.tasks.filters.Filter
import org.tasks.filters.FilterListItem
@Parcelize @Parcelize
data class CaldavFilter( data class CaldavFilter(

@ -1,6 +1,8 @@
package com.todoroo.astrid.api package com.todoroo.astrid.api
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.tasks.filters.Filter
import org.tasks.filters.FilterListItem
import org.tasks.themes.CustomIcons import org.tasks.themes.CustomIcons
@Parcelize @Parcelize

@ -1,8 +1,13 @@
package com.todoroo.astrid.api package com.todoroo.astrid.api
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.tasks.filters.Filter
import org.tasks.filters.FilterListItem
@Parcelize @Parcelize
class EmptyFilter(override val sql: String? = "WHERE 0", override val title: String? = null) : Filter { class EmptyFilter(
override val sql: String? = "WHERE 0",
override val title: String? = null
) : Filter {
override fun areItemsTheSame(other: FilterListItem): Boolean = false override fun areItemsTheSame(other: FilterListItem): Boolean = false
} }

@ -1,15 +0,0 @@
package com.todoroo.astrid.api
import androidx.annotation.LayoutRes
import org.tasks.R
interface FilterListItem {
val itemType: Type
fun areItemsTheSame(other: FilterListItem): Boolean
enum class Type(@param:LayoutRes val layout: Int) {
ITEM(R.layout.filter_adapter_row),
SUBHEADER(R.layout.filter_adapter_subheader),
}
}

@ -11,6 +11,8 @@ import org.tasks.data.entity.CaldavTask
import org.tasks.data.GoogleTask import org.tasks.data.GoogleTask
import org.tasks.data.NO_COUNT import org.tasks.data.NO_COUNT
import org.tasks.data.dao.TaskDao.TaskCriteria.activeAndVisible import org.tasks.data.dao.TaskDao.TaskCriteria.activeAndVisible
import org.tasks.filters.Filter
import org.tasks.filters.FilterListItem
@Parcelize @Parcelize
data class GtasksFilter( data class GtasksFilter(

@ -1,17 +1,19 @@
package com.todoroo.astrid.api package com.todoroo.astrid.api
import org.tasks.data.sql.Criterion
import org.tasks.data.sql.Join
import org.tasks.data.sql.Query
import org.tasks.data.sql.QueryTemplate
import org.tasks.data.entity.Task
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.tasks.data.entity.CaldavCalendar import org.tasks.data.entity.CaldavCalendar
import org.tasks.data.entity.CaldavTask import org.tasks.data.entity.CaldavTask
import org.tasks.data.entity.Geofence import org.tasks.data.entity.Geofence
import org.tasks.data.entity.Place import org.tasks.data.entity.Place
import org.tasks.data.entity.Tag import org.tasks.data.entity.Tag
import org.tasks.data.entity.Task
import org.tasks.data.entity.UserActivity import org.tasks.data.entity.UserActivity
import org.tasks.data.sql.Criterion
import org.tasks.data.sql.Join
import org.tasks.data.sql.Query
import org.tasks.data.sql.QueryTemplate
import org.tasks.filters.Filter
import org.tasks.filters.FilterListItem
@Parcelize @Parcelize
data class SearchFilter( data class SearchFilter(

@ -10,6 +10,8 @@ import org.tasks.data.entity.Task
import org.tasks.data.sql.Criterion.Companion.and import org.tasks.data.sql.Criterion.Companion.and
import org.tasks.data.sql.Join.Companion.inner import org.tasks.data.sql.Join.Companion.inner
import org.tasks.data.sql.QueryTemplate import org.tasks.data.sql.QueryTemplate
import org.tasks.filters.AstridOrderingFilter
import org.tasks.filters.FilterListItem
@Parcelize @Parcelize
data class TagFilter( data class TagFilter(

@ -7,19 +7,19 @@ package com.todoroo.astrid.core
import android.content.Context import android.content.Context
import android.content.res.Resources import android.content.res.Resources
import org.tasks.data.sql.Criterion.Companion.and
import org.tasks.data.sql.Criterion.Companion.or
import org.tasks.data.sql.Join
import org.tasks.data.sql.QueryTemplate
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterImpl
import org.tasks.data.entity.Task
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.R import org.tasks.R
import org.tasks.data.dao.TaskDao
import org.tasks.data.entity.CaldavAccount import org.tasks.data.entity.CaldavAccount
import org.tasks.data.entity.CaldavCalendar import org.tasks.data.entity.CaldavCalendar
import org.tasks.data.entity.CaldavTask import org.tasks.data.entity.CaldavTask
import org.tasks.data.dao.TaskDao import org.tasks.data.entity.Task
import org.tasks.data.sql.Criterion.Companion.and
import org.tasks.data.sql.Criterion.Companion.or
import org.tasks.data.sql.Join
import org.tasks.data.sql.QueryTemplate
import org.tasks.filters.Filter
import org.tasks.filters.FilterImpl
import org.tasks.filters.MyTasksFilter import org.tasks.filters.MyTasksFilter
import org.tasks.filters.NotificationsFilter import org.tasks.filters.NotificationsFilter
import org.tasks.filters.RecentlyModifiedFilter import org.tasks.filters.RecentlyModifiedFilter

@ -5,7 +5,6 @@
*/ */
package com.todoroo.astrid.dao package com.todoroo.astrid.dao
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.timers.TimerPlugin import com.todoroo.astrid.timers.TimerPlugin
import org.tasks.LocalBroadcastManager import org.tasks.LocalBroadcastManager
import org.tasks.data.TaskContainer import org.tasks.data.TaskContainer
@ -16,6 +15,7 @@ import org.tasks.data.fetchFiltered
import org.tasks.data.fetchTasks import org.tasks.data.fetchTasks
import org.tasks.data.setCollapsed import org.tasks.data.setCollapsed
import org.tasks.date.DateTimeUtils.isAfterNow import org.tasks.date.DateTimeUtils.isAfterNow
import org.tasks.filters.Filter
import org.tasks.jobs.WorkManager import org.tasks.jobs.WorkManager
import org.tasks.location.GeofenceApi import org.tasks.location.GeofenceApi
import org.tasks.notifications.NotificationManager import org.tasks.notifications.NotificationManager

@ -3,7 +3,6 @@ package com.todoroo.astrid.service
import com.todoroo.andlib.utility.AndroidUtilities import com.todoroo.andlib.utility.AndroidUtilities
import com.todoroo.andlib.utility.DateUtilities import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.PermaSql import com.todoroo.astrid.api.PermaSql
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
@ -36,6 +35,7 @@ import org.tasks.data.entity.Task.Companion.DUE_DATE
import org.tasks.data.entity.Task.Companion.HIDE_UNTIL import org.tasks.data.entity.Task.Companion.HIDE_UNTIL
import org.tasks.data.entity.Task.Companion.HIDE_UNTIL_NONE import org.tasks.data.entity.Task.Companion.HIDE_UNTIL_NONE
import org.tasks.data.entity.Task.Companion.IMPORTANCE import org.tasks.data.entity.Task.Companion.IMPORTANCE
import org.tasks.filters.Filter
import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.DefaultFilterProvider
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import org.tasks.time.DateTimeUtils.startOfDay import org.tasks.time.DateTimeUtils.startOfDay

@ -2,21 +2,21 @@ package com.todoroo.astrid.service
import android.content.Context import android.content.Context
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.BuildConfig import org.tasks.BuildConfig
import org.tasks.LocalBroadcastManager import org.tasks.LocalBroadcastManager
import org.tasks.caldav.VtodoCache import org.tasks.caldav.VtodoCache
import org.tasks.data.entity.CaldavAccount
import org.tasks.data.dao.CaldavDao import org.tasks.data.dao.CaldavDao
import org.tasks.data.entity.CaldavTask
import org.tasks.data.dao.GoogleTaskDao import org.tasks.data.dao.GoogleTaskDao
import org.tasks.data.dao.GoogleTaskListDao import org.tasks.data.dao.GoogleTaskListDao
import org.tasks.data.entity.Task
import org.tasks.data.dao.TaskDao import org.tasks.data.dao.TaskDao
import org.tasks.data.getLocalList
import org.tasks.data.db.DbUtils.dbchunk import org.tasks.data.db.DbUtils.dbchunk
import org.tasks.data.entity.CaldavAccount
import org.tasks.data.entity.CaldavTask
import org.tasks.data.entity.Task
import org.tasks.data.getLocalList
import org.tasks.filters.Filter
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import org.tasks.sync.SyncAdapters import org.tasks.sync.SyncAdapters
import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.time.DateTimeUtils2.currentTimeMillis

@ -1,6 +1,5 @@
package com.todoroo.astrid.subtasks package com.todoroo.astrid.subtasks
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import org.tasks.data.entity.Task.Companion.isValidUuid import org.tasks.data.entity.Task.Companion.isValidUuid
@ -10,6 +9,7 @@ import org.tasks.Strings.isNullOrEmpty
import org.tasks.data.entity.TaskListMetadata import org.tasks.data.entity.TaskListMetadata
import org.tasks.data.dao.TaskListMetadataDao import org.tasks.data.dao.TaskListMetadataDao
import org.tasks.db.QueryUtils.showHiddenAndCompleted import org.tasks.db.QueryUtils.showHiddenAndCompleted
import org.tasks.filters.AstridOrderingFilter
import timber.log.Timber import timber.log.Timber
import java.util.* import java.util.*
import javax.inject.Inject import javax.inject.Inject

@ -1,22 +1,22 @@
package com.todoroo.astrid.subtasks package com.todoroo.astrid.subtasks
import android.content.Context import android.content.Context
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.core.BuiltInFilterExposer.Companion.isInbox import com.todoroo.astrid.core.BuiltInFilterExposer.Companion.isInbox
import com.todoroo.astrid.core.BuiltInFilterExposer.Companion.isTodayFilter import com.todoroo.astrid.core.BuiltInFilterExposer.Companion.isTodayFilter
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import org.tasks.data.entity.Task.Companion.isValidUuid
import com.todoroo.astrid.subtasks.SubtasksFilterUpdater.Companion.buildOrderString import com.todoroo.astrid.subtasks.SubtasksFilterUpdater.Companion.buildOrderString
import com.todoroo.astrid.subtasks.SubtasksFilterUpdater.Companion.buildTreeModel import com.todoroo.astrid.subtasks.SubtasksFilterUpdater.Companion.buildTreeModel
import com.todoroo.astrid.subtasks.SubtasksFilterUpdater.Companion.serializeTree import com.todoroo.astrid.subtasks.SubtasksFilterUpdater.Companion.serializeTree
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.Strings.isNullOrEmpty import org.tasks.Strings.isNullOrEmpty
import org.tasks.data.entity.TagData
import org.tasks.data.dao.TagDataDao import org.tasks.data.dao.TagDataDao
import org.tasks.data.entity.TaskListMetadata
import org.tasks.data.dao.TaskListMetadataDao import org.tasks.data.dao.TaskListMetadataDao
import org.tasks.data.entity.TagData
import org.tasks.data.entity.Task.Companion.isValidUuid
import org.tasks.data.entity.TaskListMetadata
import org.tasks.db.QueryUtils.showHiddenAndCompleted import org.tasks.db.QueryUtils.showHiddenAndCompleted
import org.tasks.filters.AstridOrderingFilter
import org.tasks.filters.Filter
import org.tasks.preferences.QueryPreferences import org.tasks.preferences.QueryPreferences
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@ -29,8 +29,8 @@ class SubtasksHelper @Inject constructor(
) { ) {
suspend fun applySubtasksToWidgetFilter( suspend fun applySubtasksToWidgetFilter(
filter: Filter, filter: Filter,
preferences: QueryPreferences, preferences: QueryPreferences,
) { ) {
if (filter is AstridOrderingFilter && preferences.isAstridSort) { if (filter is AstridOrderingFilter && preferences.isAstridSort) {
var query = filter.sql!! var query = filter.sql!!

@ -3,7 +3,6 @@ package org.tasks
import android.app.PendingIntent import android.app.PendingIntent
import android.content.Context import android.content.Context
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.voice.VoiceOutputAssistant import com.todoroo.astrid.voice.VoiceOutputAssistant
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
@ -14,6 +13,7 @@ import org.tasks.data.entity.Alarm.Companion.TYPE_GEO_EXIT
import org.tasks.data.entity.Geofence import org.tasks.data.entity.Geofence
import org.tasks.data.entity.Notification import org.tasks.data.entity.Notification
import org.tasks.data.fetchFiltered import org.tasks.data.fetchFiltered
import org.tasks.filters.Filter
import org.tasks.intents.TaskIntents import org.tasks.intents.TaskIntents
import org.tasks.notifications.AudioManager import org.tasks.notifications.AudioManager
import org.tasks.notifications.NotificationManager import org.tasks.notifications.NotificationManager

@ -20,9 +20,6 @@ import com.todoroo.astrid.adapter.FilterViewHolder
import com.todoroo.astrid.adapter.NavigationDrawerAdapter import com.todoroo.astrid.adapter.NavigationDrawerAdapter
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.CustomFilter import com.todoroo.astrid.api.CustomFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import com.todoroo.astrid.api.FilterListItem.Type.ITEM
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.TagFilter import com.todoroo.astrid.api.TagFilter
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@ -37,6 +34,8 @@ import org.tasks.data.dao.LocationDao
import org.tasks.data.dao.TagDataDao import org.tasks.data.dao.TagDataDao
import org.tasks.data.listSettingsClass import org.tasks.data.listSettingsClass
import org.tasks.databinding.ActivityTagOrganizerBinding import org.tasks.databinding.ActivityTagOrganizerBinding
import org.tasks.filters.Filter
import org.tasks.filters.FilterListItem
import org.tasks.filters.FilterProvider import org.tasks.filters.FilterProvider
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter
import org.tasks.injection.ThemedInjectingAppCompatActivity import org.tasks.injection.ThemedInjectingAppCompatActivity
@ -162,7 +161,7 @@ class NavigationDrawerCustomization : ThemedInjectingAppCompatActivity(), Toolba
private var to = -1 private var to = -1
override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder) = override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder) =
if (viewHolder.itemViewType == ITEM.ordinal) ALLOW_DRAGGING else NO_MOVEMENT if (viewHolder.itemViewType == 0) ALLOW_DRAGGING else NO_MOVEMENT
override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) { override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) {
super.onSelectedChanged(viewHolder, actionState) super.onSelectedChanged(viewHolder, actionState)

@ -1,7 +1,7 @@
package org.tasks.compose package org.tasks.compose
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import com.todoroo.astrid.api.Filter import org.tasks.filters.Filter
import org.tasks.themes.CustomIcons import org.tasks.themes.CustomIcons
@Composable @Composable

@ -10,7 +10,7 @@ sealed interface DrawerItem {
val count: Int = 0, val count: Int = 0,
val shareCount: Int = 0, val shareCount: Int = 0,
val selected: Boolean = false, val selected: Boolean = false,
val type: () -> com.todoroo.astrid.api.Filter, val type: () -> org.tasks.filters.Filter,
) : DrawerItem ) : DrawerItem
data class Header( data class Header(
val title: String, val title: String,

@ -45,12 +45,12 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.todoroo.astrid.api.FilterImpl
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
import org.tasks.R import org.tasks.R
import org.tasks.Tasks.Companion.IS_GENERIC import org.tasks.Tasks.Companion.IS_GENERIC
import org.tasks.extensions.formatNumber import org.tasks.extensions.formatNumber
import org.tasks.filters.FilterImpl
import org.tasks.filters.NavigationDrawerSubheader import org.tasks.filters.NavigationDrawerSubheader
import org.tasks.themes.TasksTheme import org.tasks.themes.TasksTheme

@ -3,8 +3,8 @@ package org.tasks.compose.drawer
import android.content.Intent import android.content.Intent
import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
@ -17,7 +17,6 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.todoroo.astrid.api.Filter
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -27,6 +26,7 @@ import org.tasks.activities.NavigationDrawerCustomization
import org.tasks.billing.PurchaseActivity import org.tasks.billing.PurchaseActivity
import org.tasks.extensions.Context.findActivity import org.tasks.extensions.Context.findActivity
import org.tasks.extensions.Context.openUri import org.tasks.extensions.Context.openUri
import org.tasks.filters.Filter
import org.tasks.filters.NavigationDrawerSubheader import org.tasks.filters.NavigationDrawerSubheader
import org.tasks.preferences.HelpAndFeedback import org.tasks.preferences.HelpAndFeedback
import org.tasks.preferences.MainPreferences import org.tasks.preferences.MainPreferences

@ -7,12 +7,12 @@ import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterImpl
import org.tasks.R import org.tasks.R
import org.tasks.compose.ChipGroup import org.tasks.compose.ChipGroup
import org.tasks.compose.FilterChip import org.tasks.compose.FilterChip
import org.tasks.compose.TaskEditRow import org.tasks.compose.TaskEditRow
import org.tasks.filters.Filter
import org.tasks.filters.FilterImpl
import org.tasks.themes.TasksTheme import org.tasks.themes.TasksTheme
@Composable @Composable

@ -33,7 +33,6 @@ import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import org.tasks.compose.CheckBox import org.tasks.compose.CheckBox
import org.tasks.compose.ClearButton import org.tasks.compose.ClearButton
@ -44,6 +43,7 @@ import org.tasks.compose.TaskEditRow
import org.tasks.data.TaskContainer import org.tasks.data.TaskContainer
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import org.tasks.data.isHidden import org.tasks.data.isHidden
import org.tasks.filters.Filter
import org.tasks.tasklist.SectionedDataSource import org.tasks.tasklist.SectionedDataSource
import org.tasks.themes.TasksTheme import org.tasks.themes.TasksTheme
import org.tasks.ui.TaskListViewModel import org.tasks.ui.TaskListViewModel

@ -19,10 +19,10 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.Filter
import org.tasks.R import org.tasks.R
import org.tasks.compose.collectAsStateLifecycleAware import org.tasks.compose.collectAsStateLifecycleAware
import org.tasks.dialogs.FilterPickerViewModel import org.tasks.dialogs.FilterPickerViewModel
import org.tasks.filters.Filter
import org.tasks.filters.NavigationDrawerSubheader import org.tasks.filters.NavigationDrawerSubheader
@Composable @Composable

@ -1,12 +1,12 @@
package org.tasks.data package org.tasks.data
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.PermaSql import com.todoroo.astrid.api.PermaSql
import org.tasks.data.dao.TaskDao import org.tasks.data.dao.TaskDao
import org.tasks.data.db.SuspendDbUtils.eachChunk import org.tasks.data.db.SuspendDbUtils.eachChunk
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import org.tasks.data.sql.Field import org.tasks.data.sql.Field
import org.tasks.data.sql.Query import org.tasks.data.sql.Query
import org.tasks.filters.Filter
import org.tasks.preferences.QueryPreferences import org.tasks.preferences.QueryPreferences
import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.time.DateTimeUtils2.currentTimeMillis
import timber.log.Timber import timber.log.Timber

@ -1,11 +1,5 @@
package org.tasks.data package org.tasks.data
import org.tasks.data.sql.Criterion
import org.tasks.data.sql.Field.Companion.field
import org.tasks.data.sql.Join
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.api.Filter
import org.tasks.data.entity.Task
import org.tasks.data.TaskListQueryNonRecursive.getNonRecursiveQuery import org.tasks.data.TaskListQueryNonRecursive.getNonRecursiveQuery
import org.tasks.data.TaskListQueryRecursive.getRecursiveQuery import org.tasks.data.TaskListQueryRecursive.getRecursiveQuery
import org.tasks.data.entity.CaldavAccount import org.tasks.data.entity.CaldavAccount
@ -13,6 +7,12 @@ import org.tasks.data.entity.CaldavCalendar
import org.tasks.data.entity.CaldavTask import org.tasks.data.entity.CaldavTask
import org.tasks.data.entity.Geofence import org.tasks.data.entity.Geofence
import org.tasks.data.entity.Place import org.tasks.data.entity.Place
import org.tasks.data.entity.Task
import org.tasks.data.sql.Criterion
import org.tasks.data.sql.Field.Companion.field
import org.tasks.data.sql.Join
import org.tasks.filters.AstridOrderingFilter
import org.tasks.filters.Filter
import org.tasks.preferences.QueryPreferences import org.tasks.preferences.QueryPreferences
object TaskListQuery { object TaskListQuery {
@ -39,8 +39,8 @@ object TaskListQuery {
@JvmStatic @JvmStatic
fun getQuery( fun getQuery(
preferences: QueryPreferences, preferences: QueryPreferences,
filter: Filter, filter: Filter,
): MutableList<String> = when { ): MutableList<String> = when {
filter.supportsManualSort() && preferences.isManualSort -> filter.supportsManualSort() && preferences.isManualSort ->
getRecursiveQuery(filter, preferences) getRecursiveQuery(filter, preferences)

@ -1,14 +1,14 @@
package org.tasks.data package org.tasks.data
import org.tasks.data.sql.Field.Companion.field
import org.tasks.data.sql.Join
import org.tasks.data.sql.Query
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.PermaSql import com.todoroo.astrid.api.PermaSql
import com.todoroo.astrid.core.SortHelper import com.todoroo.astrid.core.SortHelper
import org.tasks.data.entity.Tag import org.tasks.data.entity.Tag
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import org.tasks.data.sql.Field.Companion.field
import org.tasks.data.sql.Join
import org.tasks.data.sql.Query
import org.tasks.filters.AstridOrderingFilter
import org.tasks.filters.Filter
import org.tasks.filters.RecentlyModifiedFilter import org.tasks.filters.RecentlyModifiedFilter
import org.tasks.preferences.QueryPreferences import org.tasks.preferences.QueryPreferences

@ -1,20 +1,20 @@
package org.tasks.data package org.tasks.data
import org.tasks.data.db.Table
import org.tasks.data.sql.Criterion
import org.tasks.data.sql.Field.Companion.field
import org.tasks.data.sql.Join
import org.tasks.data.sql.Query
import org.tasks.data.sql.QueryTemplate
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.PermaSql import com.todoroo.astrid.api.PermaSql
import com.todoroo.astrid.core.SortHelper import com.todoroo.astrid.core.SortHelper
import org.tasks.data.entity.Task
import org.tasks.data.dao.TaskDao.TaskCriteria.activeAndVisible import org.tasks.data.dao.TaskDao.TaskCriteria.activeAndVisible
import org.tasks.data.db.Table
import org.tasks.data.entity.CaldavTask import org.tasks.data.entity.CaldavTask
import org.tasks.data.entity.Tag import org.tasks.data.entity.Tag
import org.tasks.data.entity.Task
import org.tasks.data.sql.Criterion
import org.tasks.data.sql.Field.Companion.field
import org.tasks.data.sql.Join
import org.tasks.data.sql.Query
import org.tasks.data.sql.QueryTemplate
import org.tasks.filters.Filter
import org.tasks.preferences.QueryPreferences import org.tasks.preferences.QueryPreferences
internal object TaskListQueryRecursive { internal object TaskListQueryRecursive {

@ -7,10 +7,10 @@ import androidx.fragment.app.DialogFragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.fragment.app.setFragmentResult import androidx.fragment.app.setFragmentResult
import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LifecycleOwner
import com.todoroo.astrid.api.Filter
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R import org.tasks.R
import org.tasks.compose.pickers.FilterPicker import org.tasks.compose.pickers.FilterPicker
import org.tasks.filters.Filter
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint

@ -6,8 +6,6 @@ import android.content.Intent
import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
@ -20,6 +18,8 @@ import org.tasks.R
import org.tasks.billing.Inventory import org.tasks.billing.Inventory
import org.tasks.data.dao.CaldavDao import org.tasks.data.dao.CaldavDao
import org.tasks.dialogs.FilterPicker.Companion.EXTRA_LISTS_ONLY import org.tasks.dialogs.FilterPicker.Companion.EXTRA_LISTS_ONLY
import org.tasks.filters.Filter
import org.tasks.filters.FilterListItem
import org.tasks.filters.FilterProvider import org.tasks.filters.FilterProvider
import org.tasks.filters.NavigationDrawerSubheader import org.tasks.filters.NavigationDrawerSubheader
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences

@ -1,6 +1,5 @@
package org.tasks.filters package org.tasks.filters
import com.todoroo.astrid.api.Filter
import org.tasks.data.entity.TagData import org.tasks.data.entity.TagData
import java.util.* import java.util.*

@ -5,8 +5,6 @@ import android.content.Intent
import com.todoroo.astrid.activity.MainActivity import com.todoroo.astrid.activity.MainActivity
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.CustomFilter import com.todoroo.astrid.api.CustomFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import com.todoroo.astrid.core.BuiltInFilterExposer import com.todoroo.astrid.core.BuiltInFilterExposer
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.BuildConfig import org.tasks.BuildConfig

@ -2,8 +2,6 @@ package org.tasks.filters
import org.tasks.data.sql.Criterion import org.tasks.data.sql.Criterion
import org.tasks.data.sql.QueryTemplate import org.tasks.data.sql.QueryTemplate
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.api.FilterListItem
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.tasks.data.dao.TaskDao import org.tasks.data.dao.TaskDao

@ -1,7 +1,6 @@
package org.tasks.filters package org.tasks.filters
import android.content.Intent import android.content.Intent
import com.todoroo.astrid.api.FilterListItem
data class NavigationDrawerSubheader( data class NavigationDrawerSubheader(
val title: String?, val title: String?,

@ -2,8 +2,6 @@ package org.tasks.filters
import org.tasks.data.sql.Join import org.tasks.data.sql.Join
import org.tasks.data.sql.QueryTemplate import org.tasks.data.sql.QueryTemplate
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.tasks.R import org.tasks.R

@ -2,8 +2,6 @@ package org.tasks.filters
import android.content.Context import android.content.Context
import com.todoroo.andlib.utility.AndroidUtilities import com.todoroo.andlib.utility.AndroidUtilities
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.tasks.data.NO_COUNT import org.tasks.data.NO_COUNT
import org.tasks.data.dao.TaskDao.TaskCriteria.activeAndVisible import org.tasks.data.dao.TaskDao.TaskCriteria.activeAndVisible

@ -3,8 +3,6 @@ package org.tasks.filters
import org.tasks.data.sql.Criterion.Companion.and import org.tasks.data.sql.Criterion.Companion.and
import org.tasks.data.sql.Order.Companion.desc import org.tasks.data.sql.Order.Companion.desc
import org.tasks.data.sql.QueryTemplate import org.tasks.data.sql.QueryTemplate
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.tasks.themes.CustomIcons import org.tasks.themes.CustomIcons

@ -4,8 +4,6 @@ import org.tasks.data.sql.Criterion.Companion.and
import org.tasks.data.sql.Functions.now import org.tasks.data.sql.Functions.now
import org.tasks.data.sql.Join.Companion.inner import org.tasks.data.sql.Join.Companion.inner
import org.tasks.data.sql.QueryTemplate import org.tasks.data.sql.QueryTemplate
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.tasks.R import org.tasks.R

@ -1,7 +1,5 @@
package org.tasks.filters package org.tasks.filters
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import kotlinx.parcelize.IgnoredOnParcel import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.tasks.data.dao.TaskDao import org.tasks.data.dao.TaskDao

@ -2,8 +2,6 @@ package org.tasks.filters
import org.tasks.data.sql.Criterion import org.tasks.data.sql.Criterion
import org.tasks.data.sql.QueryTemplate import org.tasks.data.sql.QueryTemplate
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.tasks.R import org.tasks.R

@ -3,8 +3,6 @@ package org.tasks.filters
import org.tasks.data.sql.Criterion import org.tasks.data.sql.Criterion
import org.tasks.data.sql.QueryTemplate import org.tasks.data.sql.QueryTemplate
import com.todoroo.andlib.utility.AndroidUtilities import com.todoroo.andlib.utility.AndroidUtilities
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.api.FilterListItem
import com.todoroo.astrid.api.PermaSql import com.todoroo.astrid.api.PermaSql
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize

@ -1,55 +0,0 @@
package org.tasks.intents;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import androidx.annotation.Nullable;
import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.api.Filter;
import org.tasks.data.entity.Task;
public class TaskIntents {
public static final int FLAGS = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP;
public static Intent getNewTaskIntent(
Context context,
@Nullable Filter filter,
String createSource
) {
Intent intent = new Intent(context, MainActivity.class);
if (filter != null) {
intent.putExtra(MainActivity.OPEN_FILTER, filter);
}
intent.putExtra(MainActivity.CREATE_TASK, 0L);
intent.putExtra(MainActivity.CREATE_SOURCE, createSource);
intent.putExtra(MainActivity.REMOVE_TASK, true);
return intent;
}
public static Intent getEditTaskIntent(Context context, @Nullable Filter filter, Task task) {
Intent intent = new Intent(context, MainActivity.class);
if (filter != null) {
intent.putExtra(MainActivity.OPEN_FILTER, filter);
}
intent.putExtra(MainActivity.OPEN_TASK, task);
intent.putExtra(MainActivity.REMOVE_TASK, true);
return intent;
}
public static Intent getTaskListIntent(Context context, @Nullable Filter filter) {
Intent intent = new Intent(context, MainActivity.class);
intent.setFlags(FLAGS);
if (filter != null) {
intent.putExtra(MainActivity.OPEN_FILTER, filter);
}
return intent;
}
public static Intent getTaskListByIdIntent(Context context, @Nullable String filterId) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName(context, MainActivity.class));
intent.putExtra(MainActivity.LOAD_FILTER, filterId);
return intent;
}
}

@ -0,0 +1,53 @@
package org.tasks.intents
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import com.todoroo.astrid.activity.MainActivity
import org.tasks.data.entity.Task
import org.tasks.filters.Filter
object TaskIntents {
const val FLAGS: Int = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
fun getNewTaskIntent(
context: Context,
filter: Filter?,
createSource: String
): Intent {
val intent = Intent(context, MainActivity::class.java)
if (filter != null) {
intent.putExtra(MainActivity.OPEN_FILTER, filter)
}
intent.putExtra(MainActivity.CREATE_TASK, 0L)
intent.putExtra(MainActivity.CREATE_SOURCE, createSource)
intent.putExtra(MainActivity.REMOVE_TASK, true)
return intent
}
fun getEditTaskIntent(context: Context, filter: Filter?, task: Task?): Intent {
val intent = Intent(context, MainActivity::class.java)
if (filter != null) {
intent.putExtra(MainActivity.OPEN_FILTER, filter)
}
intent.putExtra(MainActivity.OPEN_TASK, task)
intent.putExtra(MainActivity.REMOVE_TASK, true)
return intent
}
fun getTaskListIntent(context: Context, filter: Filter?): Intent {
val intent = Intent(context, MainActivity::class.java)
intent.setFlags(FLAGS)
if (filter != null) {
intent.putExtra(MainActivity.OPEN_FILTER, filter)
}
return intent
}
fun getTaskListByIdIntent(context: Context, filterId: String?): Intent {
val intent = Intent(Intent.ACTION_MAIN)
intent.setComponent(ComponentName(context, MainActivity::class.java))
intent.putExtra(MainActivity.LOAD_FILTER, filterId)
return intent
}
}

@ -3,7 +3,6 @@ package org.tasks.preferences
import android.content.Context import android.content.Context
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.CustomFilter import com.todoroo.astrid.api.CustomFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.TagFilter import com.todoroo.astrid.api.TagFilter
import com.todoroo.astrid.core.BuiltInFilterExposer import com.todoroo.astrid.core.BuiltInFilterExposer
@ -12,17 +11,18 @@ import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import org.tasks.R import org.tasks.R
import org.tasks.Strings.isNullOrEmpty import org.tasks.Strings.isNullOrEmpty
import org.tasks.data.entity.CaldavCalendar.Companion.ACCESS_READ_ONLY import org.tasks.data.GoogleTask
import org.tasks.data.dao.CaldavDao import org.tasks.data.dao.CaldavDao
import org.tasks.data.entity.CaldavTask
import org.tasks.data.dao.FilterDao import org.tasks.data.dao.FilterDao
import org.tasks.data.GoogleTask
import org.tasks.data.dao.GoogleTaskDao import org.tasks.data.dao.GoogleTaskDao
import org.tasks.data.dao.GoogleTaskListDao import org.tasks.data.dao.GoogleTaskListDao
import org.tasks.data.dao.LocationDao import org.tasks.data.dao.LocationDao
import org.tasks.data.dao.TagDataDao import org.tasks.data.dao.TagDataDao
import org.tasks.data.entity.CaldavCalendar.Companion.ACCESS_READ_ONLY
import org.tasks.data.entity.CaldavTask
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import org.tasks.data.getLocalList import org.tasks.data.getLocalList
import org.tasks.filters.Filter
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject

@ -2,13 +2,13 @@ package org.tasks.preferences.fragments
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import com.todoroo.astrid.api.Filter
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R import org.tasks.R
import org.tasks.billing.Inventory import org.tasks.billing.Inventory
import org.tasks.billing.PurchaseActivity import org.tasks.billing.PurchaseActivity
import org.tasks.dialogs.FilterPicker.Companion.newFilterPicker import org.tasks.dialogs.FilterPicker.Companion.newFilterPicker
import org.tasks.dialogs.FilterPicker.Companion.setFilterPickerResultListener import org.tasks.dialogs.FilterPicker.Companion.setFilterPickerResultListener
import org.tasks.filters.Filter
import org.tasks.injection.InjectingPreferenceFragment import org.tasks.injection.InjectingPreferenceFragment
import org.tasks.locale.bundle.ListNotificationBundle import org.tasks.locale.bundle.ListNotificationBundle
import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.DefaultFilterProvider

@ -10,8 +10,6 @@ import androidx.preference.Preference
import androidx.preference.PreferenceCategory import androidx.preference.PreferenceCategory
import androidx.preference.SeekBarPreference import androidx.preference.SeekBarPreference
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.core.SortHelper.SORT_ALPHA import com.todoroo.astrid.core.SortHelper.SORT_ALPHA
import com.todoroo.astrid.core.SortHelper.SORT_CREATED import com.todoroo.astrid.core.SortHelper.SORT_CREATED
import com.todoroo.astrid.core.SortHelper.SORT_DUE import com.todoroo.astrid.core.SortHelper.SORT_DUE
@ -31,6 +29,8 @@ import org.tasks.dialogs.FilterPicker.Companion.newFilterPicker
import org.tasks.dialogs.FilterPicker.Companion.setFilterPickerResultListener import org.tasks.dialogs.FilterPicker.Companion.setFilterPickerResultListener
import org.tasks.dialogs.SortSettingsActivity import org.tasks.dialogs.SortSettingsActivity
import org.tasks.dialogs.ThemePickerDialog.Companion.newThemePickerDialog import org.tasks.dialogs.ThemePickerDialog.Companion.newThemePickerDialog
import org.tasks.filters.AstridOrderingFilter
import org.tasks.filters.Filter
import org.tasks.injection.InjectingPreferenceFragment import org.tasks.injection.InjectingPreferenceFragment
import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.DefaultFilterProvider
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences

@ -5,8 +5,8 @@ import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.todoroo.astrid.api.Filter
import org.tasks.R import org.tasks.R
import org.tasks.filters.Filter
class HeaderViewHolder( class HeaderViewHolder(
private val context: Context, private val context: Context,

@ -6,8 +6,8 @@ import androidx.recyclerview.widget.RecyclerView
import com.todoroo.astrid.activity.TaskListFragment import com.todoroo.astrid.activity.TaskListFragment
import com.todoroo.astrid.adapter.TaskAdapter import com.todoroo.astrid.adapter.TaskAdapter
import com.todoroo.astrid.adapter.TaskAdapterDataSource import com.todoroo.astrid.adapter.TaskAdapterDataSource
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.core.SortHelper import com.todoroo.astrid.core.SortHelper
import org.tasks.filters.AstridOrderingFilter
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
abstract class TaskListRecyclerAdapter internal constructor( abstract class TaskListRecyclerAdapter internal constructor(

@ -15,7 +15,6 @@ import androidx.compose.ui.unit.dp
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.todoroo.andlib.utility.DateUtilities import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.TagFilter import com.todoroo.astrid.api.TagFilter
import com.todoroo.astrid.core.SortHelper.SORT_DUE import com.todoroo.astrid.core.SortHelper.SORT_DUE
@ -34,6 +33,7 @@ import org.tasks.data.isOverdue
import org.tasks.databinding.TaskAdapterRowBinding import org.tasks.databinding.TaskAdapterRowBinding
import org.tasks.date.DateTimeUtils.newDateTime import org.tasks.date.DateTimeUtils.newDateTime
import org.tasks.dialogs.Linkify import org.tasks.dialogs.Linkify
import org.tasks.filters.Filter
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter
import org.tasks.markdown.Markdown import org.tasks.markdown.Markdown
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences

@ -10,7 +10,6 @@ import androidx.lifecycle.viewModelScope
import com.todoroo.astrid.activity.TaskEditFragment import com.todoroo.astrid.activity.TaskEditFragment
import com.todoroo.astrid.alarms.AlarmService import com.todoroo.astrid.alarms.AlarmService
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.gcal.GCalHelper import com.todoroo.astrid.gcal.GCalHelper
@ -60,6 +59,7 @@ import org.tasks.data.entity.UserActivity
import org.tasks.data.setPicture import org.tasks.data.setPicture
import org.tasks.date.DateTimeUtils.toDateTime import org.tasks.date.DateTimeUtils.toDateTime
import org.tasks.files.FileHelper import org.tasks.files.FileHelper
import org.tasks.filters.Filter
import org.tasks.location.GeofenceApi import org.tasks.location.GeofenceApi
import org.tasks.preferences.PermissionChecker import org.tasks.preferences.PermissionChecker
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences

@ -6,10 +6,7 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.api.EmptyFilter import com.todoroo.astrid.api.EmptyFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterImpl
import com.todoroo.astrid.api.SearchFilter import com.todoroo.astrid.api.SearchFilter
import com.todoroo.astrid.core.BuiltInFilterExposer import com.todoroo.astrid.core.BuiltInFilterExposer
import com.todoroo.astrid.service.TaskDeleter import com.todoroo.astrid.service.TaskDeleter
@ -37,6 +34,9 @@ import org.tasks.data.dao.TaskDao
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import org.tasks.data.fetchTasks import org.tasks.data.fetchTasks
import org.tasks.db.QueryUtils import org.tasks.db.QueryUtils
import org.tasks.filters.AstridOrderingFilter
import org.tasks.filters.Filter
import org.tasks.filters.FilterImpl
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import org.tasks.preferences.QueryPreferences import org.tasks.preferences.QueryPreferences
import org.tasks.tasklist.SectionedDataSource import org.tasks.tasklist.SectionedDataSource

@ -8,17 +8,17 @@ import androidx.core.content.pm.ShortcutInfoCompat
import androidx.core.content.pm.ShortcutManagerCompat import androidx.core.content.pm.ShortcutManagerCompat
import androidx.core.graphics.drawable.IconCompat import androidx.core.graphics.drawable.IconCompat
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
import com.todoroo.astrid.api.Filter
import org.tasks.data.UUIDHelper
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R import org.tasks.R
import org.tasks.Strings.isNullOrEmpty import org.tasks.Strings.isNullOrEmpty
import org.tasks.data.UUIDHelper
import org.tasks.databinding.ActivityWidgetShortcutLayoutBinding import org.tasks.databinding.ActivityWidgetShortcutLayoutBinding
import org.tasks.dialogs.ColorPalettePicker import org.tasks.dialogs.ColorPalettePicker
import org.tasks.dialogs.ColorPalettePicker.Companion.newColorPalette import org.tasks.dialogs.ColorPalettePicker.Companion.newColorPalette
import org.tasks.dialogs.ColorPickerAdapter.Palette import org.tasks.dialogs.ColorPickerAdapter.Palette
import org.tasks.dialogs.FilterPicker.Companion.newFilterPicker import org.tasks.dialogs.FilterPicker.Companion.newFilterPicker
import org.tasks.dialogs.FilterPicker.Companion.setFilterPickerResultListener import org.tasks.dialogs.FilterPicker.Companion.setFilterPickerResultListener
import org.tasks.filters.Filter
import org.tasks.injection.ThemedInjectingAppCompatActivity import org.tasks.injection.ThemedInjectingAppCompatActivity
import org.tasks.intents.TaskIntents import org.tasks.intents.TaskIntents
import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.DefaultFilterProvider

@ -10,7 +10,6 @@ import android.os.Bundle
import android.view.View import android.view.View
import android.widget.RemoteViews import android.widget.RemoteViews
import com.todoroo.andlib.utility.AndroidUtilities.atLeastS import com.todoroo.andlib.utility.AndroidUtilities.atLeastS
import com.todoroo.astrid.api.Filter
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
@ -19,6 +18,7 @@ import org.tasks.dialogs.FilterPicker
import org.tasks.extensions.setBackgroundColor import org.tasks.extensions.setBackgroundColor
import org.tasks.extensions.setColorFilter import org.tasks.extensions.setColorFilter
import org.tasks.extensions.setRipple import org.tasks.extensions.setRipple
import org.tasks.filters.Filter
import org.tasks.intents.TaskIntents import org.tasks.intents.TaskIntents
import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.DefaultFilterProvider
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences

@ -6,16 +6,14 @@ import android.view.View
import android.widget.RemoteViews import android.widget.RemoteViews
import android.widget.RemoteViewsService.RemoteViewsFactory import android.widget.RemoteViewsService.RemoteViewsFactory
import com.todoroo.andlib.utility.DateUtilities import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.api.AstridOrderingFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.core.SortHelper import com.todoroo.astrid.core.SortHelper
import com.todoroo.astrid.subtasks.SubtasksHelper import com.todoroo.astrid.subtasks.SubtasksHelper
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import org.tasks.BuildConfig import org.tasks.BuildConfig
import org.tasks.R import org.tasks.R
import org.tasks.data.TaskContainer import org.tasks.data.TaskContainer
import org.tasks.data.dao.TaskDao
import org.tasks.data.TaskListQuery.getQuery import org.tasks.data.TaskListQuery.getQuery
import org.tasks.data.dao.TaskDao
import org.tasks.data.hasNotes import org.tasks.data.hasNotes
import org.tasks.data.isHidden import org.tasks.data.isHidden
import org.tasks.data.isOverdue import org.tasks.data.isOverdue
@ -25,6 +23,8 @@ import org.tasks.extensions.setColorFilter
import org.tasks.extensions.setMaxLines import org.tasks.extensions.setMaxLines
import org.tasks.extensions.setTextSize import org.tasks.extensions.setTextSize
import org.tasks.extensions.strikethrough import org.tasks.extensions.strikethrough
import org.tasks.filters.AstridOrderingFilter
import org.tasks.filters.Filter
import org.tasks.markdown.Markdown import org.tasks.markdown.Markdown
import org.tasks.tasklist.HeaderFormatter import org.tasks.tasklist.HeaderFormatter
import org.tasks.tasklist.SectionedDataSource import org.tasks.tasklist.SectionedDataSource

@ -5,17 +5,17 @@ import android.widget.RemoteViews
import androidx.annotation.ColorInt import androidx.annotation.ColorInt
import com.todoroo.andlib.utility.DateUtilities import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.TagFilter import com.todoroo.astrid.api.TagFilter
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.BuildConfig import org.tasks.BuildConfig
import org.tasks.R import org.tasks.R
import org.tasks.data.entity.Task
import org.tasks.data.TaskContainer import org.tasks.data.TaskContainer
import org.tasks.data.entity.Task
import org.tasks.data.isHidden import org.tasks.data.isHidden
import org.tasks.date.DateTimeUtils.toDateTime import org.tasks.date.DateTimeUtils.toDateTime
import org.tasks.extensions.setColorFilter import org.tasks.extensions.setColorFilter
import org.tasks.filters.Filter
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter
import org.tasks.themes.CustomIcons import org.tasks.themes.CustomIcons
import org.tasks.time.DateTimeUtils.startOfDay import org.tasks.time.DateTimeUtils.startOfDay

@ -4,12 +4,12 @@ import android.appwidget.AppWidgetManager
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.todoroo.astrid.api.Filter
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import org.tasks.LocalBroadcastManager import org.tasks.LocalBroadcastManager
import org.tasks.dialogs.FilterPicker.Companion.EXTRA_FILTER import org.tasks.dialogs.FilterPicker.Companion.EXTRA_FILTER
import org.tasks.dialogs.FilterPicker.Companion.SELECT_FILTER import org.tasks.dialogs.FilterPicker.Companion.SELECT_FILTER
import org.tasks.dialogs.FilterPicker.Companion.newFilterPicker import org.tasks.dialogs.FilterPicker.Companion.newFilterPicker
import org.tasks.filters.Filter
import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.DefaultFilterProvider
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import timber.log.Timber import timber.log.Timber

@ -162,6 +162,7 @@ xpp3 = { module = "org.ogce:xpp3", version.ref = "xpp3" }
[plugins] [plugins]
android-application = { id = "com.android.application", version.ref = "agp" } android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" } android-library = { id = "com.android.library", version.ref = "agp" }
jetbrains-compose = { id = "org.jetbrains.compose", version = "1.6.10" }
kotlin-compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } kotlin-compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }

1
kmp/.gitignore vendored

@ -0,0 +1 @@
/build

@ -0,0 +1,46 @@
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.android.library)
alias(libs.plugins.jetbrains.compose)
alias(libs.plugins.kotlin.compose.compiler)
alias(libs.plugins.kotlin.parcelize)
}
kotlin {
applyDefaultHierarchyTemplate()
androidTarget {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_17)
freeCompilerArgs.addAll("-P", "plugin:org.jetbrains.kotlin.parcelize:additionalAnnotation=org.tasks.CommonParcelize")
}
}
sourceSets {
commonMain.dependencies {
implementation(projects.data)
}
}
}
android {
namespace = "org.tasks.kmp"
compileSdk = libs.versions.android.compileSdk.get().toInt()
defaultConfig {
minSdk = libs.versions.android.minSdk.get().toInt()
targetSdk = libs.versions.android.targetSdk.get().toInt()
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
dependencies {
debugImplementation(compose.uiTooling)
}
}

@ -1,11 +1,11 @@
package com.todoroo.astrid.api package org.tasks.filters
import android.os.Parcelable import org.tasks.CommonParcelable
import kotlinx.parcelize.Parcelize import org.tasks.CommonParcelize
import org.tasks.data.NO_COUNT import org.tasks.data.NO_COUNT
import org.tasks.data.NO_ORDER import org.tasks.data.NO_ORDER
interface Filter : FilterListItem, Parcelable { interface Filter : FilterListItem, CommonParcelable {
val valuesForNewTasks: String? val valuesForNewTasks: String?
get() = null get() = null
val sql: String? val sql: String?
@ -40,7 +40,7 @@ interface AstridOrderingFilter : Filter {
fun getSqlQuery(): String = filterOverride ?: sql!! fun getSqlQuery(): String = filterOverride ?: sql!!
} }
@Parcelize @CommonParcelize
data class FilterImpl( data class FilterImpl(
override val title: String? = null, override val title: String? = null,
override val sql: String? = null, override val sql: String? = null,

@ -0,0 +1,12 @@
package org.tasks.filters
interface FilterListItem {
val itemType: Type
fun areItemsTheSame(other: FilterListItem): Boolean
enum class Type {
ITEM,
SUBHEADER,
}
}

@ -42,3 +42,4 @@ dependencyResolutionManagement {
include("app") include("app")
include("data") include("data")
include(":kmp")

Loading…
Cancel
Save