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
				
			
		|  | @ -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, | ||||||
|         ), |         ), | ||||||
|         {}, {}, |         {}, {}, {} | ||||||
|     ) |     ) | ||||||
| } | } | ||||||
|  | @ -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) { | ||||||
|  |  | ||||||
|  | @ -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 {} }, | ||||||
|             {}, |             {}, | ||||||
|  |             {} | ||||||
|         ) |         ) | ||||||
|     ) |     ) | ||||||
| } | } | ||||||
|  | @ -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) | ||||||
|  |     } | ||||||
| } | } | ||||||
		Reference in a new issue
	
	 lbarraga
						lbarraga