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