Fix showing completed tasks in subtask filter

pull/2906/head
Alex Baker 3 weeks ago
parent 5ec02011f8
commit d6e0c0bdcf

@ -30,6 +30,7 @@ interface Filter : FilterListItem, Parcelable {
fun supportsHiddenTasks(): Boolean = true
fun supportsSubtasks(): Boolean = true
fun supportsSorting(): Boolean = true
fun disableHeaders(): Boolean = !supportsSorting()
}
@Deprecated("Use manual ordering")

@ -0,0 +1,34 @@
package org.tasks.filters
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
import org.tasks.data.dao.TaskDao
import org.tasks.data.entity.Task
import org.tasks.data.sql.Criterion
import org.tasks.data.sql.QueryTemplate
@Parcelize
data class SubtaskFilter(
private val parent: Long,
) : Filter {
@IgnoredOnParcel
override val title: String = "subtasks"
@IgnoredOnParcel
override val sql: String =
QueryTemplate()
.where(
Criterion.and(
TaskDao.TaskCriteria.activeAndVisible(),
Task.PARENT.eq(parent)
)
)
.toString()
override fun disableHeaders() = true
override fun areItemsTheSame(other: FilterListItem): Boolean =
other is SubtaskFilter && parent == other.parent
}

@ -9,12 +9,8 @@ import androidx.fragment.app.activityViewModels
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import com.google.android.material.composethemeadapter.MdcTheme
import org.tasks.data.sql.Criterion
import org.tasks.data.sql.QueryTemplate
import com.todoroo.astrid.activity.MainActivityViewModel
import com.todoroo.astrid.api.FilterImpl
import com.todoroo.astrid.dao.TaskDao
import org.tasks.data.entity.Task
import com.todoroo.astrid.service.TaskCompleter
import com.todoroo.astrid.service.TaskCreator
import dagger.hilt.android.AndroidEntryPoint
@ -23,7 +19,8 @@ import org.tasks.R
import org.tasks.compose.collectAsStateLifecycleAware
import org.tasks.compose.edit.SubtaskRow
import org.tasks.data.dao.GoogleTaskDao
import org.tasks.data.dao.TaskDao.TaskCriteria.activeAndVisible
import org.tasks.data.entity.Task
import org.tasks.filters.SubtaskFilter
import org.tasks.preferences.Preferences
import org.tasks.tasklist.SectionedDataSource
import org.tasks.themes.ColorProvider
@ -47,7 +44,7 @@ class SubtaskControlSet : TaskEditControlFragment() {
override fun createView(savedInstanceState: Bundle?) {
viewModel.task.takeIf { it.id > 0 }?.let {
listViewModel.setFilter(FilterImpl("subtasks", getQueryTemplate(it)))
listViewModel.setFilter(SubtaskFilter(it.id))
}
}
@ -112,13 +109,5 @@ class SubtaskControlSet : TaskEditControlFragment() {
companion object {
val TAG = R.string.TEA_ctrl_subtask_pref
private fun getQueryTemplate(task: Task): String = QueryTemplate()
.where(
Criterion.and(
activeAndVisible(),
Task.PARENT.eq(task.id)
)
)
.toString()
}
}

@ -30,11 +30,11 @@ import org.tasks.R
import org.tasks.analytics.Firebase
import org.tasks.billing.Inventory
import org.tasks.compose.throttleLatest
import org.tasks.data.dao.DeletionDao
import org.tasks.data.entity.Task
import org.tasks.data.TaskContainer
import org.tasks.data.dao.TaskDao
import org.tasks.data.TaskListQuery.getQuery
import org.tasks.data.dao.DeletionDao
import org.tasks.data.dao.TaskDao
import org.tasks.data.entity.Task
import org.tasks.data.fetchTasks
import org.tasks.db.QueryUtils
import org.tasks.preferences.Preferences
@ -156,7 +156,7 @@ class TaskListViewModel @Inject constructor(
tasks = TasksResults.Results(
SectionedDataSource(
tasks = tasks,
disableHeaders = !it.filter.supportsSorting()
disableHeaders = it.filter.disableHeaders()
|| (it.filter.supportsManualSort() && preferences.isManualSort)
|| (it.filter is AstridOrderingFilter && preferences.isAstridSort),
groupMode = preferences.groupMode,

Loading…
Cancel
Save