diff --git a/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.kt b/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.kt index 6662483e8..ad25c6eb0 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.kt +++ b/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.kt @@ -68,7 +68,7 @@ open class TaskAdapter( open fun getIndent(task: TaskContainer): Int = task.indent open fun canMove(source: TaskContainer, from: Int, target: TaskContainer, to: Int): Boolean { - if (target.isGoogleTask) { + if (target.isSingleLevelSubtask) { return if (!source.hasChildren() || to <= 0 || to >= count - 1) { true } else if (from < to) { @@ -91,7 +91,7 @@ open class TaskAdapter( open fun maxIndent(previousPosition: Int, task: TaskContainer): Int { val previous = getTask(previousPosition) - return if (previous.isGoogleTask) { + return if (previous.isSingleLevelSubtask) { if (task.hasChildren()) 0 else 1 } else { previous.indent + 1 @@ -104,7 +104,7 @@ open class TaskAdapter( return 0 } val next = getTask(it) - if (next.isGoogleTask) { + if (next.isSingleLevelSubtask) { return if (task.hasChildren() || !next.hasParent()) 0 else 1 } if (!taskIsChild(task, it)) { diff --git a/app/src/main/java/org/tasks/data/TaskContainer.kt b/app/src/main/java/org/tasks/data/TaskContainer.kt index 0fa7cd43a..cb9a54786 100644 --- a/app/src/main/java/org/tasks/data/TaskContainer.kt +++ b/app/src/main/java/org/tasks/data/TaskContainer.kt @@ -3,12 +3,14 @@ package org.tasks.data import androidx.room.ColumnInfo import androidx.room.Embedded import com.todoroo.astrid.data.Task +import org.tasks.data.CaldavAccount.Companion.TYPE_GOOGLE_TASKS +import org.tasks.data.CaldavAccount.Companion.TYPE_MICROSOFT data class TaskContainer( @Embedded val task: Task, @Embedded val caldavTask: CaldavTask? = null, @Embedded val location: Location? = null, - val isGoogleTask: Boolean = false, + val accountType: Int = CaldavAccount.TYPE_LOCAL, val parentComplete: Boolean = false, @ColumnInfo(name = "tags") val tagsString: String? = null, val children: Int = 0, @@ -18,6 +20,15 @@ data class TaskContainer( var indent: Int = 0, var targetIndent: Int = 0, ){ + val isGoogleTask: Boolean + get() = accountType == TYPE_GOOGLE_TASKS + + val isSingleLevelSubtask: Boolean + get() = when (accountType) { + TYPE_GOOGLE_TASKS, TYPE_MICROSOFT -> true + else -> false + } + val caldav: String? get() = caldavTask?.calendar diff --git a/app/src/main/java/org/tasks/data/TaskListQuery.kt b/app/src/main/java/org/tasks/data/TaskListQuery.kt index 7af887cc3..65c499b81 100644 --- a/app/src/main/java/org/tasks/data/TaskListQuery.kt +++ b/app/src/main/java/org/tasks/data/TaskListQuery.kt @@ -6,7 +6,6 @@ import com.todoroo.andlib.sql.Join import com.todoroo.astrid.activity.TaskListFragment import com.todoroo.astrid.api.Filter import com.todoroo.astrid.data.Task -import org.tasks.data.CaldavAccount.Companion.TYPE_GOOGLE_TASKS import org.tasks.data.TaskListQueryNonRecursive.getNonRecursiveQuery import org.tasks.data.TaskListQueryRecursive.getRecursiveQuery import org.tasks.preferences.QueryPreferences @@ -25,7 +24,7 @@ object TaskListQuery { val FIELDS = listOf( field("tasks.*"), field("${TaskListFragment.CALDAV_METADATA_JOIN}.*"), - field("CASE ${CaldavAccount.ACCOUNT_TYPE} WHEN $TYPE_GOOGLE_TASKS THEN 1 ELSE 0 END").`as`("isGoogleTask"), + field("${CaldavAccount.ACCOUNT_TYPE}").`as`("accountType"), field("geofences.*"), field("places.*"))