diff --git a/app/src/main/java/de/jeanlucmakiola/calendula/ui/agenda/AgendaScreen.kt b/app/src/main/java/de/jeanlucmakiola/calendula/ui/agenda/AgendaScreen.kt index b512f9d..697daf5 100644 --- a/app/src/main/java/de/jeanlucmakiola/calendula/ui/agenda/AgendaScreen.kt +++ b/app/src/main/java/de/jeanlucmakiola/calendula/ui/agenda/AgendaScreen.kt @@ -562,11 +562,10 @@ private fun agendaDayLabel(date: LocalDate, today: LocalDate): String { /** * Time line under the title: "09:00 – 10:00 · Location", "All day", etc. * - * A multi-day event shows only the part relevant to [day], with a "→" marking - * that it carries past this day's boundary: its first day shows the start - * ("14:00 →"), its last day the end ("→ 10:00"), and any whole day in between - * reads as an all-day span arriving from and continuing into its neighbours - * ("→ All day →"). + * A multi-day event shows only the part relevant to [day], spelled out so each + * day reads on its own: its first day names the start ("Starts 14:00"), its last + * day the end ("Ends 10:00"), and any whole day in between reads as "All day". + * An all-day multi-day event is simply "All day" on every day it covers. */ @Composable private fun agendaTimeSummary(event: EventInstance, day: LocalDate): String { @@ -575,18 +574,13 @@ private fun agendaTimeSummary(event: EventInstance, day: LocalDate): String { val locale = currentLocale() val time = if (event.spansMultipleDays(zone)) { - val continuesBefore = day > event.spanFirstDay(zone) - val continuesAfter = day < event.spanLastDay(zone) - val core = when { + val isFirstDay = day <= event.spanFirstDay(zone) + val isLastDay = day >= event.spanLastDay(zone) + when { event.isAllDay -> allDayLabel - !continuesBefore -> formatTime(event.start, is24Hour, locale) // the first day - !continuesAfter -> formatTime(event.end, is24Hour, locale) // the last day - else -> allDayLabel // a full middle day - } - buildString { - if (continuesBefore) append("→ ") - append(core) - if (continuesAfter) append(" →") + isFirstDay -> stringResource(R.string.agenda_span_starts, formatTime(event.start, is24Hour, locale)) + isLastDay -> stringResource(R.string.agenda_span_ends, formatTime(event.end, is24Hour, locale)) + else -> allDayLabel // a full middle day } } else if (event.isAllDay) { allDayLabel diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 06f995d..5c22fb3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -257,6 +257,9 @@ Tomorrow You\'re all caught up No more events today + + Starts %1$s + Ends %1$s Search