diff --git a/app/src/main/java/be/ugent/sel/studeez/StudeezApp.kt b/app/src/main/java/be/ugent/sel/studeez/StudeezApp.kt index 315c68d..e23e1fe 100644 --- a/app/src/main/java/be/ugent/sel/studeez/StudeezApp.kt +++ b/app/src/main/java/be/ugent/sel/studeez/StudeezApp.kt @@ -159,6 +159,7 @@ fun StudeezNavGraph( composable(StudeezDestinations.TASKS_SCREEN) { TaskRoute( goBack = goBack, + open = open, viewModel = hiltViewModel(), ) } diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FireBaseSubjectDAO.kt b/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FireBaseSubjectDAO.kt index 364bdfc..04b1351 100644 --- a/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FireBaseSubjectDAO.kt +++ b/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FireBaseSubjectDAO.kt @@ -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 = diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt index b35ecb1..bd8053b 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt @@ -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), ) } diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt index 9dc7f2c..06dce41 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt @@ -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> { return taskDAO.getTasks(selectedSubject()) } + + fun deleteSubject(open: (String) -> Unit) { + subjectDAO.deleteSubject(selectedSubject()) + open(StudeezDestinations.SUBJECT_SCREEN) + } + + fun getSelectedSubject(): Subject { + return selectedSubject() + } } \ No newline at end of file