mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
properly mark days with events that last multiple days
This commit is contained in:
@ -67,21 +67,33 @@ class MonthlyCalendarImpl(val mCallback: MonthlyCalendar, val mContext: Context)
|
|||||||
|
|
||||||
val newDay = curDay.withDayOfMonth(value)
|
val newDay = curDay.withDayOfMonth(value)
|
||||||
val dayCode = Formatter.getDayCodeFromDateTime(newDay)
|
val dayCode = Formatter.getDayCodeFromDateTime(newDay)
|
||||||
val day = Day(value, isThisMonth, isToday, dayCode, hasEvent(dayCode), newDay.weekOfWeekyear)
|
val day = Day(value, isThisMonth, isToday, dayCode, false, newDay.weekOfWeekyear)
|
||||||
days.add(day)
|
days.add(day)
|
||||||
value++
|
value++
|
||||||
}
|
}
|
||||||
|
|
||||||
|
markEvents(days, firstDayIndex - 1)
|
||||||
|
|
||||||
mCallback.updateMonthlyCalendar(monthName, days)
|
mCallback.updateMonthlyCalendar(monthName, days)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun hasEvent(dayCode: String): Boolean {
|
private fun markEvents(days: ArrayList<Day>, firstDayIndex: Int) {
|
||||||
for (event in mEvents) {
|
for (event in mEvents) {
|
||||||
if (Formatter.getDayCodeFromTS(event.startTS) == dayCode) {
|
val startDateTime = DateTime().withMillis(event.startTS * 1000L)
|
||||||
return true
|
val endDateTime = DateTime().withMillis(event.endTS * 1000L)
|
||||||
|
val endCode = Formatter.getDayCodeFromDateTime(endDateTime)
|
||||||
|
|
||||||
|
var currDay = startDateTime
|
||||||
|
if (currDay.monthOfYear == mTargetDate.monthOfYear)
|
||||||
|
days[startDateTime.dayOfMonth + firstDayIndex].hasEvent = true
|
||||||
|
|
||||||
|
while (Formatter.getDayCodeFromDateTime(currDay) != endCode) {
|
||||||
|
currDay = currDay.plusDays(1)
|
||||||
|
if (currDay.monthOfYear == mTargetDate.monthOfYear) {
|
||||||
|
days[currDay.dayOfMonth + firstDayIndex].hasEvent = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isToday(targetDate: DateTime, curDayInMonth: Int): Boolean {
|
private fun isToday(targetDate: DateTime, curDayInMonth: Int): Boolean {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.simplemobiletools.calendar.models
|
package com.simplemobiletools.calendar.models
|
||||||
|
|
||||||
class Day(val value: Int, val isThisMonth: Boolean, val isToday: Boolean, val code: String, val hasEvent: Boolean, val weekOfYear: Int) {
|
class Day(val value: Int, val isThisMonth: Boolean, val isToday: Boolean, val code: String, var hasEvent: Boolean, val weekOfYear: Int) {
|
||||||
override fun toString(): String {
|
override fun toString(): String {
|
||||||
return "Day {value=$value, isThisMonth=$isThisMonth, itToday=$isToday, code=$code, hasEvent=$hasEvent, weekOfYear=$weekOfYear}"
|
return "Day {value=$value, isThisMonth=$isThisMonth, itToday=$isToday, code=$code, hasEvent=$hasEvent, weekOfYear=$weekOfYear}"
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user