mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-04-13 01:31:58 +02:00
Merge branch 'master' of github.com:SimpleMobileTools/Simple-Calendar
This commit is contained in:
commit
8297fb6bca
@ -145,8 +145,8 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
requireContext().eventsHelper.getEventTypes(requireActivity(), false) {
|
requireContext().eventsHelper.getEventTypes(requireActivity(), false) {
|
||||||
it.map {
|
it.map { eventType ->
|
||||||
eventTypeColors.put(it.id!!, it.color)
|
eventTypeColors.put(eventType.id!!, eventType.color)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -494,7 +494,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
eventsCollisionChecked.add(eventId)
|
eventsCollisionChecked.add(eventId)
|
||||||
val eventWeeklyViewsToCheck = eventDayList.filter { !eventsCollisionChecked.contains(it.key) }
|
val eventWeeklyViewsToCheck = eventDayList.filterNot { eventsCollisionChecked.contains(it.key) }
|
||||||
for ((toCheckId, eventWeeklyViewToCheck) in eventWeeklyViewsToCheck) {
|
for ((toCheckId, eventWeeklyViewToCheck) in eventWeeklyViewsToCheck) {
|
||||||
val areTouching = eventWeeklyView.range.intersects(eventWeeklyViewToCheck.range)
|
val areTouching = eventWeeklyView.range.intersects(eventWeeklyViewToCheck.range)
|
||||||
val doHaveCommonMinutes = if (areTouching) {
|
val doHaveCommonMinutes = if (areTouching) {
|
||||||
@ -738,34 +738,35 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
val numDays = Days.daysBetween(Formatter.getDateTimeFromTS(minTS).toLocalDate(), Formatter.getDateTimeFromTS(maxTS).toLocalDate()).days
|
val numDays = Days.daysBetween(Formatter.getDateTimeFromTS(minTS).toLocalDate(), Formatter.getDateTimeFromTS(maxTS).toLocalDate()).days
|
||||||
val daysCnt = if (numDays == 1 && isStartTimeDay) 0 else numDays
|
val daysCnt = if (numDays == 1 && isStartTimeDay) 0 else numDays
|
||||||
val startDateTimeInWeek = Formatter.getDateTimeFromTS(minTS)
|
val startDateTimeInWeek = Formatter.getDateTimeFromTS(minTS)
|
||||||
val firstDayIndex = (startDateTimeInWeek.dayOfWeek - if (config.isSundayFirst) 0 else 1) % 7
|
val firstDayIndex = startDateTimeInWeek.dayOfMonth // indices must be unique for the visible range (2 weeks)
|
||||||
|
val lastDayIndex = firstDayIndex + daysCnt
|
||||||
|
val dayIndices = firstDayIndex..lastDayIndex
|
||||||
|
val isSameDayEvent = firstDayIndex == lastDayIndex
|
||||||
|
|
||||||
var doesEventFit: Boolean
|
var doesEventFit: Boolean
|
||||||
val cnt = allDayRows.size - 1
|
|
||||||
var wasEventHandled = false
|
var wasEventHandled = false
|
||||||
var drawAtLine = 0
|
var drawAtLine = 0
|
||||||
for (index in 0..cnt) {
|
|
||||||
doesEventFit = true
|
|
||||||
drawAtLine = index
|
|
||||||
val row = allDayRows[index]
|
|
||||||
for (i in firstDayIndex..firstDayIndex + daysCnt) {
|
|
||||||
if (row.contains(i)) {
|
|
||||||
doesEventFit = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (dayIndex in firstDayIndex..firstDayIndex + daysCnt) {
|
for (index in allDayRows.indices) {
|
||||||
if (doesEventFit) {
|
drawAtLine = index
|
||||||
row.add(dayIndex)
|
|
||||||
wasEventHandled = true
|
val row = allDayRows[index]
|
||||||
} else if (index == cnt) {
|
|
||||||
if (allDayRows.size == index + 1) {
|
doesEventFit = dayIndices.all { !row.contains(it) }
|
||||||
|
|
||||||
|
if (doesEventFit && isSameDayEvent) {
|
||||||
|
row.add(firstDayIndex)
|
||||||
|
wasEventHandled = true
|
||||||
|
} else {
|
||||||
|
// handle events spanning midnight
|
||||||
|
for (dayIndex in dayIndices) {
|
||||||
|
if (index == allDayRows.lastIndex) {
|
||||||
allDayRows.add(HashSet())
|
allDayRows.add(HashSet())
|
||||||
addNewLine()
|
addNewLine()
|
||||||
drawAtLine++
|
drawAtLine++
|
||||||
wasEventHandled = true
|
wasEventHandled = true
|
||||||
|
allDayRows.last().add(dayIndex)
|
||||||
}
|
}
|
||||||
allDayRows.last().add(dayIndex)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -776,7 +777,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
|
|
||||||
val dayCodeStart = Formatter.getDayCodeFromDateTime(startDateTime).toInt()
|
val dayCodeStart = Formatter.getDayCodeFromDateTime(startDateTime).toInt()
|
||||||
val dayCodeEnd = Formatter.getDayCodeFromDateTime(endDateTime).toInt()
|
val dayCodeEnd = Formatter.getDayCodeFromDateTime(endDateTime).toInt()
|
||||||
val dayOfWeek = dayColumns.indexOfFirst { it.tag.toInt() == dayCodeStart || (it.tag.toInt() > dayCodeStart && it.tag.toInt() <= dayCodeEnd) }
|
val dayOfWeek = dayColumns.indexOfFirst { it.tag.toInt() == dayCodeStart || it.tag.toInt() in (dayCodeStart + 1)..dayCodeEnd }
|
||||||
if (dayOfWeek == -1) {
|
if (dayOfWeek == -1) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user