diff --git a/library/src/main/java/com/alamkanak/weekview/DrawingContext.kt b/library/src/main/java/com/alamkanak/weekview/DrawingContext.kt index b08eae06d..2efc92643 100644 --- a/library/src/main/java/com/alamkanak/weekview/DrawingContext.kt +++ b/library/src/main/java/com/alamkanak/weekview/DrawingContext.kt @@ -2,34 +2,12 @@ package com.alamkanak.weekview import java.lang.Math.ceil import java.util.* -import java.util.Calendar.DATE class DrawingContext( val dateRange: List, val startPixel: Float ) { - /** - * Returns the actually visible date range. This can be different from [dateRange] if the user - * is currently scrolling. - * - * @param firstVisibleDate The first visible date - * @param config The [WeekViewConfig] - * - * @return The list of currently visible dates - */ - fun getVisibleDateRange(firstVisibleDate: Calendar, config: WeekViewConfig): List { - val result = dateRange as MutableList - val isScrolling = config.drawingConfig.currentOrigin.x % config.totalDayWidth != 0f - if (isScrolling) { - // If the user is scrolling, a new view becomes partially visible - val lastVisibleDay = firstVisibleDate.clone() as Calendar - lastVisibleDay.add(DATE, config.numberOfVisibleDays) - dateRange.add(lastVisibleDay) - } - return result - } - fun getDateRangeWithStartPixels(config: WeekViewConfig): List> { return dateRange.zip(getStartPixels(config)) } @@ -67,9 +45,14 @@ class DrawingContext( + drawConfig.timeColumnWidth) val start = leftDaysWithGaps + 1 - val end = start + config.numberOfVisibleDays + 1 - val dayRange = DateUtils.getDateRange(start, end) + val end = start + config.numberOfVisibleDays + + // If the user is scrolling, a new view becomes partially visible, so we must add an + // additional date to the date range + val isNotScrolling = config.drawingConfig.currentOrigin.x % config.totalDayWidth == 0f + val modifiedEnd = if (isNotScrolling) end - 1 else end + val dayRange = DateUtils.getDateRange(start, modifiedEnd) return DrawingContext(dayRange, startPixel) } } diff --git a/library/src/main/java/com/alamkanak/weekview/HeaderRowDrawer.java b/library/src/main/java/com/alamkanak/weekview/HeaderRowDrawer.java index 8be9c11f1..0ac4790da 100644 --- a/library/src/main/java/com/alamkanak/weekview/HeaderRowDrawer.java +++ b/library/src/main/java/com/alamkanak/weekview/HeaderRowDrawer.java @@ -43,7 +43,7 @@ private void refreshHeaderHeight(DrawingContext drawingContext) { return; } - List dateRange = drawingContext.getVisibleDateRange(firstVisibleDay, config); + List dateRange = drawingContext.getDateRange(); List> visibleEvents = cache.getAllDayEventsInRange(dateRange); boolean containsAllDayEvent = false;