#25 delete subject
This commit is contained in:
		
							parent
							
								
									056947e1db
								
							
						
					
					
						commit
						da4c51b726
					
				
					 4 changed files with 20 additions and 5 deletions
				
			
		|  | @ -159,6 +159,7 @@ fun StudeezNavGraph( | |||
|         composable(StudeezDestinations.TASKS_SCREEN) { | ||||
|             TaskRoute( | ||||
|                 goBack = goBack, | ||||
|                 open = open, | ||||
|                 viewModel = hiltViewModel(), | ||||
|             ) | ||||
|         } | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ class FireBaseSubjectDAO @Inject constructor( | |||
|     } | ||||
| 
 | ||||
|     override fun deleteSubject(oldSubject: Subject) { | ||||
|         TODO("Not yet implemented") | ||||
|         currentUserSubjectsCollection().document(oldSubject.id).delete() | ||||
|     } | ||||
| 
 | ||||
|     private fun currentUserSubjectsCollection(): CollectionReference = | ||||
|  |  | |||
|  | @ -34,23 +34,24 @@ data class TaskActions( | |||
|     val deleteSubject: () -> Unit, | ||||
| ) | ||||
| 
 | ||||
| fun getTaskActions(viewModel: TaskViewModel): TaskActions { | ||||
| fun getTaskActions(viewModel: TaskViewModel, open: (String) -> Unit): TaskActions { | ||||
|     return TaskActions( | ||||
|         addTask = viewModel::addTask, | ||||
|         getTasks = viewModel::getTasks, | ||||
|         getSubject = { Subject(name = "Test Subject") }, | ||||
|         deleteSubject = {}, | ||||
|         getSubject = viewModel::getSelectedSubject, | ||||
|         deleteSubject = { viewModel.deleteSubject(open) }, | ||||
|     ) | ||||
| } | ||||
| 
 | ||||
| @Composable | ||||
| fun TaskRoute( | ||||
|     goBack: () -> Unit, | ||||
|     open: (String) -> Unit, | ||||
|     viewModel: TaskViewModel, | ||||
| ) { | ||||
|     TaskScreen( | ||||
|         goBack = goBack, | ||||
|         taskActions = getTaskActions(viewModel = viewModel), | ||||
|         taskActions = getTaskActions(viewModel = viewModel, open = open), | ||||
|     ) | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,9 +1,12 @@ | |||
| package be.ugent.sel.studeez.screens.tasks | ||||
| 
 | ||||
| import be.ugent.sel.studeez.data.SelectedSubject | ||||
| 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 | ||||
| import be.ugent.sel.studeez.domain.SubjectDAO | ||||
| import be.ugent.sel.studeez.domain.TaskDAO | ||||
| import be.ugent.sel.studeez.navigation.StudeezDestinations | ||||
| import be.ugent.sel.studeez.screens.StudeezViewModel | ||||
| import dagger.hilt.android.lifecycle.HiltViewModel | ||||
| import kotlinx.coroutines.flow.Flow | ||||
|  | @ -12,6 +15,7 @@ import javax.inject.Inject | |||
| @HiltViewModel | ||||
| class TaskViewModel @Inject constructor( | ||||
|     private val taskDAO: TaskDAO, | ||||
|     private val subjectDAO: SubjectDAO, | ||||
|     private val selectedSubject: SelectedSubject, | ||||
|     logService: LogService, | ||||
| ) : StudeezViewModel(logService) { | ||||
|  | @ -22,4 +26,13 @@ class TaskViewModel @Inject constructor( | |||
|     fun getTasks(): Flow<List<Task>> { | ||||
|         return taskDAO.getTasks(selectedSubject()) | ||||
|     } | ||||
| 
 | ||||
|     fun deleteSubject(open: (String) -> Unit) { | ||||
|         subjectDAO.deleteSubject(selectedSubject()) | ||||
|         open(StudeezDestinations.SUBJECT_SCREEN) | ||||
|     } | ||||
| 
 | ||||
|     fun getSelectedSubject(): Subject { | ||||
|         return selectedSubject() | ||||
|     } | ||||
| } | ||||
		Reference in a new issue
	
	 brreynie
						brreynie