diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/EventListWidgetAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/EventListWidgetAdapter.kt index 074356261..2b6a89c75 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/EventListWidgetAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/EventListWidgetAdapter.kt @@ -159,7 +159,14 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi context.eventsHelper.getEventsSync(fromTS, toTS, applyTypeFilter = true) { val listItems = ArrayList(it.size) val replaceDescription = context.config.replaceDescription - val sorted = it.sortedWith(compareBy({ it.startTS }, { it.endTS }, { it.title }, { if (replaceDescription) it.location else it.description })) + val sorted = it.sortedWith(compareBy({ + if (it.getIsAllDay()) { + Formatter.getDayStartTS(Formatter.getDayCodeFromTS(it.startTS)) + } else { + it.startTS + } + }, { it.endTS }, { it.title }, { if (replaceDescription) it.location else it.description })) + var prevCode = "" val now = getNowSeconds() val today = Formatter.getDayTitle(context, Formatter.getDayCodeFromTS(now)) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt index 2857454f1..30eea0abb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt @@ -399,7 +399,16 @@ fun Context.addDayEvents(day: DayMonthly, linearLayout: LinearLayout, res: Resou fun Context.getEventListItems(events: List): ArrayList { val listItems = ArrayList(events.size) val replaceDescription = config.replaceDescription - val sorted = events.sortedWith(compareBy({ it.startTS }, { it.endTS }, { it.title }, { if (replaceDescription) it.location else it.description })) + + // move all-day events in front of others + val sorted = events.sortedWith(compareBy({ + if (it.getIsAllDay()) { + Formatter.getDayStartTS(Formatter.getDayCodeFromTS(it.startTS)) + } else { + it.startTS + } + }, { it.endTS }, { it.title }, { if (replaceDescription) it.location else it.description })) + var prevCode = "" val now = getNowSeconds() val today = Formatter.getDayTitle(this, Formatter.getDayCodeFromTS(now))