From 535ef85c6d0a908388833929407df03eecdff245 Mon Sep 17 00:00:00 2001 From: Rune Dyselinck Date: Fri, 28 Apr 2023 11:42:03 +0200 Subject: [PATCH] LazyColumn in progress of being fixed --- .../add_timer/addTimerScreen.kt | 232 ++++++++++-------- 1 file changed, 124 insertions(+), 108 deletions(-) diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/addTimerScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/addTimerScreen.kt index 6941a05..772917d 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/addTimerScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/addTimerScreen.kt @@ -1,7 +1,6 @@ package be.ugent.sel.studeez.screens.timer_overview.add_timer import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth @@ -22,6 +21,7 @@ import be.ugent.sel.studeez.R import be.ugent.sel.studeez.common.composable.BasicButton import be.ugent.sel.studeez.common.composable.SecondaryScreenTemplate import be.ugent.sel.studeez.resources +import be.ugent.sel.studeez.ui.theme.StudeezTheme data class AddTimerActions( val goBack: () -> Unit, @@ -79,122 +79,137 @@ fun AddTimerScreen( title = resources().getString(R.string.add_timer), popUp = addTimerActions.goBack ) { - Column( + LazyColumn( modifier = Modifier .fillMaxWidth() .padding(16.dp) ) { - Row( - modifier = Modifier.fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.Center - ) { + item { + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center + ) { + Text( + text = "How long do you want to study?", + textAlign = TextAlign.Center + ) + } + } + item { Text( - text = "How long do you want to study?", - textAlign = TextAlign.Center + text = "${uiState.studyTimeHours.toInt()} hour${ if (uiState.studyTimeHours == 1f) "" else "s"}" ) } - - LazyColumn( - modifier = Modifier - .padding(16.dp) - ) { - item{ + item { + Slider( + value = uiState.studyTimeHours, + onValueChange = { + addTimerActions.onStudyTimeHoursChange(it) + }, + steps = 8, + valueRange = 1f..10f, + enabled = true + ) + } + item { + Text( + text = "${uiState.studyTimeMinutes.toInt()} minutes" + ) + } + item { + Slider( + value = uiState.studyTimeMinutes, + onValueChange = { + addTimerActions.onStudyTimeMinutesChange(it) + }, + steps = 11, + valueRange = 0f..60f, + enabled = true + ) + } + item { + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center + ) { Text( - text = "${uiState.studyTimeHours.toInt()} hour${ if (uiState.studyTimeHours == 1f) "" else "s"}" + text = "With breaks?", ) - Slider( - value = uiState.studyTimeHours, - onValueChange = { - addTimerActions.onStudyTimeHoursChange(it) - }, - steps = 8, - valueRange = 1f..10f, - enabled = true + Checkbox( + checked = uiState.withBreaks, + onCheckedChange = { addTimerActions.onWithBreaksChange(it) } ) - - Text( - text = "${uiState.studyTimeMinutes.toInt()} minutes" + } + } + item { + Text( + text = if (uiState.withBreaks) "breaks of ${uiState.breakTime.toInt()} minutes" else "", + ) + } + item { + Slider( + value = uiState.breakTime, + onValueChange = { + addTimerActions.onBreakTimeChange(it) + }, + steps = 11, + valueRange = 0f..60f, + enabled = uiState.withBreaks + ) + } + item { + Text( + text = if (uiState.withBreaks) "${uiState.repeats.toInt()} breaks" else "" + ) + } + item { + Slider( + value = uiState.repeats, + onValueChange = { + addTimerActions.onRepeatsChange(it) + }, + steps = 8, + valueRange = 1f..10f, + enabled = uiState.withBreaks + ) + } + item { + Text( + text = "Timer name" + ) + } + item { + TextField( + value = uiState.name, + onValueChange = { addTimerActions.onNameChange(it) } + ) + } + item { + Text( + text = "Timer description" + ) + } + item { + TextField( + value = uiState.description, + onValueChange = { addTimerActions.onDescriptionChange(it) } + ) + } + item { + Row( + modifier = Modifier + .fillMaxWidth() + .fillMaxHeight(), + verticalAlignment = Alignment.Bottom, + horizontalArrangement = Arrangement.Center + ) { + BasicButton( + text = R.string.add_timer, + modifier = Modifier, + onClick = addTimerActions.addTimer ) - Slider( - value = uiState.studyTimeMinutes, - onValueChange = { - addTimerActions.onStudyTimeMinutesChange(it) - }, - steps = 11, - valueRange = 0f..60f, - enabled = true - ) - - Row( - modifier = Modifier.fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.Center - ) { - Text( - text = "With breaks?", - ) - Checkbox( - checked = uiState.withBreaks, - onCheckedChange = { addTimerActions.onWithBreaksChange(it) } - ) - } - - Text( - text = if (uiState.withBreaks) "breaks of ${uiState.breakTime.toInt()} minutes" else "", - ) - Slider( - value = uiState.breakTime, - onValueChange = { - addTimerActions.onBreakTimeChange(it) - }, - steps = 11, - valueRange = 0f..60f, - enabled = uiState.withBreaks - ) - - Text( - text = if (uiState.withBreaks) "${uiState.repeats.toInt()} breaks" else "" - ) - Slider( - value = uiState.repeats, - onValueChange = { - addTimerActions.onRepeatsChange(it) - }, - steps = 8, - valueRange = 1f..10f, - enabled = uiState.withBreaks - ) - - Text( - text = "Timer name" - ) - TextField( - value = uiState.name, - onValueChange = { addTimerActions.onNameChange(it) } - ) - - Text( - text = "Timer description" - ) - TextField( - value = uiState.description, - onValueChange = { addTimerActions.onDescriptionChange(it) } - ) - - Row( - modifier = Modifier - .fillMaxWidth() - .fillMaxHeight(), - verticalAlignment = Alignment.Bottom, - horizontalArrangement = Arrangement.Center - ) { - BasicButton( - text = R.string.add_timer, - modifier = Modifier, - onClick = addTimerActions.addTimer - ) - } } } } @@ -203,9 +218,10 @@ fun AddTimerScreen( @Preview @Composable -fun AddTimerScreenPreview() { +fun AddTimerScreenPreview() { StudeezTheme { AddTimerScreen( addTimerActions = AddTimerActions({}, {}, {}, {}, {}, {}, {}, {}, {}), uiState = AddTimerUiState() - ) + ) + } } \ No newline at end of file