move TimerEntry to common.composable
This commit is contained in:
		
							parent
							
								
									08a33d1c9e
								
							
						
					
					
						commit
						d5b62e0cb9
					
				
					 3 changed files with 70 additions and 64 deletions
				
			
		|  | @ -0,0 +1,68 @@ | ||||||
|  | package be.ugent.sel.studeez.common.composable | ||||||
|  | 
 | ||||||
|  | import androidx.annotation.StringRes | ||||||
|  | import androidx.compose.foundation.layout.Arrangement | ||||||
|  | import androidx.compose.foundation.layout.Column | ||||||
|  | import androidx.compose.foundation.layout.Row | ||||||
|  | import androidx.compose.foundation.layout.fillMaxWidth | ||||||
|  | import androidx.compose.foundation.layout.padding | ||||||
|  | import androidx.compose.material.Text | ||||||
|  | import androidx.compose.runtime.Composable | ||||||
|  | import androidx.compose.ui.Alignment | ||||||
|  | import androidx.compose.ui.Modifier | ||||||
|  | import androidx.compose.ui.text.font.FontWeight | ||||||
|  | import androidx.compose.ui.tooling.preview.Preview | ||||||
|  | import androidx.compose.ui.unit.dp | ||||||
|  | import androidx.compose.ui.unit.sp | ||||||
|  | import be.ugent.sel.studeez.R | ||||||
|  | import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo | ||||||
|  | import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo | ||||||
|  | 
 | ||||||
|  | @Composable | ||||||
|  | fun TimerEntry( | ||||||
|  |     timerInfo: TimerInfo, | ||||||
|  |     showButton: Boolean, | ||||||
|  |     @StringRes buttonName: Int = -1, | ||||||
|  |     onButtonClick: (TimerInfo) -> Unit = {} | ||||||
|  | ) { | ||||||
|  |     Row( | ||||||
|  |         verticalAlignment = Alignment.CenterVertically, | ||||||
|  |         modifier = Modifier.fillMaxWidth(), | ||||||
|  |         horizontalArrangement = Arrangement.SpaceBetween | ||||||
|  |     ) { | ||||||
|  |         Column( | ||||||
|  |             Modifier.padding(horizontal = 10.dp) | ||||||
|  |         ) { | ||||||
|  |             Text( | ||||||
|  |                 text = timerInfo.name, fontWeight = FontWeight.Bold, fontSize = 20.sp | ||||||
|  |             ) | ||||||
|  |             Text( | ||||||
|  |                 text = timerInfo.description, fontWeight = FontWeight.Light, fontSize = 15.sp | ||||||
|  |             ) | ||||||
|  |         } | ||||||
|  |         if (showButton) { | ||||||
|  |             StealthButton(buttonName) { | ||||||
|  |                 onButtonClick(timerInfo) | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @Preview | ||||||
|  | @Composable | ||||||
|  | fun TimerEntryPreview() { | ||||||
|  |     val timerInfo = CustomTimerInfo( | ||||||
|  |         "my preview timer", "This is the description of the timer", 60 | ||||||
|  |     ) | ||||||
|  |     TimerEntry(timerInfo = timerInfo, true, buttonName = R.string.edit) { } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @Preview | ||||||
|  | @Composable | ||||||
|  | fun TimerDefaultEntryPreview() { | ||||||
|  |     val timerInfo = CustomTimerInfo( | ||||||
|  |         "my preview timer", "This is the description of the timer", 60 | ||||||
|  |     ) | ||||||
|  |     TimerEntry(timerInfo = timerInfo, false, buttonName = R.string.edit) { } | ||||||
|  | } | ||||||
|  | @ -1,27 +1,19 @@ | ||||||
| package be.ugent.sel.studeez.screens.timer_overview | package be.ugent.sel.studeez.screens.timer_overview | ||||||
| 
 | 
 | ||||||
| import androidx.annotation.StringRes |  | ||||||
| import androidx.compose.foundation.layout.Arrangement | import androidx.compose.foundation.layout.Arrangement | ||||||
| import androidx.compose.foundation.layout.Column | import androidx.compose.foundation.layout.Column | ||||||
| import androidx.compose.foundation.layout.Row |  | ||||||
| import androidx.compose.foundation.layout.fillMaxWidth |  | ||||||
| import androidx.compose.foundation.layout.padding |  | ||||||
| import androidx.compose.foundation.lazy.LazyColumn | import androidx.compose.foundation.lazy.LazyColumn | ||||||
| import androidx.compose.foundation.lazy.items | import androidx.compose.foundation.lazy.items | ||||||
| import androidx.compose.material.Text |  | ||||||
| import androidx.compose.runtime.Composable | import androidx.compose.runtime.Composable | ||||||
| import androidx.compose.runtime.collectAsState | import androidx.compose.runtime.collectAsState | ||||||
| import androidx.compose.ui.Alignment |  | ||||||
| import androidx.compose.ui.Modifier | import androidx.compose.ui.Modifier | ||||||
| import androidx.compose.ui.text.font.FontWeight |  | ||||||
| import androidx.compose.ui.tooling.preview.Preview | import androidx.compose.ui.tooling.preview.Preview | ||||||
| import androidx.compose.ui.unit.dp | import androidx.compose.ui.unit.dp | ||||||
| import androidx.compose.ui.unit.sp |  | ||||||
| import androidx.hilt.navigation.compose.hiltViewModel | import androidx.hilt.navigation.compose.hiltViewModel | ||||||
| import be.ugent.sel.studeez.R | import be.ugent.sel.studeez.R | ||||||
| import be.ugent.sel.studeez.common.composable.BasicButton | import be.ugent.sel.studeez.common.composable.BasicButton | ||||||
| import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate | import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate | ||||||
| import be.ugent.sel.studeez.common.composable.StealthButton | import be.ugent.sel.studeez.common.composable.TimerEntry | ||||||
| import be.ugent.sel.studeez.common.ext.basicButton | import be.ugent.sel.studeez.common.ext.basicButton | ||||||
| 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.TimerInfo | import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo | ||||||
|  | @ -100,63 +92,9 @@ fun TimerOverviewScreen( | ||||||
|                 // TODO |                 // TODO | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @Composable |  | ||||||
| fun TimerEntry( |  | ||||||
|     timerInfo: TimerInfo, |  | ||||||
|     showButton: Boolean, |  | ||||||
|     @StringRes buttonName: Int = -1, |  | ||||||
|     onButtonClick: (TimerInfo) -> Unit = {} |  | ||||||
| ) { |  | ||||||
|     Row( |  | ||||||
|         verticalAlignment = Alignment.CenterVertically, |  | ||||||
|         modifier = Modifier.fillMaxWidth(), |  | ||||||
|         horizontalArrangement = Arrangement.SpaceBetween |  | ||||||
|     ) { |  | ||||||
|         Column( |  | ||||||
|             Modifier.padding(horizontal = 10.dp) |  | ||||||
|         ) { |  | ||||||
|             Text( |  | ||||||
|                 text = timerInfo.name, |  | ||||||
|                 fontWeight = FontWeight.Bold, |  | ||||||
|                 fontSize = 20.sp |  | ||||||
|             ) |  | ||||||
|             Text( |  | ||||||
|                 text = timerInfo.description, |  | ||||||
|                 fontWeight = FontWeight.Light, |  | ||||||
|                 fontSize = 15.sp |  | ||||||
|             ) |  | ||||||
|         } |  | ||||||
|         if (showButton) { |  | ||||||
|             StealthButton(buttonName) { |  | ||||||
|                 onButtonClick(timerInfo) |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| @Preview |  | ||||||
| @Composable |  | ||||||
| fun TimerEntryPreview() { |  | ||||||
|     val timerInfo = CustomTimerInfo( |  | ||||||
|         "my preview timer", "This is the description of the timer", 60 |  | ||||||
|     ) |  | ||||||
|     TimerEntry(timerInfo = timerInfo, true, buttonName = R.string.edit) { } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| @Preview |  | ||||||
| @Composable |  | ||||||
| fun TimerDefaultEntryPreview() { |  | ||||||
|     val timerInfo = CustomTimerInfo( |  | ||||||
|         "my preview timer", "This is the description of the timer", 60 |  | ||||||
|     ) |  | ||||||
|     TimerEntry(timerInfo = timerInfo, false, buttonName = R.string.edit) { } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| @Preview | @Preview | ||||||
| @Composable | @Composable | ||||||
| fun TimerOverviewPreview() { | fun TimerOverviewPreview() { | ||||||
|  |  | ||||||
|  | @ -10,13 +10,13 @@ import androidx.compose.ui.unit.dp | ||||||
| import androidx.hilt.navigation.compose.hiltViewModel | import androidx.hilt.navigation.compose.hiltViewModel | ||||||
| import be.ugent.sel.studeez.R | import be.ugent.sel.studeez.R | ||||||
| import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate | import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate | ||||||
|  | import be.ugent.sel.studeez.common.composable.TimerEntry | ||||||
| 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.resources | import be.ugent.sel.studeez.resources | ||||||
| import be.ugent.sel.studeez.screens.drawer.DrawerActions | import be.ugent.sel.studeez.screens.drawer.DrawerActions | ||||||
| import be.ugent.sel.studeez.screens.drawer.getDrawerActions | import be.ugent.sel.studeez.screens.drawer.getDrawerActions | ||||||
| import be.ugent.sel.studeez.screens.navbar.NavigationBarActions | import be.ugent.sel.studeez.screens.navbar.NavigationBarActions | ||||||
| import be.ugent.sel.studeez.screens.navbar.getNavigationBarActions | import be.ugent.sel.studeez.screens.navbar.getNavigationBarActions | ||||||
| import be.ugent.sel.studeez.screens.timer_overview.TimerEntry |  | ||||||
| import kotlinx.coroutines.flow.Flow | import kotlinx.coroutines.flow.Flow | ||||||
| import kotlinx.coroutines.flow.flowOf | import kotlinx.coroutines.flow.flowOf | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Reference in a new issue
	
	 brreynie
						brreynie