Show groups even when subtasks are not used

pull/998/head
Alex Baker 6 years ago
parent 718f0fbe9a
commit 44312f04ca

@ -1,7 +1,7 @@
package org.tasks.data package org.tasks.data
import com.todoroo.andlib.data.Property.StringProperty import com.todoroo.andlib.data.Property.StringProperty
import com.todoroo.andlib.sql.Field import com.todoroo.andlib.sql.Field.field
import com.todoroo.andlib.sql.Join import com.todoroo.andlib.sql.Join
import com.todoroo.andlib.sql.Query import com.todoroo.andlib.sql.Query
import com.todoroo.astrid.activity.TaskListFragment import com.todoroo.astrid.activity.TaskListFragment
@ -12,7 +12,7 @@ import com.todoroo.astrid.data.Task
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
internal object TaskListQueryNonRecursive { internal object TaskListQueryNonRecursive {
private val JOIN_TAGS = Task.ID.eq(Field.field("${TaskListFragment.TAGS_METADATA_JOIN}.task")) private val JOIN_TAGS = Task.ID.eq(field("${TaskListFragment.TAGS_METADATA_JOIN}.task"))
private val JOINS = """ private val JOINS = """
${Join.left(Tag.TABLE.`as`(TaskListFragment.TAGS_METADATA_JOIN), JOIN_TAGS)} ${Join.left(Tag.TABLE.`as`(TaskListFragment.TAGS_METADATA_JOIN), JOIN_TAGS)}
${TaskListQuery.JOINS} ${TaskListQuery.JOINS}
@ -26,14 +26,16 @@ internal object TaskListQueryNonRecursive {
fun getNonRecursiveQuery(filter: Filter, preferences: Preferences): List<String> { fun getNonRecursiveQuery(filter: Filter, preferences: Preferences): List<String> {
val joinedQuery = JOINS + filter.getSqlQuery() val joinedQuery = JOINS + filter.getSqlQuery()
val query = SortHelper.adjustQueryForFlagsAndSort(preferences, joinedQuery, preferences.sortMode) val sortMode = preferences.sortMode
val sortGroup = field(SortHelper.getSortGroup(sortMode) ?: "NULL").`as`("sortGroup")
val query = SortHelper.adjustQueryForFlagsAndSort(preferences, joinedQuery, sortMode)
val groupedQuery = if (query.contains("ORDER BY")) { val groupedQuery = if (query.contains("ORDER BY")) {
query.replace("ORDER BY", "GROUP BY ${Task.ID} ORDER BY") query.replace("ORDER BY", "GROUP BY ${Task.ID} ORDER BY")
} else { } else {
"$query GROUP BY ${Task.ID}" "$query GROUP BY ${Task.ID}"
} }
return mutableListOf( return mutableListOf(
Query.select(*FIELDS) Query.select(*FIELDS.plus(sortGroup))
.withQueryTemplate(PermaSql.replacePlaceholdersForQuery(groupedQuery)) .withQueryTemplate(PermaSql.replacePlaceholdersForQuery(groupedQuery))
.from(Task.TABLE) .from(Task.TABLE)
.toString()) .toString())

@ -86,7 +86,7 @@ public class TaskListViewModel extends ViewModel implements Observer<PagedList<T
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe( .subscribe(
subtasks -> { subtasks -> {
if (manualSortFilter || (subtasks.usesSubtasks() && preferences.showSubtasks())) { if (manualSortFilter || preferences.showSubtasks()) {
performNonPagedQuery(subtasks); performNonPagedQuery(subtasks);
} else { } else {
performPagedListQuery(); performPagedListQuery();

Loading…
Cancel
Save