Remove manual sort adapters

remove_adapters
Alex Baker 8 months ago
parent d43639556e
commit b34c89eeec

@ -43,7 +43,7 @@ class CaldavManualSortTaskAdapterTest : InjectingTestCase() {
@Inject lateinit var localBroadcastManager: LocalBroadcastManager @Inject lateinit var localBroadcastManager: LocalBroadcastManager
@Inject lateinit var taskMover: TaskMover @Inject lateinit var taskMover: TaskMover
private lateinit var adapter: CaldavManualSortTaskAdapter private lateinit var adapter: TaskAdapter
private val tasks = ArrayList<TaskContainer>() private val tasks = ArrayList<TaskContainer>()
private val filter = CaldavFilter(CaldavCalendar(name = "calendar", uuid = "1234")) private val filter = CaldavFilter(CaldavCalendar(name = "calendar", uuid = "1234"))
private val dataSource = object : TaskAdapterDataSource { private val dataSource = object : TaskAdapterDataSource {
@ -58,7 +58,7 @@ class CaldavManualSortTaskAdapterTest : InjectingTestCase() {
preferences.clear() preferences.clear()
preferences.setBoolean(R.string.p_manual_sort, true) preferences.setBoolean(R.string.p_manual_sort, true)
tasks.clear() tasks.clear()
adapter = CaldavManualSortTaskAdapter(googleTaskDao, caldavDao, taskDao, localBroadcastManager, taskMover) adapter = TaskAdapter(false, googleTaskDao, caldavDao, taskDao, localBroadcastManager, taskMover)
adapter.setDataSource(dataSource) adapter.setDataSource(dataSource)
} }

@ -40,7 +40,7 @@ class GoogleTaskManualSortAdapterTest : InjectingTestCase() {
@Inject lateinit var localBroadcastManager: LocalBroadcastManager @Inject lateinit var localBroadcastManager: LocalBroadcastManager
@Inject lateinit var taskMover: TaskMover @Inject lateinit var taskMover: TaskMover
private lateinit var adapter: GoogleTaskManualSortAdapter private lateinit var adapter: TaskAdapter
private val tasks = ArrayList<TaskContainer>() private val tasks = ArrayList<TaskContainer>()
private val filter = GtasksFilter(newCaldavCalendar(with(CaldavCalendarMaker.UUID, "1234"))) private val filter = GtasksFilter(newCaldavCalendar(with(CaldavCalendarMaker.UUID, "1234")))
private val dataSource = object : TaskAdapterDataSource { private val dataSource = object : TaskAdapterDataSource {
@ -417,7 +417,7 @@ class GoogleTaskManualSortAdapterTest : InjectingTestCase() {
preferences.clear() preferences.clear()
preferences.setBoolean(R.string.p_manual_sort, true) preferences.setBoolean(R.string.p_manual_sort, true)
tasks.clear() tasks.clear()
adapter = GoogleTaskManualSortAdapter(googleTaskDao, caldavDao, taskDao, localBroadcastManager, taskMover) adapter = TaskAdapter(false, googleTaskDao, caldavDao, taskDao, localBroadcastManager, taskMover)
adapter.setDataSource(dataSource) adapter.setDataSource(dataSource)
} }

@ -1,20 +0,0 @@
package com.todoroo.astrid.adapter
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.service.TaskMover
import org.tasks.LocalBroadcastManager
import org.tasks.data.CaldavDao
import org.tasks.data.GoogleTaskDao
class CaldavManualSortTaskAdapter internal constructor(
googleTaskDao: GoogleTaskDao,
caldavDao: CaldavDao,
taskDao: TaskDao,
localBroadcastManager: LocalBroadcastManager,
taskMover: TaskMover,
) : TaskAdapter(false, googleTaskDao, caldavDao, taskDao, localBroadcastManager, taskMover) {
override suspend fun moved(from: Int, to: Int, indent: Int) {
moveCaldavTask(from, to, indent)
}
}

@ -1,20 +0,0 @@
package com.todoroo.astrid.adapter
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.service.TaskMover
import org.tasks.LocalBroadcastManager
import org.tasks.data.CaldavDao
import org.tasks.data.GoogleTaskDao
class GoogleTaskManualSortAdapter internal constructor(
googleTaskDao: GoogleTaskDao,
caldavDao: CaldavDao,
taskDao: TaskDao,
localBroadcastManager: LocalBroadcastManager,
taskMover: TaskMover,
) : TaskAdapter(false, googleTaskDao, caldavDao, taskDao, localBroadcastManager, taskMover) {
override suspend fun moved(from: Int, to: Int, indent: Int) {
moveGoogleTask(from, to, indent)
}
}

@ -137,30 +137,38 @@ open class TaskAdapter(
open suspend fun moved(from: Int, to: Int, indent: Int) { open suspend fun moved(from: Int, to: Int, indent: Int) {
val task = getTask(from) val task = getTask(from)
val newParent = findParent(indent, to) if (dataSource.sortMode == SORT_MANUAL) {
if ((newParent?.id ?: 0) == task.parent) { if (task.isGoogleTask) {
if (indent == 0) { moveGoogleTask(from, to, indent)
changeSortGroup(task, if (from < to) to - 1 else to) } else {
} else if (dataSource.subtaskSortMode == SORT_MANUAL) { moveCaldavTask(from, to, indent)
if (task.isGoogleTask) {
moveGoogleTask(from, to, indent)
} else {
moveCaldavTask(from, to, indent)
}
} }
return } else {
} else if (newParent != null) { val newParent = findParent(indent, to)
if (task.caldav != newParent.caldav) { if ((newParent?.id ?: 0) == task.parent) {
caldavDao.markDeleted(listOf(task.id)) if (indent == 0) {
changeSortGroup(task, if (from < to) to - 1 else to)
} else if (dataSource.subtaskSortMode == SORT_MANUAL) {
if (task.isGoogleTask) {
moveGoogleTask(from, to, indent)
} else {
moveCaldavTask(from, to, indent)
}
}
return
} else if (newParent != null) {
if (task.caldav != newParent.caldav) {
caldavDao.markDeleted(listOf(task.id))
}
} }
} when {
when { newParent == null -> {
newParent == null -> { moveToTopLevel(task)
moveToTopLevel(task) changeSortGroup(task, if (from < to) to - 1 else to)
changeSortGroup(task, if (from < to) to - 1 else to) }
newParent.isGoogleTask -> changeGoogleTaskParent(task, newParent)
newParent.isCaldavTask() -> changeCaldavParent(task, newParent)
} }
newParent.isGoogleTask -> changeGoogleTaskParent(task, newParent)
newParent.isCaldavTask() -> changeCaldavParent(task, newParent)
} }
} }

@ -1,9 +1,7 @@
package com.todoroo.astrid.adapter package com.todoroo.astrid.adapter
import android.content.Context import android.content.Context
import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.Filter import com.todoroo.astrid.api.Filter
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
@ -44,13 +42,14 @@ class TaskAdapterProvider @Inject constructor(
} }
} }
} }
if (filter.supportsManualSort() && preferences.isManualSort) { return TaskAdapter(
when (filter) { newTasksOnTop = if (filter.supportsManualSort() && preferences.isManualSort) false else preferences.addTasksToTop(),
is GtasksFilter -> return GoogleTaskManualSortAdapter(googleTaskDao, caldavDao, taskDao, localBroadcastManager, taskMover) googleTaskDao = googleTaskDao,
is CaldavFilter -> return CaldavManualSortTaskAdapter(googleTaskDao, caldavDao, taskDao, localBroadcastManager, taskMover) caldavDao = caldavDao,
} taskDao = taskDao,
} localBroadcastManager = localBroadcastManager,
return TaskAdapter(preferences.addTasksToTop(), googleTaskDao, caldavDao, taskDao, localBroadcastManager, taskMover) taskMover = taskMover
)
} }
private fun createManualTagTaskAdapter(filter: TagFilter): TaskAdapter = runBlocking { private fun createManualTagTaskAdapter(filter: TagFilter): TaskAdapter = runBlocking {

Loading…
Cancel
Save