Translate default lists

Change task list icon
Improve empty tasks and task lists screens
This commit is contained in:
Geoffroy Bonneville
2025-10-30 13:32:53 -04:00
parent a000eff8cc
commit d626a381ba
8 changed files with 51 additions and 17 deletions

View File

@@ -7,6 +7,7 @@ import androidx.room.RoomDatabase
import androidx.room.TypeConverters
import androidx.room.migration.Migration
import androidx.sqlite.db.SupportSQLiteDatabase
import com.wismna.geoffroy.donext.R
import com.wismna.geoffroy.donext.data.Converters
import com.wismna.geoffroy.donext.data.entities.TaskEntity
import com.wismna.geoffroy.donext.data.entities.TaskListEntity
@@ -137,10 +138,11 @@ abstract class AppDatabase : RoomDatabase() {
super.onCreate(db)
// insert default lists
CoroutineScope(Dispatchers.IO).launch {
val res = context.resources
val dao = DB_INSTANCE?.taskListDao()
dao?.insertTaskList(TaskListEntity(name = "Personal", order = 1))
dao?.insertTaskList(TaskListEntity(name = "Work", order = 2))
dao?.insertTaskList(TaskListEntity(name = "Shopping", order = 3))
dao?.insertTaskList(TaskListEntity(name = res.getString(R.string.sample_list_personal), order = 1))
dao?.insertTaskList(TaskListEntity(name = res.getString(R.string.sample_list_work), order = 2))
dao?.insertTaskList(TaskListEntity(name = res.getString(R.string.sample_list_shopping), order = 3))
}
}
})

View File

@@ -34,7 +34,7 @@ fun DueTodayTasksScreen(
modifier = modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
Column(modifier = Modifier.padding(start = 10.dp, end = 10.dp), horizontalAlignment = Alignment.CenterHorizontally) {
Icon(
Icons.Default.CalendarToday,
contentDescription = "Due today background icon",

View File

@@ -15,6 +15,7 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.foundation.lazy.rememberLazyListState
@@ -24,6 +25,7 @@ import androidx.compose.material.icons.filled.Close
import androidx.compose.material.icons.filled.Delete
import androidx.compose.material.icons.filled.DragHandle
import androidx.compose.material.icons.filled.Edit
import androidx.compose.material.icons.filled.EditNote
import androidx.compose.material3.Button
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
@@ -71,7 +73,14 @@ fun ManageListsScreen(
modifier = modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text(stringResource(R.string.tasklist_no_tasks))
Column (modifier = Modifier.padding(start = 10.dp, end = 10.dp), horizontalAlignment = Alignment.CenterHorizontally) {
Icon(
Icons.Default.EditNote,
contentDescription = "Due today background icon",
modifier = Modifier.size(60.dp),
tint = MaterialTheme.colorScheme.secondary)
Text(stringResource(R.string.tasklists_no_task_list), color = MaterialTheme.colorScheme.secondary)
}
}
return
}

View File

@@ -7,9 +7,9 @@ import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Checklist
import androidx.compose.material.icons.filled.Delete
import androidx.compose.material.icons.filled.EditNote
import androidx.compose.material.icons.filled.LineWeight
import androidx.compose.material.icons.filled.Today
import androidx.compose.material3.Badge
import androidx.compose.material3.HorizontalDivider
@@ -74,7 +74,7 @@ fun MenuScreen(
overflow = TextOverflow.Ellipsis
)
},
icon = { Icon(Icons.Default.LineWeight, contentDescription = list.name) },
icon = { Icon(Icons.Default.Checklist, contentDescription = list.name) },
selected = currentDestination is AppDestination.TaskList &&
currentDestination.taskListId == list.id,
onClick = { viewModel.navigateTo("taskList/${list.id}", currentDestination.route) },
@@ -90,13 +90,6 @@ fun MenuScreen(
Column {
HorizontalDivider()
NavigationDrawerItem(
label = { Text(stringResource(R.string.navigation_recycle_bin)) },
icon = { Icon(Icons.Default.Delete, contentDescription = stringResource(R.string.navigation_recycle_bin)) },
selected = currentDestination is AppDestination.RecycleBin,
onClick = { viewModel.navigateTo(AppDestination.RecycleBin.route, currentDestination.route) },
modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding)
)
NavigationDrawerItem(
label = { Text(stringResource(R.string.navigation_edit_lists)) },
icon = { Icon(Icons.Default.EditNote, contentDescription = stringResource(R.string.navigation_edit_lists)) },
@@ -104,6 +97,13 @@ fun MenuScreen(
onClick = { viewModel.navigateTo(AppDestination.ManageLists.route, currentDestination.route) },
modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding)
)
NavigationDrawerItem(
label = { Text(stringResource(R.string.navigation_recycle_bin)) },
icon = { Icon(Icons.Default.Delete, contentDescription = stringResource(R.string.navigation_recycle_bin)) },
selected = currentDestination is AppDestination.RecycleBin,
onClick = { viewModel.navigateTo(AppDestination.RecycleBin.route, currentDestination.route) },
modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding)
)
}
}
}

View File

@@ -48,7 +48,7 @@ fun RecycleBinScreen(
modifier = modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
Column(modifier = Modifier.padding(start = 10.dp, end = 10.dp), horizontalAlignment = Alignment.CenterHorizontally) {
Icon(
Icons.Default.DeleteOutline,
contentDescription = "Recycle bin background icon",

View File

@@ -2,13 +2,19 @@ package com.wismna.geoffroy.donext.presentation.screen
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Checklist
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
@@ -33,7 +39,14 @@ fun TaskListScreen(
modifier = modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text(stringResource(R.string.tasklist_no_tasks))
Column (modifier = Modifier.padding(start = 10.dp, end = 10.dp), horizontalAlignment = Alignment.CenterHorizontally) {
Icon(
Icons.Default.Checklist,
contentDescription = "Due today background icon",
modifier = Modifier.size(60.dp),
tint = MaterialTheme.colorScheme.secondary)
Text(stringResource(R.string.tasklist_no_tasks), color = MaterialTheme.colorScheme.secondary)
}
}
return
}

View File

@@ -4,7 +4,7 @@
<string name="navigation_recycle_bin">Corbeille</string>
<string name="navigation_due_today">À faire aujourd\'hui</string>
<string name="action_create_list">Créer une tâche</string>
<string name="tasklist_no_tasks">Cliquez sur + pour créer un nouvelle tâche.</string>
<string name="tasklist_no_tasks">Cliquez sur + pour créer une nouvelle tâche.</string>
<string name="recycle_bin_no_tasks">La corbeille est vide</string>
<string name="today_no_tasks">Rien à faire aujourd\'hui !</string>
<string name="task_title_new">Nouvelle tâche</string>
@@ -47,4 +47,8 @@
<string name="snackbar_message_task_list_recycle">Liste de tâches déplacée dans la corbeille.</string>
<string name="snackbar_message_task_restore">Tâche restaurée</string>
<string name="snackbar_action">Annuler</string>
<string name="sample_list_personal">Personnel</string>
<string name="sample_list_work">Travail</string>
<string name="sample_list_shopping">Shopping</string>
<string name="tasklists_no_task_list">Aucune liste de tâches. Cliquez sur + pour en créer une.</string>
</resources>

View File

@@ -50,6 +50,8 @@
<string name="dialog_empty_task_cancel">Cancel</string>
<string name="dialog_empty_task_delete">Empty</string>
<string name="tasklists_no_task_list">No task lists. Tap the + button to create one.</string>
<string name="tasklist_new_title">New list</string>
<string name="tasklist_new_name">Title</string>
<string name="tasklist_new_create">Create</string>
@@ -60,4 +62,8 @@
<string name="snackbar_message_task_list_recycle">Task list moved to recycle bin</string>
<string name="snackbar_message_task_restore">Task restored</string>
<string name="snackbar_action">Undo</string>
<string name="sample_list_personal">Personal</string>
<string name="sample_list_work">Work</string>
<string name="sample_list_shopping">Shopping</string>
</resources>