#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) { |         composable(StudeezDestinations.TASKS_SCREEN) { | ||||||
|             TaskRoute( |             TaskRoute( | ||||||
|                 goBack = goBack, |                 goBack = goBack, | ||||||
|  |                 open = open, | ||||||
|                 viewModel = hiltViewModel(), |                 viewModel = hiltViewModel(), | ||||||
|             ) |             ) | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ class FireBaseSubjectDAO @Inject constructor( | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     override fun deleteSubject(oldSubject: Subject) { |     override fun deleteSubject(oldSubject: Subject) { | ||||||
|         TODO("Not yet implemented") |         currentUserSubjectsCollection().document(oldSubject.id).delete() | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private fun currentUserSubjectsCollection(): CollectionReference = |     private fun currentUserSubjectsCollection(): CollectionReference = | ||||||
|  |  | ||||||
|  | @ -34,23 +34,24 @@ data class TaskActions( | ||||||
|     val deleteSubject: () -> Unit, |     val deleteSubject: () -> Unit, | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| fun getTaskActions(viewModel: TaskViewModel): TaskActions { | fun getTaskActions(viewModel: TaskViewModel, open: (String) -> Unit): TaskActions { | ||||||
|     return TaskActions( |     return TaskActions( | ||||||
|         addTask = viewModel::addTask, |         addTask = viewModel::addTask, | ||||||
|         getTasks = viewModel::getTasks, |         getTasks = viewModel::getTasks, | ||||||
|         getSubject = { Subject(name = "Test Subject") }, |         getSubject = viewModel::getSelectedSubject, | ||||||
|         deleteSubject = {}, |         deleteSubject = { viewModel.deleteSubject(open) }, | ||||||
|     ) |     ) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @Composable | @Composable | ||||||
| fun TaskRoute( | fun TaskRoute( | ||||||
|     goBack: () -> Unit, |     goBack: () -> Unit, | ||||||
|  |     open: (String) -> Unit, | ||||||
|     viewModel: TaskViewModel, |     viewModel: TaskViewModel, | ||||||
| ) { | ) { | ||||||
|     TaskScreen( |     TaskScreen( | ||||||
|         goBack = goBack, |         goBack = goBack, | ||||||
|         taskActions = getTaskActions(viewModel = viewModel), |         taskActions = getTaskActions(viewModel = viewModel, open = open), | ||||||
|     ) |     ) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,9 +1,12 @@ | ||||||
| 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.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 | ||||||
|  | import be.ugent.sel.studeez.domain.SubjectDAO | ||||||
| import be.ugent.sel.studeez.domain.TaskDAO | import be.ugent.sel.studeez.domain.TaskDAO | ||||||
|  | import be.ugent.sel.studeez.navigation.StudeezDestinations | ||||||
| import be.ugent.sel.studeez.screens.StudeezViewModel | import be.ugent.sel.studeez.screens.StudeezViewModel | ||||||
| import dagger.hilt.android.lifecycle.HiltViewModel | import dagger.hilt.android.lifecycle.HiltViewModel | ||||||
| import kotlinx.coroutines.flow.Flow | import kotlinx.coroutines.flow.Flow | ||||||
|  | @ -12,6 +15,7 @@ import javax.inject.Inject | ||||||
| @HiltViewModel | @HiltViewModel | ||||||
| class TaskViewModel @Inject constructor( | class TaskViewModel @Inject constructor( | ||||||
|     private val taskDAO: TaskDAO, |     private val taskDAO: TaskDAO, | ||||||
|  |     private val subjectDAO: SubjectDAO, | ||||||
|     private val selectedSubject: SelectedSubject, |     private val selectedSubject: SelectedSubject, | ||||||
|     logService: LogService, |     logService: LogService, | ||||||
| ) : StudeezViewModel(logService) { | ) : StudeezViewModel(logService) { | ||||||
|  | @ -22,4 +26,13 @@ class TaskViewModel @Inject constructor( | ||||||
|     fun getTasks(): Flow<List<Task>> { |     fun getTasks(): Flow<List<Task>> { | ||||||
|         return taskDAO.getTasks(selectedSubject()) |         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