*EditScreen -> *FormScreen
This commit is contained in:
parent
165fe4ca86
commit
86c7a0e6a8
11 changed files with 90 additions and 125 deletions
|
@ -1,40 +0,0 @@
|
|||
package be.ugent.sel.studeez.screens.timer_add
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import be.ugent.sel.studeez.R
|
||||
import be.ugent.sel.studeez.common.composable.SecondaryScreenTemplate
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
||||
import be.ugent.sel.studeez.screens.timer_edit.GetTimerEditScreen
|
||||
import be.ugent.sel.studeez.screens.timer_edit.TimerEditViewModel
|
||||
|
||||
data class TimerEditActions(
|
||||
val getTimerInfo: () -> TimerInfo,
|
||||
val saveTimer: (TimerInfo) -> Unit
|
||||
)
|
||||
|
||||
fun getTimerAddActions(
|
||||
viewModel: TimerEditViewModel,
|
||||
goBack: () -> Unit
|
||||
): TimerEditActions {
|
||||
return TimerEditActions(
|
||||
getTimerInfo = viewModel::getTimerInfo,
|
||||
saveTimer = { timerInfo -> viewModel.saveTimer(timerInfo, goBack) }
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun TimerAddRoute(
|
||||
open: (String) -> Unit,
|
||||
popUp: () -> Unit,
|
||||
viewModel: TimerEditViewModel,
|
||||
) {
|
||||
|
||||
val timerEditActions = getTimerAddActions(viewModel, goBack = popUp)
|
||||
|
||||
SecondaryScreenTemplate(title = stringResource(id = R.string.edit_timer), popUp = popUp) {
|
||||
|
||||
val timerEditScreen = timerEditActions.getTimerInfo().accept(GetTimerEditScreen())
|
||||
timerEditScreen { timerEditActions.saveTimer(it) }
|
||||
}
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
package be.ugent.sel.studeez.screens.timer_edit
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import be.ugent.sel.studeez.common.composable.SecondaryScreenTemplate
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
||||
import be.ugent.sel.studeez.R.string as AppText
|
||||
|
||||
data class TimerEditActions(
|
||||
val getTimerInfo: () -> TimerInfo,
|
||||
val editTimer: (TimerInfo, () -> Unit) -> Unit
|
||||
)
|
||||
|
||||
fun getTimerEditActions(
|
||||
viewModel: TimerEditViewModel,
|
||||
open: (String) -> Unit
|
||||
): TimerEditActions {
|
||||
return TimerEditActions(
|
||||
getTimerInfo = viewModel::getTimerInfo,
|
||||
editTimer = viewModel::editTimer
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun TimerEditRoute(
|
||||
open: (String) -> Unit,
|
||||
popUp: () -> Unit,
|
||||
viewModel: TimerEditViewModel,
|
||||
) {
|
||||
|
||||
val timerEditActions = getTimerEditActions(viewModel, open)
|
||||
|
||||
SecondaryScreenTemplate(title = stringResource(id = AppText.edit_timer), popUp = popUp) {
|
||||
|
||||
val timerEditScreen = timerEditActions.getTimerInfo().accept(GetTimerEditScreen())
|
||||
timerEditScreen { timerInfo ->
|
||||
timerEditActions.editTimer(timerInfo, popUp)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
package be.ugent.sel.studeez.screens.timer_edit
|
||||
package be.ugent.sel.studeez.screens.timer_form.timer_edit
|
||||
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.EndlessTimerInfo
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.PomodoroTimerInfo
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfoVisitor
|
||||
import be.ugent.sel.studeez.screens.timer_edit.editScreens.AbstractTimerEditScreen
|
||||
import be.ugent.sel.studeez.screens.timer_edit.editScreens.BreakTimerEditScreen
|
||||
import be.ugent.sel.studeez.screens.timer_edit.editScreens.CustomTimerEditScreen
|
||||
import be.ugent.sel.studeez.screens.timer_edit.editScreens.EndlessTimerEditScreen
|
||||
import be.ugent.sel.studeez.screens.timer_form.form_screens.AbstractTimerEditScreen
|
||||
import be.ugent.sel.studeez.screens.timer_form.form_screens.BreakTimerEditScreen
|
||||
import be.ugent.sel.studeez.screens.timer_form.form_screens.CustomTimerEditScreen
|
||||
import be.ugent.sel.studeez.screens.timer_form.form_screens.EndlessTimerEditScreen
|
||||
|
||||
class GetTimerEditScreen: TimerInfoVisitor<AbstractTimerEditScreen> {
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
package be.ugent.sel.studeez.screens.timer_form.timer_edit
|
||||
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import be.ugent.sel.studeez.common.composable.SecondaryScreenTemplate
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
||||
import be.ugent.sel.studeez.screens.timer_form.GetTimerFormScreen
|
||||
import be.ugent.sel.studeez.screens.timer_form.TimerFormViewModel
|
||||
import java.util.Timer
|
||||
import be.ugent.sel.studeez.R.string as AppText
|
||||
|
||||
@Composable
|
||||
fun TimerAddRoute(
|
||||
popUp: () -> Unit,
|
||||
viewModel: TimerFormViewModel
|
||||
) {
|
||||
TimerFormScreen(popUp = popUp, getTimerInfo = viewModel::getTimerInfo, AppText.add_timer) {
|
||||
viewModel.saveTimer(it, goBack = popUp)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun TimerEditRoute(
|
||||
popUp: () -> Unit,
|
||||
viewModel: TimerFormViewModel
|
||||
) {
|
||||
TimerFormScreen(popUp = popUp, getTimerInfo = viewModel::getTimerInfo, AppText.edit_timer) {
|
||||
viewModel.editTimer(it, goBack = popUp)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun TimerFormScreen(
|
||||
popUp: () -> Unit,
|
||||
getTimerInfo: () -> TimerInfo,
|
||||
@StringRes label: Int,
|
||||
onConfirmClick: (TimerInfo) -> Unit
|
||||
) {
|
||||
val timerEditScreen = getTimerInfo().accept(GetTimerFormScreen())
|
||||
|
||||
SecondaryScreenTemplate(title = stringResource(id = label), popUp = popUp) {
|
||||
timerEditScreen(onConfirmClick)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package be.ugent.sel.studeez.screens.timer_edit
|
||||
package be.ugent.sel.studeez.screens.timer_form.timer_edit
|
||||
|
||||
import be.ugent.sel.studeez.data.EditTimerState
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
|
@ -1,4 +1,4 @@
|
|||
package be.ugent.sel.studeez.screens.timer_edit.editScreens
|
||||
package be.ugent.sel.studeez.screens.timer_form.form_screens
|
||||
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
|
@ -16,7 +16,7 @@ import be.ugent.sel.studeez.common.ext.basicButton
|
|||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
||||
import be.ugent.sel.studeez.R.string as AppText
|
||||
|
||||
abstract class AbstractTimerEditScreen(private val timerInfo: TimerInfo) {
|
||||
abstract class AbstractTimerFormScreen(private val timerInfo: TimerInfo) {
|
||||
|
||||
@Composable
|
||||
operator fun invoke(onSaveClick: (TimerInfo) -> Unit) {
|
|
@ -1,4 +1,4 @@
|
|||
package be.ugent.sel.studeez.screens.timer_edit.editScreens
|
||||
package be.ugent.sel.studeez.screens.timer_form.form_screens
|
||||
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
|
@ -11,9 +11,9 @@ import be.ugent.sel.studeez.ui.theme.StudeezTheme
|
|||
import be.ugent.sel.studeez.R.string as AppText
|
||||
|
||||
|
||||
class BreakTimerEditScreen(
|
||||
class BreakTimerFormScreen(
|
||||
private val breakTimerInfo: PomodoroTimerInfo
|
||||
): AbstractTimerEditScreen(breakTimerInfo) {
|
||||
): AbstractTimerFormScreen(breakTimerInfo) {
|
||||
|
||||
@Composable
|
||||
override fun ExtraFields() {
|
||||
|
@ -50,6 +50,6 @@ fun BreakEditScreenPreview() {
|
|||
5
|
||||
)
|
||||
StudeezTheme {
|
||||
BreakTimerEditScreen(pomodoroTimerInfo).invoke(onSaveClick = {})
|
||||
BreakTimerFormScreen(pomodoroTimerInfo).invoke(onSaveClick = {})
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package be.ugent.sel.studeez.screens.timer_edit.editScreens
|
||||
package be.ugent.sel.studeez.screens.timer_form.form_screens
|
||||
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
|
@ -7,9 +7,9 @@ import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo
|
|||
import be.ugent.sel.studeez.ui.theme.StudeezTheme
|
||||
import be.ugent.sel.studeez.R.string as AppText
|
||||
|
||||
class CustomTimerEditScreen(
|
||||
class CustomTimerFormScreen(
|
||||
private val customTimerInfo: CustomTimerInfo
|
||||
): AbstractTimerEditScreen(customTimerInfo) {
|
||||
): AbstractTimerFormScreen(customTimerInfo) {
|
||||
|
||||
@Composable
|
||||
override fun ExtraFields() {
|
||||
|
@ -29,6 +29,6 @@ class CustomTimerEditScreen(
|
|||
fun CustomEditScreenPreview() {
|
||||
val customTimerInfo = CustomTimerInfo("custom", "my description", 25)
|
||||
StudeezTheme {
|
||||
CustomTimerEditScreen(customTimerInfo).invoke(onSaveClick = {})
|
||||
CustomTimerFormScreen(customTimerInfo).invoke(onSaveClick = {})
|
||||
}
|
||||
}
|
|
@ -1,13 +1,13 @@
|
|||
package be.ugent.sel.studeez.screens.timer_edit.editScreens
|
||||
package be.ugent.sel.studeez.screens.timer_form.form_screens
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.EndlessTimerInfo
|
||||
import be.ugent.sel.studeez.ui.theme.StudeezTheme
|
||||
|
||||
class EndlessTimerEditScreen(
|
||||
class EndlessTimerFormScreen(
|
||||
endlessTimerInfo: EndlessTimerInfo
|
||||
): AbstractTimerEditScreen(endlessTimerInfo) {
|
||||
): AbstractTimerFormScreen(endlessTimerInfo) {
|
||||
}
|
||||
|
||||
@Preview
|
||||
|
@ -18,6 +18,6 @@ fun EndlessEditScreenPreview() {
|
|||
"My endless timer description",
|
||||
)
|
||||
StudeezTheme {
|
||||
EndlessTimerEditScreen(endlessTimerInfo).invoke(onSaveClick = {})
|
||||
EndlessTimerFormScreen(endlessTimerInfo).invoke(onSaveClick = {})
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package be.ugent.sel.studeez.screens.timer_add
|
||||
package be.ugent.sel.studeez.screens.timer_form.timer_add
|
||||
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
|
@ -1,4 +1,4 @@
|
|||
package be.ugent.sel.studeez.screens.timer_add
|
||||
package be.ugent.sel.studeez.screens.timer_form.timer_add
|
||||
|
||||
import be.ugent.sel.studeez.data.EditTimerState
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
Reference in a new issue