#25 delete subject
This commit is contained in:
		
							parent
							
								
									056947e1db
								
							
						
					
					
						commit
						da4c51b726
					
				
					 4 changed files with 20 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -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