chore: re-pin floret-kit and pass allDay at the date call sites

Moves the kit pin from 5a576c4 to fc4ff6b — seventeen commits, spanning
releases 0.1.0 through 0.2.1: CustomAmountEditor, core-locale's
locale-aware date formatting, the CollapsingScaffold/FullScreenPicker
scrollable flag, SelectedCheck as a family primitive, picker-bar icon
theming, animateContentSizeMotion(), isoWeekNumber(), and the all-day UTC
fix that just landed.

The kit change is source-compatible — formatDate()'s new allDay parameter
defaults to false, so nothing broke — but that default is exactly what
keeps the bug alive, so the pin bump alone would have fixed nothing.
All-day tasks are stored as UTC midnight of their date; resolving them in
the device zone renders the previous day anywhere west of UTC. The three
bare formatDate() calls now pass the flag: the detail screen's date/range
line, the edit screen's date field, and the parent-picker rows. The
formatDateTime/formatDateTimeCompact sites already required it.

Verified with :app:testDebugUnitTest and :app:assembleDebug.
This commit is contained in:
2026-08-02 17:52:12 +02:00
parent 217d5d7afd
commit 9a00cc08f5
3 changed files with 12 additions and 8 deletions

View File

@@ -501,13 +501,17 @@ private fun taskWhenLines(task: Task): Pair<String, String?>? {
val due = task.due val due = task.due
return when { return when {
start != null && due != null -> { start != null && due != null -> {
val sameDay = start.formatDate() == due.formatDate() val allDay = task.isAllDay
val primary = if (sameDay) due.formatDate() else "${start.formatDate()} ${due.formatDate()}" val sameDay = start.formatDate(allDay) == due.formatDate(allDay)
val secondary = if (task.isAllDay) null else "${start.formatTime()} ${due.formatTime()}" val primary =
if (sameDay) due.formatDate(allDay)
else "${start.formatDate(allDay)} ${due.formatDate(allDay)}"
val secondary = if (allDay) null else "${start.formatTime()} ${due.formatTime()}"
primary to secondary primary to secondary
} }
due != null -> due.formatDate() to if (task.isAllDay) null else due.formatTime() due != null -> due.formatDate(task.isAllDay) to if (task.isAllDay) null else due.formatTime()
start != null -> start.formatDate() to if (task.isAllDay) null else start.formatTime() start != null ->
start.formatDate(task.isAllDay) to if (task.isAllDay) null else start.formatTime()
else -> null else -> null
} }
} }

View File

@@ -653,7 +653,7 @@ private fun ScheduleRow(
) )
} else { } else {
Text( Text(
text = value.formatDate(), text = value.formatDate(allDay),
style = MaterialTheme.typography.titleMedium, style = MaterialTheme.typography.titleMedium,
color = valueColor, color = valueColor,
modifier = Modifier.clickable(onClick = onPick).padding(vertical = 8.dp, horizontal = 6.dp), modifier = Modifier.clickable(onClick = onPick).padding(vertical = 8.dp, horizontal = 6.dp),
@@ -865,7 +865,7 @@ private fun ParentPickerSheet(
GroupedRow( GroupedRow(
title = task.title.ifBlank { stringResource(R.string.task_untitled) }, title = task.title.ifBlank { stringResource(R.string.task_untitled) },
position = positionOf(index, section.tasks.size), position = positionOf(index, section.tasks.size),
summary = task.due?.formatDate(), summary = task.due?.formatDate(task.isAllDay),
selected = task.taskId == selectedId, selected = task.taskId == selectedId,
minHeight = 56.dp, minHeight = 56.dp,
onClick = { choose(task.taskId) }, onClick = { choose(task.taskId) },