From 1eff33a6db0c5d101f9d54d3046cf14e4e5bfb3e Mon Sep 17 00:00:00 2001 From: lbarraga Date: Sun, 7 May 2023 09:37:07 +0200 Subject: [PATCH] start task now goes to timer selection screen --- .../sel/studeez/common/composable/tasks/TaskEntry.kt | 8 +++++--- .../ugent/sel/studeez/screens/session/SessionViewModel.kt | 7 +++++-- .../java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt | 6 +++++- .../be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt | 7 +++++++ 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/tasks/TaskEntry.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/tasks/TaskEntry.kt index fefb924..bf3a7cf 100644 --- a/app/src/main/java/be/ugent/sel/studeez/common/composable/tasks/TaskEntry.kt +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/tasks/TaskEntry.kt @@ -32,6 +32,7 @@ fun TaskEntry( task: Task, onCheckTask: (Boolean) -> Unit, onDeleteTask: () -> Unit, + onStartTask: () -> Unit ) { Card( modifier = Modifier @@ -95,6 +96,7 @@ fun TaskEntry( modifier = Modifier .padding(end = 5.dp), ) { + onStartTask() } } } @@ -110,7 +112,7 @@ fun TaskEntryPreview() { name = "Test Task", completed = false, ), - {}, {}, + {}, {}, {} ) } @@ -122,7 +124,7 @@ fun CompletedTaskEntryPreview() { name = "Test Task", completed = true, ), - {}, {}, + {}, {}, {}, ) } @@ -134,6 +136,6 @@ fun OverflowTaskEntryPreview() { name = "Test Taskkkkkkkkkkkkkkkkkkkkkkkkkkk", completed = false, ), - {}, {}, + {}, {}, {} ) } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionViewModel.kt index d5e2bab..4b486fc 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionViewModel.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/session/SessionViewModel.kt @@ -1,7 +1,9 @@ package be.ugent.sel.studeez.screens.session +import be.ugent.sel.studeez.data.SelectedTask import be.ugent.sel.studeez.data.SelectedTimerState import be.ugent.sel.studeez.data.SessionReportState +import be.ugent.sel.studeez.data.local.models.task.Task import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalTimer import be.ugent.sel.studeez.domain.LogService import be.ugent.sel.studeez.navigation.StudeezDestinations @@ -13,17 +15,18 @@ import javax.inject.Inject class SessionViewModel @Inject constructor( private val selectedTimerState: SelectedTimerState, private val sessionReportState: SessionReportState, + private val selectedTask: SelectedTask, logService: LogService ) : StudeezViewModel(logService) { - private val task : String = "No task selected" // placeholder for tasks implementation + private val task : Task = selectedTask() fun getTimer() : FunctionalTimer { return selectedTimerState.selectedTimer!! } fun getTask(): String { - return task + return task.name } fun endSession(openAndPopUp: (String, String) -> Unit) { diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt index 67f0e93..8a35717 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt @@ -30,6 +30,7 @@ data class TaskActions( val deleteTask: (Task) -> Unit, val onCheckTask: (Task, Boolean) -> Unit, val editSubject: () -> Unit, + val startTask: (Task) -> Unit ) fun getTaskActions(viewModel: TaskViewModel, open: (String) -> Unit): TaskActions { @@ -39,7 +40,8 @@ fun getTaskActions(viewModel: TaskViewModel, open: (String) -> Unit): TaskAction getSubject = viewModel::getSelectedSubject, deleteTask = viewModel::deleteTask, onCheckTask = { task, isChecked -> viewModel.toggleTaskCompleted(task, isChecked) }, - editSubject = { viewModel.editSubject(open) } + editSubject = { viewModel.editSubject(open) }, + startTask = { task -> viewModel.startTask(task, open) } ) } @@ -75,6 +77,7 @@ fun TaskScreen( task = it, onCheckTask = { isChecked -> taskActions.onCheckTask(it, isChecked) }, onDeleteTask = { taskActions.deleteTask(it) }, + onStartTask = { taskActions.startTask(it) } ) } } @@ -108,6 +111,7 @@ fun TaskScreenPreview() { {}, { _, _ -> run {} }, {}, + {} ) ) } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt index 138d32c..37f1c91 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt @@ -1,6 +1,7 @@ package be.ugent.sel.studeez.screens.tasks import be.ugent.sel.studeez.data.SelectedSubject +import be.ugent.sel.studeez.data.SelectedTask import be.ugent.sel.studeez.data.local.models.task.Subject import be.ugent.sel.studeez.data.local.models.task.Task import be.ugent.sel.studeez.domain.LogService @@ -17,6 +18,7 @@ class TaskViewModel @Inject constructor( private val taskDAO: TaskDAO, private val subjectDAO: SubjectDAO, private val selectedSubject: SelectedSubject, + private val selectedTask: SelectedTask, logService: LogService, ) : StudeezViewModel(logService) { fun addTask(open: (String) -> Unit) { @@ -47,4 +49,9 @@ class TaskViewModel @Inject constructor( fun editSubject(open: (String) -> Unit) { open(StudeezDestinations.EDIT_SUBJECT_FORM) } + + fun startTask(task: Task, open: (String) -> Unit) { + selectedTask.set(task) + open(StudeezDestinations.TIMER_SELECTION_SCREEN) + } } \ No newline at end of file