*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.CustomTimerInfo | ||||||
| import be.ugent.sel.studeez.data.local.models.timer_info.EndlessTimerInfo | 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.PomodoroTimerInfo | ||||||
| import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfoVisitor | 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_form.form_screens.AbstractTimerEditScreen | ||||||
| import be.ugent.sel.studeez.screens.timer_edit.editScreens.BreakTimerEditScreen | import be.ugent.sel.studeez.screens.timer_form.form_screens.BreakTimerEditScreen | ||||||
| import be.ugent.sel.studeez.screens.timer_edit.editScreens.CustomTimerEditScreen | import be.ugent.sel.studeez.screens.timer_form.form_screens.CustomTimerEditScreen | ||||||
| import be.ugent.sel.studeez.screens.timer_edit.editScreens.EndlessTimerEditScreen | import be.ugent.sel.studeez.screens.timer_form.form_screens.EndlessTimerEditScreen | ||||||
| 
 | 
 | ||||||
| class GetTimerEditScreen: TimerInfoVisitor<AbstractTimerEditScreen> { | 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.EditTimerState | ||||||
| import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo | 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.Arrangement | ||||||
| import androidx.compose.foundation.layout.Column | 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.data.local.models.timer_info.TimerInfo | ||||||
| import be.ugent.sel.studeez.R.string as AppText | import be.ugent.sel.studeez.R.string as AppText | ||||||
| 
 | 
 | ||||||
| abstract class AbstractTimerEditScreen(private val timerInfo: TimerInfo) { | abstract class AbstractTimerFormScreen(private val timerInfo: TimerInfo) { | ||||||
| 
 | 
 | ||||||
|     @Composable |     @Composable | ||||||
|     operator fun invoke(onSaveClick: (TimerInfo) -> Unit) { |     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.runtime.* | ||||||
| import androidx.compose.ui.text.input.KeyboardType | 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 | import be.ugent.sel.studeez.R.string as AppText | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class BreakTimerEditScreen( | class BreakTimerFormScreen( | ||||||
|     private val breakTimerInfo: PomodoroTimerInfo |     private val breakTimerInfo: PomodoroTimerInfo | ||||||
| ): AbstractTimerEditScreen(breakTimerInfo) { | ): AbstractTimerFormScreen(breakTimerInfo) { | ||||||
| 
 | 
 | ||||||
|     @Composable |     @Composable | ||||||
|     override fun ExtraFields() { |     override fun ExtraFields() { | ||||||
|  | @ -50,6 +50,6 @@ fun BreakEditScreenPreview() { | ||||||
|         5 |         5 | ||||||
|     ) |     ) | ||||||
|     StudeezTheme { |     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.runtime.* | ||||||
| import androidx.compose.ui.tooling.preview.Preview | 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.ui.theme.StudeezTheme | ||||||
| import be.ugent.sel.studeez.R.string as AppText | import be.ugent.sel.studeez.R.string as AppText | ||||||
| 
 | 
 | ||||||
| class CustomTimerEditScreen( | class CustomTimerFormScreen( | ||||||
|     private val customTimerInfo: CustomTimerInfo |     private val customTimerInfo: CustomTimerInfo | ||||||
|     ): AbstractTimerEditScreen(customTimerInfo) { |     ): AbstractTimerFormScreen(customTimerInfo) { | ||||||
| 
 | 
 | ||||||
|     @Composable |     @Composable | ||||||
|     override fun ExtraFields() { |     override fun ExtraFields() { | ||||||
|  | @ -29,6 +29,6 @@ class CustomTimerEditScreen( | ||||||
| fun CustomEditScreenPreview() { | fun CustomEditScreenPreview() { | ||||||
|     val customTimerInfo = CustomTimerInfo("custom", "my description", 25) |     val customTimerInfo = CustomTimerInfo("custom", "my description", 25) | ||||||
|     StudeezTheme { |     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.runtime.Composable | ||||||
| import androidx.compose.ui.tooling.preview.Preview | import androidx.compose.ui.tooling.preview.Preview | ||||||
| import be.ugent.sel.studeez.data.local.models.timer_info.EndlessTimerInfo | import be.ugent.sel.studeez.data.local.models.timer_info.EndlessTimerInfo | ||||||
| import be.ugent.sel.studeez.ui.theme.StudeezTheme | import be.ugent.sel.studeez.ui.theme.StudeezTheme | ||||||
| 
 | 
 | ||||||
| class EndlessTimerEditScreen( | class EndlessTimerFormScreen( | ||||||
|     endlessTimerInfo: EndlessTimerInfo |     endlessTimerInfo: EndlessTimerInfo | ||||||
| ): AbstractTimerEditScreen(endlessTimerInfo) { | ): AbstractTimerFormScreen(endlessTimerInfo) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @Preview | @Preview | ||||||
|  | @ -18,6 +18,6 @@ fun EndlessEditScreenPreview() { | ||||||
|         "My endless timer description", |         "My endless timer description", | ||||||
|     ) |     ) | ||||||
|     StudeezTheme { |     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.Column | ||||||
| import androidx.compose.foundation.layout.fillMaxWidth | 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.EditTimerState | ||||||
| import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo | import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo | ||||||
		Reference in a new issue
	
	 lbarraga
						lbarraga