start task now goes to timer selection screen

This commit is contained in:
lbarraga 2023-05-07 09:37:07 +02:00
parent 33b8a32330
commit 1eff33a6db
4 changed files with 22 additions and 6 deletions

View file

@ -32,6 +32,7 @@ fun TaskEntry(
task: Task, task: Task,
onCheckTask: (Boolean) -> Unit, onCheckTask: (Boolean) -> Unit,
onDeleteTask: () -> Unit, onDeleteTask: () -> Unit,
onStartTask: () -> Unit
) { ) {
Card( Card(
modifier = Modifier modifier = Modifier
@ -95,6 +96,7 @@ fun TaskEntry(
modifier = Modifier modifier = Modifier
.padding(end = 5.dp), .padding(end = 5.dp),
) { ) {
onStartTask()
} }
} }
} }
@ -110,7 +112,7 @@ fun TaskEntryPreview() {
name = "Test Task", name = "Test Task",
completed = false, completed = false,
), ),
{}, {}, {}, {}, {}
) )
} }
@ -122,7 +124,7 @@ fun CompletedTaskEntryPreview() {
name = "Test Task", name = "Test Task",
completed = true, completed = true,
), ),
{}, {}, {}, {}, {},
) )
} }
@ -134,6 +136,6 @@ fun OverflowTaskEntryPreview() {
name = "Test Taskkkkkkkkkkkkkkkkkkkkkkkkkkk", name = "Test Taskkkkkkkkkkkkkkkkkkkkkkkkkkk",
completed = false, completed = false,
), ),
{}, {}, {}, {}, {}
) )
} }

View file

@ -1,7 +1,9 @@
package be.ugent.sel.studeez.screens.session 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.SelectedTimerState
import be.ugent.sel.studeez.data.SessionReportState 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.data.local.models.timer_functional.FunctionalTimer
import be.ugent.sel.studeez.domain.LogService import be.ugent.sel.studeez.domain.LogService
import be.ugent.sel.studeez.navigation.StudeezDestinations import be.ugent.sel.studeez.navigation.StudeezDestinations
@ -13,17 +15,18 @@ import javax.inject.Inject
class SessionViewModel @Inject constructor( class SessionViewModel @Inject constructor(
private val selectedTimerState: SelectedTimerState, private val selectedTimerState: SelectedTimerState,
private val sessionReportState: SessionReportState, private val sessionReportState: SessionReportState,
private val selectedTask: SelectedTask,
logService: LogService logService: LogService
) : StudeezViewModel(logService) { ) : StudeezViewModel(logService) {
private val task : String = "No task selected" // placeholder for tasks implementation private val task : Task = selectedTask()
fun getTimer() : FunctionalTimer { fun getTimer() : FunctionalTimer {
return selectedTimerState.selectedTimer!! return selectedTimerState.selectedTimer!!
} }
fun getTask(): String { fun getTask(): String {
return task return task.name
} }
fun endSession(openAndPopUp: (String, String) -> Unit) { fun endSession(openAndPopUp: (String, String) -> Unit) {

View file

@ -30,6 +30,7 @@ data class TaskActions(
val deleteTask: (Task) -> Unit, val deleteTask: (Task) -> Unit,
val onCheckTask: (Task, Boolean) -> Unit, val onCheckTask: (Task, Boolean) -> Unit,
val editSubject: () -> Unit, val editSubject: () -> Unit,
val startTask: (Task) -> Unit
) )
fun getTaskActions(viewModel: TaskViewModel, open: (String) -> Unit): TaskActions { fun getTaskActions(viewModel: TaskViewModel, open: (String) -> Unit): TaskActions {
@ -39,7 +40,8 @@ fun getTaskActions(viewModel: TaskViewModel, open: (String) -> Unit): TaskAction
getSubject = viewModel::getSelectedSubject, getSubject = viewModel::getSelectedSubject,
deleteTask = viewModel::deleteTask, deleteTask = viewModel::deleteTask,
onCheckTask = { task, isChecked -> viewModel.toggleTaskCompleted(task, isChecked) }, 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, task = it,
onCheckTask = { isChecked -> taskActions.onCheckTask(it, isChecked) }, onCheckTask = { isChecked -> taskActions.onCheckTask(it, isChecked) },
onDeleteTask = { taskActions.deleteTask(it) }, onDeleteTask = { taskActions.deleteTask(it) },
onStartTask = { taskActions.startTask(it) }
) )
} }
} }
@ -108,6 +111,7 @@ fun TaskScreenPreview() {
{}, {},
{ _, _ -> run {} }, { _, _ -> run {} },
{}, {},
{}
) )
) )
} }

View file

@ -1,6 +1,7 @@
package be.ugent.sel.studeez.screens.tasks package be.ugent.sel.studeez.screens.tasks
import be.ugent.sel.studeez.data.SelectedSubject 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.Subject
import be.ugent.sel.studeez.data.local.models.task.Task import be.ugent.sel.studeez.data.local.models.task.Task
import be.ugent.sel.studeez.domain.LogService import be.ugent.sel.studeez.domain.LogService
@ -17,6 +18,7 @@ class TaskViewModel @Inject constructor(
private val taskDAO: TaskDAO, private val taskDAO: TaskDAO,
private val subjectDAO: SubjectDAO, private val subjectDAO: SubjectDAO,
private val selectedSubject: SelectedSubject, private val selectedSubject: SelectedSubject,
private val selectedTask: SelectedTask,
logService: LogService, logService: LogService,
) : StudeezViewModel(logService) { ) : StudeezViewModel(logService) {
fun addTask(open: (String) -> Unit) { fun addTask(open: (String) -> Unit) {
@ -47,4 +49,9 @@ class TaskViewModel @Inject constructor(
fun editSubject(open: (String) -> Unit) { fun editSubject(open: (String) -> Unit) {
open(StudeezDestinations.EDIT_SUBJECT_FORM) open(StudeezDestinations.EDIT_SUBJECT_FORM)
} }
fun startTask(task: Task, open: (String) -> Unit) {
selectedTask.set(task)
open(StudeezDestinations.TIMER_SELECTION_SCREEN)
}
} }