From 3db553da8571096bb4b18357f2c5251e8092e85a Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Tue, 23 Jun 2026 11:03:12 +0200 Subject: [PATCH] detail: always show the subtasks group so add is reachable Render the subtasks group on every task, not just ones that already have children, so the inline add field is available from the start. Hide the done/total count until there's at least one subtask. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../floret/ui/detail/TaskDetailScreen.kt | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/de/jeanlucmakiola/floret/ui/detail/TaskDetailScreen.kt b/app/src/main/java/de/jeanlucmakiola/floret/ui/detail/TaskDetailScreen.kt index 42eef41..c95dd43 100644 --- a/app/src/main/java/de/jeanlucmakiola/floret/ui/detail/TaskDetailScreen.kt +++ b/app/src/main/java/de/jeanlucmakiola/floret/ui/detail/TaskDetailScreen.kt @@ -266,18 +266,17 @@ private fun DetailBody( } // Subtasks — a genuine group: a connected grouped run whose first - // segment is the expand/collapse toggle. - if (detail.subtasks.isNotEmpty()) { - add { - SubtasksGroup( - subtasks = detail.subtasks, - expanded = subtasksExpanded, - onToggle = { subtasksExpanded = !subtasksExpanded }, - onToggleSubtask = onToggleSubtask, - onAddSubtask = onAddSubtask, - onOpenSubtask = onOpenSubtask, - ) - } + // segment is the expand/collapse toggle. Always shown (even with no + // subtasks yet) so the add field is reachable on any task. + add { + SubtasksGroup( + subtasks = detail.subtasks, + expanded = subtasksExpanded, + onToggle = { subtasksExpanded = !subtasksExpanded }, + onToggleSubtask = onToggleSubtask, + onAddSubtask = onAddSubtask, + onOpenSubtask = onOpenSubtask, + ) } } cards.forEachIndexed { index, card -> @@ -326,12 +325,15 @@ private fun SubtasksGroup( style = MaterialTheme.typography.titleMedium, modifier = Modifier.weight(1f), ) - Text( - text = "$done / ${subtasks.size}", - style = MaterialTheme.typography.labelLarge, - color = MaterialTheme.colorScheme.onSurfaceVariant, - ) - Spacer(Modifier.width(8.dp)) + // No count until there's something to count. + if (subtasks.isNotEmpty()) { + Text( + text = "$done / ${subtasks.size}", + style = MaterialTheme.typography.labelLarge, + color = MaterialTheme.colorScheme.onSurfaceVariant, + ) + Spacer(Modifier.width(8.dp)) + } Icon( imageVector = Icons.Rounded.ExpandMore, contentDescription = null,