mirror of
				https://github.com/SimpleMobileTools/Simple-Calendar.git
				synced 2025-06-05 21:59:17 +02:00 
			
		
		
		
	Properly handle events spanning midnight
This commit is contained in:
		| @@ -741,6 +741,7 @@ class WeekFragment : Fragment(), WeeklyCalendar { | |||||||
|             val firstDayIndex = startDateTimeInWeek.dayOfMonth // indices must be unique for the visible range (2 weeks) |             val firstDayIndex = startDateTimeInWeek.dayOfMonth // indices must be unique for the visible range (2 weeks) | ||||||
|             val lastDayIndex = firstDayIndex + daysCnt |             val lastDayIndex = firstDayIndex + daysCnt | ||||||
|             val dayIndices = firstDayIndex..lastDayIndex |             val dayIndices = firstDayIndex..lastDayIndex | ||||||
|  |             val isSameDayEvent = firstDayIndex == lastDayIndex | ||||||
|  |  | ||||||
|             var doesEventFit: Boolean |             var doesEventFit: Boolean | ||||||
|             var wasEventHandled = false |             var wasEventHandled = false | ||||||
| @@ -753,19 +754,23 @@ class WeekFragment : Fragment(), WeeklyCalendar { | |||||||
|  |  | ||||||
|                 doesEventFit = dayIndices.all { !row.contains(it) } |                 doesEventFit = dayIndices.all { !row.contains(it) } | ||||||
|  |  | ||||||
|                 for (dayIndex in dayIndices) { |                 if (doesEventFit && isSameDayEvent) { | ||||||
|                     if (doesEventFit) { |                     row.add(firstDayIndex) | ||||||
|                         row.add(dayIndex) |                     wasEventHandled = true | ||||||
|                         wasEventHandled = true |                 } else { | ||||||
|                     } else if (index == allDayRows.lastIndex) { |                     // handle events spanning midnight | ||||||
|                         allDayRows.add(HashSet()) |                     for (dayIndex in dayIndices) { | ||||||
|                         addNewLine() |                         if (index == allDayRows.lastIndex) { | ||||||
|                         drawAtLine++ |                             allDayRows.add(HashSet()) | ||||||
|                         wasEventHandled = true |                             addNewLine() | ||||||
|                         allDayRows.last().add(dayIndex) |                             drawAtLine++ | ||||||
|  |                             wasEventHandled = true | ||||||
|  |                             allDayRows.last().add(dayIndex) | ||||||
|  |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|  |  | ||||||
|                 if (wasEventHandled) { |                 if (wasEventHandled) { | ||||||
|                     break |                     break | ||||||
|                 } |                 } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user