#22 style task entry
This commit is contained in:
		
							parent
							
								
									ffb67cd1b2
								
							
						
					
					
						commit
						b7a74a13d7
					
				
					 6 changed files with 143 additions and 3 deletions
				
			
		|  | @ -1,4 +1,4 @@ | |||
| package be.ugent.sel.studeez.common.composable | ||||
| package be.ugent.sel.studeez.common.composable.tasks | ||||
| 
 | ||||
| import androidx.compose.foundation.background | ||||
| import androidx.compose.foundation.layout.Arrangement | ||||
|  | @ -24,6 +24,7 @@ import androidx.compose.ui.text.style.TextOverflow | |||
| 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.StealthButton | ||||
| import be.ugent.sel.studeez.data.local.models.task.Subject | ||||
| import be.ugent.sel.studeez.data.local.models.timer_functional.HoursMinutesSeconds | ||||
| 
 | ||||
|  | @ -100,6 +101,7 @@ fun SubjectEntryPreview() { | |||
|     SubjectEntry( | ||||
|         subject = Subject( | ||||
|             name = "Test Subject", | ||||
| //            name = "Testttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt", | ||||
|             argb_color = 0xFFF44336, | ||||
|             time = 60 | ||||
|         ), | ||||
|  | @ -0,0 +1,135 @@ | |||
| package be.ugent.sel.studeez.common.composable.tasks | ||||
| 
 | ||||
| import androidx.compose.foundation.layout.Arrangement | ||||
| import androidx.compose.foundation.layout.Box | ||||
| import androidx.compose.foundation.layout.Row | ||||
| import androidx.compose.foundation.layout.fillMaxWidth | ||||
| import androidx.compose.foundation.layout.padding | ||||
| import androidx.compose.material.Card | ||||
| import androidx.compose.material.Checkbox | ||||
| import androidx.compose.material.CheckboxDefaults | ||||
| import androidx.compose.material.Icon | ||||
| import androidx.compose.material.IconButton | ||||
| import androidx.compose.material.MaterialTheme | ||||
| import androidx.compose.material.Text | ||||
| import androidx.compose.material.icons.Icons | ||||
| import androidx.compose.material.icons.filled.Delete | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.ui.Alignment | ||||
| import androidx.compose.ui.Modifier | ||||
| import androidx.compose.ui.graphics.Color | ||||
| import androidx.compose.ui.text.font.FontWeight | ||||
| import androidx.compose.ui.text.style.TextOverflow | ||||
| 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.StealthButton | ||||
| import be.ugent.sel.studeez.data.local.models.task.Task | ||||
| import be.ugent.sel.studeez.data.local.models.timer_functional.HoursMinutesSeconds | ||||
| import be.ugent.sel.studeez.resources | ||||
| 
 | ||||
| @Composable | ||||
| fun TaskEntry( | ||||
|     task: Task, | ||||
| ) { | ||||
|     Card( | ||||
|         modifier = Modifier | ||||
|             .fillMaxWidth() | ||||
|             .padding(horizontal = 10.dp, vertical = 5.dp), | ||||
|     ) { | ||||
|         val color = if (task.completed) Color.Gray else Color.Black | ||||
|         Row( | ||||
|             horizontalArrangement = Arrangement.SpaceBetween, | ||||
|             verticalAlignment = Alignment.CenterVertically, | ||||
|         ) { | ||||
|             Row( | ||||
|                 verticalAlignment = Alignment.CenterVertically, | ||||
|                 modifier = Modifier | ||||
|                     .padding(start = 10.dp) | ||||
|                     .weight(22f), | ||||
|             ) { | ||||
|                 Checkbox( | ||||
|                     checked = task.completed, | ||||
|                     onCheckedChange = {}, | ||||
|                     colors = CheckboxDefaults.colors( | ||||
|                         checkedColor = Color.Gray, | ||||
|                         uncheckedColor = MaterialTheme.colors.onSurface, | ||||
|                     ) | ||||
|                 ) | ||||
|                 Row( | ||||
|                     horizontalArrangement = Arrangement.SpaceBetween, | ||||
|                     verticalAlignment = Alignment.CenterVertically, | ||||
|                     modifier = Modifier.fillMaxWidth() | ||||
|                 ) { | ||||
|                     Text( | ||||
|                         text = task.name, | ||||
|                         overflow = TextOverflow.Ellipsis, | ||||
|                         maxLines = 1, | ||||
|                         color = color, | ||||
|                         modifier = Modifier.weight(13f), | ||||
|                     ) | ||||
|                     Text( | ||||
|                         text = "${HoursMinutesSeconds(task.time)}", | ||||
|                         color = color, | ||||
|                         modifier = Modifier.weight(5f) | ||||
|                     ) | ||||
| 
 | ||||
|                 } | ||||
|             } | ||||
|             Box(modifier = Modifier.weight(7f)) { | ||||
|                 if (task.completed) { | ||||
|                     IconButton( | ||||
|                         onClick = { /*TODO*/ }, | ||||
|                         modifier = Modifier | ||||
|                             .padding(start = 20.dp) | ||||
|                     ) { | ||||
|                         Icon( | ||||
|                             imageVector = Icons.Default.Delete, | ||||
|                             contentDescription = resources().getString(R.string.delete_task), | ||||
|                         ) | ||||
|                     } | ||||
|                 } else { | ||||
|                     StealthButton( | ||||
|                         text = R.string.start, | ||||
|                         modifier = Modifier | ||||
|                             .padding(end = 5.dp), | ||||
|                     ) { | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| @Preview | ||||
| @Composable | ||||
| fun TaskEntryPreview() { | ||||
|     TaskEntry( | ||||
|         task = Task( | ||||
|             name = "Test Task", | ||||
|             completed = false, | ||||
|         ), | ||||
|     ) | ||||
| } | ||||
| 
 | ||||
| @Preview | ||||
| @Composable | ||||
| fun CompletedTaskEntryPreview() { | ||||
|     TaskEntry( | ||||
|         task = Task( | ||||
|             name = "Test Task", | ||||
|             completed = true, | ||||
|         ) | ||||
|     ) | ||||
| } | ||||
| 
 | ||||
| @Preview | ||||
| @Composable | ||||
| fun OverflowTaskEntryPreview() { | ||||
|     TaskEntry( | ||||
|         task = Task( | ||||
|             name = "Test Taskkkkkkkkkkkkkkkkkkkkkkkkkkk", | ||||
|             completed = false, | ||||
|         ), | ||||
|     ) | ||||
| } | ||||
|  | @ -6,4 +6,5 @@ data class Task( | |||
|     @DocumentId val id: String = "", | ||||
|     val name: String = "", | ||||
|     val completed: Boolean = false, | ||||
|     val time: Int = 0, | ||||
| ) | ||||
|  |  | |||
|  | @ -19,6 +19,7 @@ import androidx.compose.ui.tooling.preview.Preview | |||
| import androidx.compose.ui.unit.dp | ||||
| import androidx.compose.ui.unit.sp | ||||
| import be.ugent.sel.studeez.data.local.models.timer_functional.FunctionalEndlessTimer | ||||
| import be.ugent.sel.studeez.data.local.models.timer_functional.HoursMinutesSeconds | ||||
| import be.ugent.sel.studeez.navigation.StudeezDestinations | ||||
| import be.ugent.sel.studeez.screens.session.SessionActions | ||||
| import kotlinx.coroutines.delay | ||||
|  | @ -93,7 +94,7 @@ abstract class AbstractSessionScreen { | |||
|         val hms = sessionActions.getTimer().getHoursMinutesSeconds() | ||||
|         Column { | ||||
|             Text( | ||||
|                 text = "${hms.hours} : ${hms.minutes} : ${hms.seconds}", | ||||
|                 text = hms.toString(), | ||||
|                 modifier = Modifier | ||||
|                     .fillMaxWidth() | ||||
|                     .padding(50.dp), | ||||
|  |  | |||
|  | @ -12,9 +12,9 @@ import androidx.compose.ui.unit.dp | |||
| import be.ugent.sel.studeez.R | ||||
| import be.ugent.sel.studeez.common.composable.NewTaskSubjectButton | ||||
| import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate | ||||
| import be.ugent.sel.studeez.common.composable.SubjectEntry | ||||
| import be.ugent.sel.studeez.common.composable.drawer.DrawerActions | ||||
| import be.ugent.sel.studeez.common.composable.navbar.NavigationBarActions | ||||
| import be.ugent.sel.studeez.common.composable.tasks.SubjectEntry | ||||
| import be.ugent.sel.studeez.data.local.models.task.Subject | ||||
| import be.ugent.sel.studeez.resources | ||||
| import kotlinx.coroutines.flow.Flow | ||||
|  |  | |||
|  | @ -47,6 +47,7 @@ | |||
|     <string name="view_task">View</string> | ||||
|     <string name="edit_task">Edit Task</string> | ||||
|     <string name="delete_subject">Delete Subject</string> | ||||
|     <string name="delete_task">Delete Task</string> | ||||
| 
 | ||||
|     <!-- Sessions --> | ||||
|     <string name="sessions">Sessions</string> | ||||
|  |  | |||
		Reference in a new issue
	
	 brreynie
						brreynie