package Ġcom . alam kan ak . week view Ċ Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġorg . th reet en . bp . LocalDate Ċ import Ġjava . util .* Ċ import Ġjava . util . Calendar . HOUR _ OF _ DAY Ċ import Ġjava . util . Calendar . MINUTE Ċ import Ġkotlin . math . max Ċ Ċ internal Ġclass ĠDay Background Drawer ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconfig : ĠWeek View Config Wrapper Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġdraw ( drawing Context : ĠDraw ing Context , Ġcanvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdrawing Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getDate Range With Start Pixels ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġ( date , Ġstart Pixel ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart X Ġ= Ġmax ( start Pixel , Ġconfig . time Column Width ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Day Background ( date , Ġstart X , Ġstart Pixel , Ġcanvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Day Background ( day : ĠLocalDate , Ġstart X : ĠFloat , Ġstart Pixel : ĠFloat , Ġcanvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( config . width Per Day Ġ+ Ġstart Pixel Ġ- Ġstart X Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĠWeek View . getView Height (). toFloat () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( config . show Distinct Past Future Color ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuse Week end Color Ġ= Ġday . is Week end Ġ&& Ġconfig . show Distinct Week end Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpast Paint Ġ= Ġconfig . get Past Background Paint ( use Week end Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfuture Paint Ġ= Ġconfig . get Future Background Paint ( use Week end Color ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Y Ġ= Ġconfig . header Height Ġ+ Ġconfig . current Origin . y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend X Ġ= Ġstart Pixel Ġ+ Ġconfig . width Per Day ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday . is Today Ġ-> Ġdraw Past And Future Rect ( start X , Ġstart Y , Ġend X , Ġpast Paint , Ġfuture Paint , Ġheight , Ġcanvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday . is Before Today Ġ-> Ġcanvas . draw Rect ( start X , Ġstart Y , Ġend X , Ġheight , Ġpast Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcanvas . draw Rect ( start X , Ġstart Y , Ġend X , Ġheight , Ġfuture Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoday Paint Ġ= Ġconfig . get Today Background Paint ( day . is Today ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġstart Pixel Ġ+ Ġconfig . width Per Day ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( start X , Ġconfig . header Height , Ġright , Ġheight , Ġtoday Paint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Past And Future Rect ( start X : ĠFloat , Ġstart Y : ĠFloat , Ġend X : ĠFloat , Ġpast Paint : ĠPaint , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuture Paint : ĠPaint , Ġheight : ĠFloat , Ġcanvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġbefore Now Ġ= Ġ( now . get ( HOUR _ OF _ DAY ) Ġ+ Ġnow . get ( MINUTE ) Ġ/ Ġ 6 0 . 0 f ) Ġ* Ġconfig . hour Height ĊĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( start X , Ġstart Y , Ġend X , Ġstart Y Ġ+ Ġbefore Now , Ġpast Paint ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( start X , Ġstart Y Ġ+ Ġbefore Now , Ġend X , Ġheight , Ġfuture Paint ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ