From 1c254b68c04f7a802702b999556aaab7813468bf Mon Sep 17 00:00:00 2001 From: abdelrhman1002 Date: Mon, 30 Jun 2025 03:07:52 +0300 Subject: [PATCH 1/2] fix : when section empty remove all header and use padding top better than use anther component --- .../presentation/screens/home/HomeScreen.kt | 106 ++++++++---------- 1 file changed, 45 insertions(+), 61 deletions(-) diff --git a/app/src/main/java/com/london/tudee/presentation/screens/home/HomeScreen.kt b/app/src/main/java/com/london/tudee/presentation/screens/home/HomeScreen.kt index fe1ac9b4..47b165f5 100644 --- a/app/src/main/java/com/london/tudee/presentation/screens/home/HomeScreen.kt +++ b/app/src/main/java/com/london/tudee/presentation/screens/home/HomeScreen.kt @@ -50,7 +50,6 @@ import com.london.tudee.presentation.components.StatusCard import com.london.tudee.presentation.components.buttons.TudeeFloatingActionButton import com.london.tudee.presentation.components.date.DateBadge import com.london.tudee.presentation.components.date.DateBadgeStyleValues -import com.london.tudee.presentation.components.task.EmptyTasksScreen import com.london.tudee.presentation.components.task.TaskItem import com.london.tudee.presentation.design_system.theme.ThemePreviews import com.london.tudee.presentation.design_system.theme.TudeeTheme @@ -143,57 +142,50 @@ private fun HomeScreenContent( ) }" ) - if (state.allTasks.isEmpty()) { - EmptyTasksScreen() - } else { - InProgressSection( - inProgressTasks = state.inProgressTasks, - onInProgressTasksArrowClicked = onArrowClicked, - categoryIcons = taskUiState.categoryIcons, - onTaskClicked = interactions::showTaskDetailsBottomSheet, - loadTask = interactions::loadTask - ) - Spacer(Modifier.height(24.dp)) - ToDoSection( - toDoTasks = state.toDoTasks, - onTodoTasksArrowClicked = onArrowClicked, - categoryIcons = taskUiState.categoryIcons, - onTaskClicked = interactions::showTaskDetailsBottomSheet, - loadTask = interactions::loadTask - ) - Spacer(Modifier.height(24.dp)) - DoneSection( - doneTasks = state.doneTasks, - onDoneTasksArrowClicked = onArrowClicked, - categoryIcons = taskUiState.categoryIcons, - onTaskClicked = interactions::showTaskDetailsBottomSheet, - loadTask = interactions::loadTask - ) - } + + InProgressSection( + inProgressTasks = state.inProgressTasks, + onInProgressTasksArrowClicked = onArrowClicked, + categoryIcons = taskUiState.categoryIcons, + onTaskClicked = interactions::showTaskDetailsBottomSheet, + loadTask = interactions::loadTask + ) + + ToDoSection( + toDoTasks = state.toDoTasks, + onTodoTasksArrowClicked = onArrowClicked, + categoryIcons = taskUiState.categoryIcons, + onTaskClicked = interactions::showTaskDetailsBottomSheet, + loadTask = interactions::loadTask + ) + + DoneSection( + doneTasks = state.doneTasks, + onDoneTasksArrowClicked = onArrowClicked, + categoryIcons = taskUiState.categoryIcons, + onTaskClicked = interactions::showTaskDetailsBottomSheet, + loadTask = interactions::loadTask + ) } } - if (state.isTaskDetailsBottomSheetVisible) - TaskDetailsBottomSheet( - uiState = state.taskDetailBottomSheetUiState, - onDismissRequest = interactions::hideTaskDetailsBottomSheet, - onMoveClick = interactions::onClickMove, - onEditClick = { - interactions.hideTaskDetailsBottomSheet() - val taskId = state.taskDetailBottomSheetUiState.task.id - interactions.onEditTask(taskId) - } - ) + if (state.isTaskDetailsBottomSheetVisible) TaskDetailsBottomSheet( + uiState = state.taskDetailBottomSheetUiState, + onDismissRequest = interactions::hideTaskDetailsBottomSheet, + onMoveClick = interactions::onClickMove, + onEditClick = { + interactions.hideTaskDetailsBottomSheet() + val taskId = state.taskDetailBottomSheetUiState.task.id + interactions.onEditTask(taskId) + }) - if (taskUiState.showBottomSheet) - TaskModifyBottomSheet( - uiState = taskUiState, - interactions = interactions, - onShowDatePicker = interactions::showDatePicker, - onHideDatePicker = interactions::hideDatePicker, - onDismissRequest = { interactions.toggleBottomSheet(false) } - ) + if (taskUiState.showBottomSheet) TaskModifyBottomSheet( + uiState = taskUiState, + interactions = interactions, + onShowDatePicker = interactions::showDatePicker, + onHideDatePicker = interactions::hideDatePicker, + onDismissRequest = { interactions.toggleBottomSheet(false) }) Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.TopCenter @@ -356,10 +348,7 @@ private fun ToDoSection( onTaskClicked: () -> Unit, loadTask: (Task) -> Unit ) { - - if (toDoTasks.isNotEmpty() && categoryIcons.isEmpty()) { - return - } + if (toDoTasks.isEmpty() || categoryIcons.isEmpty()) return Row( horizontalArrangement = Arrangement.SpaceBetween, @@ -367,7 +356,7 @@ private fun ToDoSection( modifier = Modifier .fillMaxWidth() .padding(horizontal = 16.dp) - .padding(bottom = 8.dp) + .padding(bottom = 8.dp, top = 24.dp) ) { Text( text = stringResource(R.string.To_Do), @@ -446,10 +435,7 @@ private fun InProgressSection( onTaskClicked: () -> Unit, loadTask: (Task) -> Unit ) { - - if (inProgressTasks.isNotEmpty() && categoryIcons.isEmpty()) { - return - } + if (inProgressTasks.isEmpty() || categoryIcons.isEmpty()) return Row( horizontalArrangement = Arrangement.SpaceBetween, @@ -457,7 +443,7 @@ private fun InProgressSection( modifier = Modifier .fillMaxWidth() .padding(horizontal = 16.dp) - .padding(bottom = 8.dp) + .padding(bottom = 8.dp, top = 24.dp) ) { Text( text = stringResource(R.string.In_Progress), @@ -535,9 +521,7 @@ private fun DoneSection( loadTask: (Task) -> Unit ) { - if (doneTasks.isNotEmpty() && categoryIcons.isEmpty()) { - return - } + if (doneTasks.isEmpty() || categoryIcons.isEmpty()) return Row( horizontalArrangement = Arrangement.SpaceBetween, @@ -545,7 +529,7 @@ private fun DoneSection( modifier = Modifier .fillMaxWidth() .padding(horizontal = 16.dp) - .padding(bottom = 8.dp) + .padding(bottom = 8.dp, top = 24.dp) ) { Text( text = stringResource(R.string.Done), From 35c17a12073b49c0ddcdef7b9db7790d7140d867 Mon Sep 17 00:00:00 2001 From: abdelrhman1002 Date: Mon, 30 Jun 2025 03:10:53 +0300 Subject: [PATCH 2/2] fix : add cursor brush to be more clear in dark theme and set default date when create task --- .../com/london/tudee/presentation/components/TudeeTextField.kt | 2 ++ .../presentation/screens/task/task_modify/TaskModifyDetails.kt | 2 ++ 2 files changed, 4 insertions(+) diff --git a/app/src/main/java/com/london/tudee/presentation/components/TudeeTextField.kt b/app/src/main/java/com/london/tudee/presentation/components/TudeeTextField.kt index 205e6525..e4e0da4b 100644 --- a/app/src/main/java/com/london/tudee/presentation/components/TudeeTextField.kt +++ b/app/src/main/java/com/london/tudee/presentation/components/TudeeTextField.kt @@ -29,6 +29,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp @@ -125,6 +126,7 @@ fun TudeeTextField( .fillMaxWidth() .focusRequester(focusRequester) .padding(end = 12.dp), + cursorBrush = SolidColor(TudeeTheme.colors.primary) ) } if (readOnly && onClick != null) { diff --git a/app/src/main/java/com/london/tudee/presentation/screens/task/task_modify/TaskModifyDetails.kt b/app/src/main/java/com/london/tudee/presentation/screens/task/task_modify/TaskModifyDetails.kt index 2f749e3c..d3301073 100644 --- a/app/src/main/java/com/london/tudee/presentation/screens/task/task_modify/TaskModifyDetails.kt +++ b/app/src/main/java/com/london/tudee/presentation/screens/task/task_modify/TaskModifyDetails.kt @@ -68,6 +68,8 @@ fun TaskModifyDetails( .weight(1f, fill = false) .verticalScroll(rememberScrollState()) ) { + if(uiState.selectedDate == null) + interactions.updateDate( System.currentTimeMillis()) TaskDetailsContent( title = title, uiState = uiState,