Move TasksResults to kmp

pull/2948/head
Alex Baker 1 year ago
parent 4f2d676ae4
commit 8ac5d51308

@ -134,6 +134,7 @@ import org.tasks.tags.TagPickerActivity
import org.tasks.tasklist.DragAndDropRecyclerAdapter import org.tasks.tasklist.DragAndDropRecyclerAdapter
import org.tasks.tasklist.SectionedDataSource import org.tasks.tasklist.SectionedDataSource
import org.tasks.tasklist.TaskViewHolder import org.tasks.tasklist.TaskViewHolder
import org.tasks.tasklist.TasksResults
import org.tasks.tasklist.ViewHolderFactory import org.tasks.tasklist.ViewHolderFactory
import org.tasks.themes.ColorProvider import org.tasks.themes.ColorProvider
import org.tasks.themes.TasksTheme import org.tasks.themes.TasksTheme
@ -305,7 +306,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) { viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
listViewModel.updateBannerState() listViewModel.updateBannerState()
listViewModel.state.collect { listViewModel.state.collect {
if (it.tasks is TaskListViewModel.TasksResults.Results) { if (it.tasks is TasksResults.Results) {
submitList(it.tasks.tasks) submitList(it.tasks.tasks)
if (it.tasks.tasks.isEmpty()) { if (it.tasks.tasks.isEmpty()) {
swipeRefreshLayout.visibility = View.GONE swipeRefreshLayout.visibility = View.GONE

@ -45,9 +45,9 @@ import org.tasks.data.isHidden
import org.tasks.filters.Filter import org.tasks.filters.Filter
import org.tasks.filters.GtasksFilter import org.tasks.filters.GtasksFilter
import org.tasks.tasklist.SectionedDataSource import org.tasks.tasklist.SectionedDataSource
import org.tasks.tasklist.TasksResults
import org.tasks.tasklist.UiItem import org.tasks.tasklist.UiItem
import org.tasks.themes.TasksTheme import org.tasks.themes.TasksTheme
import org.tasks.ui.TaskListViewModel
@Composable @Composable
fun SubtaskRow( fun SubtaskRow(
@ -55,7 +55,7 @@ fun SubtaskRow(
filter: Filter?, filter: Filter?,
hasParent: Boolean, hasParent: Boolean,
desaturate: Boolean, desaturate: Boolean,
existingSubtasks: TaskListViewModel.TasksResults, existingSubtasks: TasksResults,
newSubtasks: List<Task>, newSubtasks: List<Task>,
openSubtask: (Task) -> Unit, openSubtask: (Task) -> Unit,
completeExistingSubtask: (Task, Boolean) -> Unit, completeExistingSubtask: (Task, Boolean) -> Unit,
@ -92,7 +92,7 @@ fun SubtaskRow(
) )
} else { } else {
Spacer(modifier = Modifier.height(height = 8.dp)) Spacer(modifier = Modifier.height(height = 8.dp))
if (existingSubtasks is TaskListViewModel.TasksResults.Results) { if (existingSubtasks is TasksResults.Results) {
existingSubtasks existingSubtasks
.tasks .tasks
.filterIsInstance<UiItem.Task>() .filterIsInstance<UiItem.Task>()
@ -245,7 +245,7 @@ fun NoSubtasks() {
filter = null, filter = null,
hasParent = false, hasParent = false,
desaturate = true, desaturate = true,
existingSubtasks = TaskListViewModel.TasksResults.Results(SectionedDataSource()), existingSubtasks = TasksResults.Results(SectionedDataSource()),
newSubtasks = emptyList(), newSubtasks = emptyList(),
openSubtask = {}, openSubtask = {},
completeExistingSubtask = { _, _ -> }, completeExistingSubtask = { _, _ -> },
@ -267,7 +267,7 @@ fun SubtasksPreview() {
filter = null, filter = null,
hasParent = false, hasParent = false,
desaturate = true, desaturate = true,
existingSubtasks = TaskListViewModel.TasksResults.Results( existingSubtasks = TasksResults.Results(
SectionedDataSource( SectionedDataSource(
tasks = listOf( tasks = listOf(
TaskContainer( TaskContainer(

@ -22,6 +22,7 @@ import org.tasks.data.entity.Task
import org.tasks.filters.SubtaskFilter import org.tasks.filters.SubtaskFilter
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import org.tasks.tasklist.SectionedDataSource import org.tasks.tasklist.SectionedDataSource
import org.tasks.tasklist.TasksResults
import org.tasks.themes.ColorProvider import org.tasks.themes.ColorProvider
import org.tasks.themes.TasksTheme import org.tasks.themes.TasksTheme
import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.time.DateTimeUtils2.currentTimeMillis
@ -59,7 +60,7 @@ class SubtaskControlSet : TaskEditControlFragment() {
hasParent = viewModel.hasParent, hasParent = viewModel.hasParent,
desaturate = preferences.desaturateDarkMode, desaturate = preferences.desaturateDarkMode,
existingSubtasks = if (viewModel.isNew) { existingSubtasks = if (viewModel.isNew) {
TaskListViewModel.TasksResults.Results(SectionedDataSource()) TasksResults.Results(SectionedDataSource())
} else { } else {
listViewModel.state.collectAsStateWithLifecycle().value.tasks listViewModel.state.collectAsStateWithLifecycle().value.tasks
}, },

@ -40,6 +40,7 @@ import org.tasks.filters.SearchFilter
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
import org.tasks.tasklist.TasksResults
import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.time.DateTimeUtils2.currentTimeMillis
import javax.inject.Inject import javax.inject.Inject
@ -56,10 +57,6 @@ class TaskListViewModel @Inject constructor(
private val firebase: Firebase, private val firebase: Firebase,
) : ViewModel() { ) : ViewModel() {
sealed interface TasksResults {
data object Loading : TasksResults
data class Results(val tasks: SectionedDataSource) : TasksResults
}
data class State( data class State(
val filter: Filter = EmptyFilter(), val filter: Filter = EmptyFilter(),

@ -0,0 +1,6 @@
package org.tasks.tasklist
sealed interface TasksResults {
data object Loading : TasksResults
data class Results(val tasks: SectionedDataSource) : TasksResults
}
Loading…
Cancel
Save