start task now goes to timer selection screen
This commit is contained in:
		
							parent
							
								
									33b8a32330
								
							
						
					
					
						commit
						1eff33a6db
					
				
					 4 changed files with 22 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -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) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 {} },
 | 
			
		||||
            {},
 | 
			
		||||
            {}
 | 
			
		||||
        )
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in a new issue