From 8d21d761a1b773ac06244cc78574ce3779a3a8d9 Mon Sep 17 00:00:00 2001 From: Kizito Nwose Date: Sun, 11 Oct 2020 16:03:24 +0200 Subject: [PATCH] Fix calendar measuring logic. --- .../java/com/kizitonwose/calendarview/CalendarView.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/library/src/main/java/com/kizitonwose/calendarview/CalendarView.kt b/library/src/main/java/com/kizitonwose/calendarview/CalendarView.kt index 164e7adb..8052d589 100644 --- a/library/src/main/java/com/kizitonwose/calendarview/CalendarView.kt +++ b/library/src/main/java/com/kizitonwose/calendarview/CalendarView.kt @@ -235,6 +235,7 @@ open class CalendarView : RecyclerView { private var firstDayOfWeek: DayOfWeek? = null private var autoSize = true + private var autoSizeHeight = DAY_SIZE_SQUARE private var sizedInternally = false internal val isVertical: Boolean @@ -290,12 +291,8 @@ open class CalendarView : RecyclerView { // +0.5 => round to the nearest pixel val size = (((widthSize - (monthPaddingStart + monthPaddingEnd)) / 7f) + 0.5).toInt() - val computedSize = when { - daySize == SIZE_SQUARE -> daySize.copy(width = size, height = size) - daySize.width == DAY_SIZE_SQUARE -> daySize.copy(width = size) - else -> daySize - } - + val height = if (autoSizeHeight == DAY_SIZE_SQUARE) size else autoSizeHeight + val computedSize = daySize.copy(width = size, height = height) if (daySize != computedSize) { sizedInternally = true daySize = computedSize @@ -356,6 +353,7 @@ open class CalendarView : RecyclerView { field = value if (!sizedInternally) { autoSize = value == SIZE_SQUARE || value.width == DAY_SIZE_SQUARE + autoSizeHeight = value.height invalidateViewHolders() } }