fix displaying events lasting through weeks end
This commit is contained in:
parent
c24e18f413
commit
90168af9f4
|
@ -18,6 +18,8 @@ import com.simplemobiletools.calendar.activities.EventActivity
|
||||||
import com.simplemobiletools.calendar.activities.MainActivity
|
import com.simplemobiletools.calendar.activities.MainActivity
|
||||||
import com.simplemobiletools.calendar.adapters.WeekEventsAdapter
|
import com.simplemobiletools.calendar.adapters.WeekEventsAdapter
|
||||||
import com.simplemobiletools.calendar.extensions.config
|
import com.simplemobiletools.calendar.extensions.config
|
||||||
|
import com.simplemobiletools.calendar.extensions.seconds
|
||||||
|
import com.simplemobiletools.calendar.extensions.secondsInWeek
|
||||||
import com.simplemobiletools.calendar.helpers.*
|
import com.simplemobiletools.calendar.helpers.*
|
||||||
import com.simplemobiletools.calendar.interfaces.WeeklyCalendar
|
import com.simplemobiletools.calendar.interfaces.WeeklyCalendar
|
||||||
import com.simplemobiletools.calendar.models.Event
|
import com.simplemobiletools.calendar.models.Event
|
||||||
|
@ -204,8 +206,11 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
||||||
val startDateTime = Formatter.getDateTimeFromTS(event.startTS)
|
val startDateTime = Formatter.getDateTimeFromTS(event.startTS)
|
||||||
val endDateTime = Formatter.getDateTimeFromTS(event.endTS)
|
val endDateTime = Formatter.getDateTimeFromTS(event.endTS)
|
||||||
|
|
||||||
val firstDayIndex = startDateTime.dayOfWeek - if (context.config.isSundayFirst) 0 else 1
|
val minTS = Math.max(startDateTime.withTimeAtStartOfDay().seconds(), mWeekTimestamp)
|
||||||
val daysCnt = Days.daysBetween(startDateTime.withTimeAtStartOfDay(), endDateTime.withTimeAtStartOfDay()).days
|
val maxTS = Math.min(endDateTime.withTimeAtStartOfDay().seconds(), mWeekTimestamp + context.secondsInWeek)
|
||||||
|
val startDateTimeInWeek = Formatter.getDateTimeFromTS(minTS)
|
||||||
|
val firstDayIndex = startDateTimeInWeek.dayOfWeek - if (context.config.isSundayFirst) 0 else 1
|
||||||
|
val daysCnt = Days.daysBetween(Formatter.getDateTimeFromTS(minTS), Formatter.getDateTimeFromTS(maxTS)).days
|
||||||
|
|
||||||
activity.runOnUiThread {
|
activity.runOnUiThread {
|
||||||
val dayColumnWidth = getColumnWithId(1).width
|
val dayColumnWidth = getColumnWithId(1).width
|
||||||
|
@ -213,7 +218,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
||||||
(layoutParams as LinearLayout.LayoutParams).apply {
|
(layoutParams as LinearLayout.LayoutParams).apply {
|
||||||
topMargin = mRes.getDimension(R.dimen.tiny_margin).toInt()
|
topMargin = mRes.getDimension(R.dimen.tiny_margin).toInt()
|
||||||
bottomMargin = mRes.getDimension(R.dimen.tiny_margin).toInt()
|
bottomMargin = mRes.getDimension(R.dimen.tiny_margin).toInt()
|
||||||
leftMargin = firstDayIndex * dayColumnWidth
|
leftMargin = firstDayIndex % 7 * dayColumnWidth
|
||||||
width = (daysCnt + 1) * dayColumnWidth - mRes.displayMetrics.density.toInt()
|
width = (daysCnt + 1) * dayColumnWidth - mRes.displayMetrics.density.toInt()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue