From 0b1ff3f02dfa8fed23ddd16fa42d48a83ebaf86f Mon Sep 17 00:00:00 2001 From: lbarraga Date: Fri, 5 May 2023 00:09:52 +0200 Subject: [PATCH] removed previous add screen --- .../add_timer/AddTimerUiState.kt | 12 - .../add_timer/AddTimerViewModel.kt | 91 ------ .../add_timer/addTimerScreen.kt | 274 ------------------ 3 files changed, 377 deletions(-) delete mode 100644 app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/AddTimerUiState.kt delete mode 100644 app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/AddTimerViewModel.kt delete mode 100644 app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/addTimerScreen.kt diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/AddTimerUiState.kt b/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/AddTimerUiState.kt deleted file mode 100644 index fcfa79a..0000000 --- a/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/AddTimerUiState.kt +++ /dev/null @@ -1,12 +0,0 @@ -package be.ugent.sel.studeez.screens.timer_overview.add_timer - -data class AddTimerUiState( - val studyTimeHours: Int = 1, - val studyTimeMinutes: Int = 0, - val withBreaks: Boolean = false, - val breakTimeMinutes: Int = 5, - val breakTimeHours: Int = 0, - val repeats: Int = 1, - val name: String = "Timer", - val description: String = "Long study session", -) \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/AddTimerViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/AddTimerViewModel.kt deleted file mode 100644 index d507974..0000000 --- a/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/AddTimerViewModel.kt +++ /dev/null @@ -1,91 +0,0 @@ -package be.ugent.sel.studeez.screens.timer_overview.add_timer - -import androidx.compose.runtime.mutableStateOf -import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo -import be.ugent.sel.studeez.data.local.models.timer_info.PomodoroTimerInfo -import be.ugent.sel.studeez.domain.LogService -import be.ugent.sel.studeez.domain.TimerDAO -import be.ugent.sel.studeez.screens.StudeezViewModel -import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject - -@HiltViewModel -class AddTimerViewModel @Inject constructor( - logService: LogService, - private val timerDAO: TimerDAO, -): StudeezViewModel(logService) { - var uiState = mutableStateOf(AddTimerUiState()) - private set - - private val studyTimeHours - get() = uiState.value.studyTimeHours - - private val studyTimeMinutes - get() = uiState.value.studyTimeMinutes - - private val breakTimeHours - get() = uiState.value.breakTimeHours - - private val breakTimeMinutes - get() = uiState.value.breakTimeMinutes - - private val repeats - get() = uiState.value.repeats - - private val name - get() = uiState.value.name - - private val description - get() = uiState.value.description - - fun onStudyTimeHoursChange(newValue: Int) { - uiState.value = uiState.value.copy(studyTimeHours = newValue) - - } - - fun onStudyTimeMinutesChange(newValue: Int) { - uiState.value = uiState.value.copy(studyTimeMinutes = newValue) - } - - fun onWithBreaksChange() { - uiState.value = uiState.value.copy(withBreaks = !uiState.value.withBreaks) - } - - fun onBreakTimeHourChange(newValue: Int) { - uiState.value = uiState.value.copy(breakTimeHours = newValue) - } - - fun onBreakTimeMinutesChange(newValue: Int) { - uiState.value = uiState.value.copy(breakTimeMinutes = newValue) - } - - fun onRepeatsChange(newValue: Int) { - uiState.value = uiState.value.copy(repeats = newValue) - } - - fun addTimer() { - if (uiState.value.withBreaks) { - timerDAO.saveTimer(PomodoroTimerInfo( - name = uiState.value.name, - description = uiState.value.description, - studyTime = studyTimeHours * 60 * 60 + studyTimeMinutes * 60, - breakTime = breakTimeHours * 60 * 60 + breakTimeMinutes * 60, - repeats = repeats - )) - } else { - timerDAO.saveTimer(CustomTimerInfo( - name = uiState.value.name, - description = uiState.value.description, - studyTime = studyTimeHours * 60 * 60 + studyTimeMinutes * 60 - )) - } - } - - fun onNameChange(newValue: String) { - uiState.value = uiState.value.copy(name = newValue) - } - - fun onDescriptionChange(newValue: String) { - uiState.value = uiState.value.copy(description = newValue) - } -} 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 deleted file mode 100644 index dc7bbda..0000000 --- a/app/src/main/java/be/ugent/sel/studeez/screens/timer_overview/add_timer/addTimerScreen.kt +++ /dev/null @@ -1,274 +0,0 @@ -package be.ugent.sel.studeez.screens.timer_overview.add_timer - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.material.Button -import androidx.compose.material.Checkbox -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -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.common.composable.navbar.BasicTimePicker -import be.ugent.sel.studeez.navigation.StudeezDestinations -import be.ugent.sel.studeez.resources -import be.ugent.sel.studeez.ui.theme.StudeezTheme - -data class AddTimerActions( - val open: (String) -> Unit, - val goBack: () -> Unit, - val onStudyTimeHoursChange: (Int) -> Unit, - val onStudyTimeMinutesChange: (Int) -> Unit, - val onBreakTimeHourChange: (Int) -> Unit, - val onBreakTimeMinutesChange: (Int) -> Unit, - val onRepeatsChange: (Int) -> Unit, - val onWithBreaksChange: () -> Unit, - val addTimer: () -> Unit, - val onNameChange: (String) -> Unit, - val onDescriptionChange: (String) -> Unit, -) - -fun getAddTimerActions( - open: (String) -> Unit, - goBack: () -> Unit, - viewModel: AddTimerViewModel, -): AddTimerActions { - return AddTimerActions( - open = open, - goBack = goBack, - onWithBreaksChange = viewModel::onWithBreaksChange, - onStudyTimeHoursChange = viewModel::onStudyTimeHoursChange, - onStudyTimeMinutesChange = viewModel::onStudyTimeMinutesChange, - onBreakTimeHourChange = viewModel::onBreakTimeHourChange, - onBreakTimeMinutesChange = viewModel::onBreakTimeMinutesChange, - onRepeatsChange = viewModel::onRepeatsChange, - addTimer = viewModel::addTimer, - onNameChange = viewModel::onNameChange, - onDescriptionChange = viewModel::onDescriptionChange - ) -} - -@Composable -fun AddTimerRoute( - open: (String) -> Unit, - goBack: () -> Unit, - viewModel: AddTimerViewModel, -) { - val uiState by viewModel.uiState - - AddTimerScreen( - addTimerActions = getAddTimerActions( - open = open, - goBack = goBack, - viewModel = viewModel, - ), - uiState = uiState - ) -} - -@Composable -fun AddTimerScreen( - addTimerActions: AddTimerActions, - uiState: AddTimerUiState, -) { - val mStudyTimePicker = BasicTimePicker( - onHoursChange = addTimerActions.onStudyTimeHoursChange, - onMinutesChange = addTimerActions.onStudyTimeMinutesChange, - Hours = uiState.studyTimeHours, - Minutes = uiState.studyTimeMinutes - ) - - val mBreakTimePicker = BasicTimePicker( - onHoursChange = addTimerActions.onBreakTimeHourChange, - onMinutesChange = addTimerActions.onBreakTimeMinutesChange, - Hours = uiState.breakTimeHours, - Minutes = uiState.breakTimeMinutes - ) - - SecondaryScreenTemplate( - title = resources().getString(R.string.add_timer), - popUp = addTimerActions.goBack - ) { - LazyColumn( - modifier = Modifier - .fillMaxWidth() - .padding(16.dp), - horizontalAlignment = Alignment.CenterHorizontally - ) { - item { - Row( - modifier = Modifier - .padding(16.dp) - ) { - Text( - text = stringResource(R.string.addTimer_question), - textAlign = TextAlign.Center - ) - } - } - - item { - Text( - text = uiState.studyTimeHours.toString() + stringResource(R.string.addTimer_studytime_1) + uiState.studyTimeMinutes + stringResource( - R.string.addTimer_studytime_2) - ) - } - - item { - Button( - onClick = { - mStudyTimePicker.show() - }, - ) { - Text( - text = stringResource(R.string.addTimer_timepicker), - ) - } - } - - item { - Row( - modifier = Modifier.fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.Center - ) { - Text( - text = stringResource(R.string.addTimer_break_question), - ) - Checkbox( - checked = uiState.withBreaks, - onCheckedChange = { addTimerActions.onWithBreaksChange() } - ) - } - } - - if (uiState.withBreaks) { - item { - Text( - text = if (uiState.repeats == 1) uiState.repeats.toString() + stringResource( - R.string.addTimer_break_1) - else uiState.repeats.toString() + stringResource( - R.string.addTimer_break_s) - ) - TextField( - value = uiState.repeats.toString(), - onValueChange = { it: String -> - it.toIntOrNull()?.let { it1 -> - addTimerActions.onRepeatsChange( - kotlin.math.abs(it1) - ) - } - } - ) - } - - item { - Text( - text = uiState.breakTimeHours.toString() + stringResource(R.string.breakTime_1) + uiState.breakTimeMinutes + stringResource( - R.string.breakTime_2) - ) - } - - item { - Button( - onClick = { - mBreakTimePicker.show() - }, - ) { - Text( - text = stringResource(R.string.addTimer_timepicker), - ) - } - } - } - - item { - Text( - text = stringResource(R.string.addTimer_name) - ) - } - - item { - TextField( - value = uiState.name, - onValueChange = { addTimerActions.onNameChange(it) } - ) - } - - item { - if (uiState.name == "") { - Text( - text = stringResource(R.string.addTimer_name_error), - color = Color.Red - ) - } - } - - item { - Text( - text = stringResource(R.string.addTimer_description) - ) - } - - item { - TextField( - value = uiState.description, - onValueChange = { addTimerActions.onDescriptionChange(it) } - ) - } - - item { - if (uiState.description == "") { - Text( - text = stringResource(R.string.addTimer_description_error), - color = Color.Red - ) - } - } - - item { - Row( - modifier = Modifier - .fillMaxWidth() - .fillMaxHeight(), - verticalAlignment = Alignment.Bottom, - horizontalArrangement = Arrangement.Center - ) { - BasicButton( - text = R.string.add_timer, - modifier = Modifier, - onClick = { - if (uiState.description != "" && uiState.name != "") { - addTimerActions.addTimer() - addTimerActions.open(StudeezDestinations.TIMER_SCREEN) - } - } - ) - } - } - } - } -} - -@Preview -@Composable -fun AddTimerScreenPreview() { StudeezTheme { - AddTimerScreen( - addTimerActions = AddTimerActions({}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}), - uiState = AddTimerUiState() - ) - } -}