@@ -146,7 +146,7 @@ class WeekView @JvmOverloads constructor(context: Context, attrs: AttributeSet?
146146 private var mStartOriginForScroll = 0f
147147
148148 // Attributes and their default values.
149- private var mHourHeight = TypedValue .applyDimension(TypedValue .COMPLEX_UNIT_DIP , 50f , resources.displayMetrics).toInt()
149+ private var mHourHeight = TypedValue .applyDimension(TypedValue .COMPLEX_UNIT_DIP , 50f , resources.displayMetrics).toInt()
150150 private var mNewHourHeight = - 1
151151 var minHourHeight = 0
152152 // no minimum specified (will be dynamic, based on screen)
@@ -159,22 +159,22 @@ class WeekView @JvmOverloads constructor(context: Context, attrs: AttributeSet?
159159 private var mHeaderColumnPadding = TypedValue .applyDimension(TypedValue .COMPLEX_UNIT_DIP , 10f , resources.displayMetrics).toInt()
160160 private var mHeaderColumnTextColor = Color .BLACK
161161 private var mNumberOfVisibleDays = 3
162- private var mHeaderRowPadding = TypedValue .applyDimension(TypedValue .COMPLEX_UNIT_DIP , 5f , resources.displayMetrics).toInt()
162+ private var mHeaderRowPadding = TypedValue .applyDimension(TypedValue .COMPLEX_UNIT_DIP , 10f , resources.displayMetrics).toInt()
163163 private var mHeaderRowBackgroundColor = Color .WHITE
164164 private var mDayBackgroundColor = Color .rgb(245 , 245 , 245 )
165165 private var mPastBackgroundColor = Color .rgb(227 , 227 , 227 )
166166 private var mFutureBackgroundColor = Color .rgb(245 , 245 , 245 )
167167 private var mPastWeekendBackgroundColor = 0
168168 private var mFutureWeekendBackgroundColor = 0
169169 private var mNowLineColor = Color .rgb(102 , 102 , 102 )
170- private var mNowLineThickness = TypedValue .applyDimension(TypedValue .COMPLEX_UNIT_DIP , 2f , resources.displayMetrics).toInt()
170+ private var mNowLineThickness = TypedValue .applyDimension(TypedValue .COMPLEX_UNIT_DIP , 2f , resources.displayMetrics).toInt()
171171 private var mHourSeparatorColor = Color .rgb(230 , 230 , 230 )
172172 private var mTodayBackgroundColor = Color .rgb(239 , 247 , 254 )
173173 private var mHourSeparatorHeight = TypedValue .applyDimension(TypedValue .COMPLEX_UNIT_DIP , 1f , resources.displayMetrics).toInt()
174174 private var mTodayHeaderTextColor = Color .rgb(39 , 137 , 228 )
175175 private var mEventTextSize = 12
176176 private var mEventTextColor = Color .BLACK
177- private var mEventPadding = TypedValue .applyDimension(TypedValue .COMPLEX_UNIT_DIP , 4f , resources.displayMetrics).toInt()
177+ private var mEventPadding = TypedValue .applyDimension(TypedValue .COMPLEX_UNIT_DIP , 4f , resources.displayMetrics).toInt()
178178 private var mHeaderColumnBackgroundColor = Color .WHITE
179179 private var mDefaultEventColor: Int = 0
180180 private var mNewEventColor: Int = 0
@@ -1075,6 +1075,11 @@ class WeekView @JvmOverloads constructor(context: Context, attrs: AttributeSet?
10751075
10761076 private val refreshRunnable: Runnable
10771077 private val uiHandler = Handler ()
1078+ var isUsingCheckersStyle: Boolean = false
1079+ set(value) {
1080+ field = value
1081+ invalidate()
1082+ }
10781083
10791084 // endregion fields and properties
10801085
@@ -1151,6 +1156,7 @@ class WeekView @JvmOverloads constructor(context: Context, attrs: AttributeSet?
11511156 minOverlappingMinutes = a.getInt(R .styleable.WeekView_minOverlappingMinutes , 0 )
11521157 mIsScrollNumberOfVisibleDays = a.getBoolean(R .styleable.WeekView_isScrollNumberOfVisibleDays , false )
11531158 enableDrawHeaderBackgroundOnlyOnWeekDays = a.getBoolean(R .styleable.WeekView_enableDrawHeaderBackgroundOnlyOnWeekDays , false )
1159+ isUsingCheckersStyle = a.getBoolean(R .styleable.WeekView_isUsingCheckersStyle , false )
11541160 } finally {
11551161 a.recycle()
11561162 }
@@ -1522,15 +1528,20 @@ class WeekView @JvmOverloads constructor(context: Context, attrs: AttributeSet?
15221528 if (top > mHeaderHeight + (mHeaderRowPadding * 2 ).toFloat() + mTimeTextHeight / 2 + mHeaderMarginBottom - mHourSeparatorHeight && top < height && startPixel + mWidthPerDay - start > 0 ) {
15231529 hourLines[i * 4 ] = start
15241530 hourLines[i * 4 + 1 ] = top
1525- hourLines[i * 4 + 2 ] = startPixel + mWidthPerDay
1531+ hourLines[i * 4 + 2 ] = startPixel + mWidthPerDay + if (isUsingCheckersStyle) mColumnGap else 0
15261532 hourLines[i * 4 + 3 ] = top
15271533 i++
15281534 }
15291535 }
1530-
15311536 // Draw the lines for hours.
15321537 canvas.drawLines(hourLines, mHourSeparatorPaint)
15331538
1539+ // Draw line between days (before current one)
1540+ if (isUsingCheckersStyle) {
1541+ val x = if (dayNumber == leftDaysWithGaps + 1 ) start else start - mColumnGap / 2
1542+ canvas.drawLine(x, mHeaderHeight, x, height.toFloat(), mHourSeparatorPaint)
1543+ }
1544+
15341545 // Draw the events.
15351546 drawEvents(day, startPixel, canvas)
15361547
0 commit comments