package Ġcom . gang . not odo . ui . calendar ĊĊ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġcom . gang . not odo . util . dip To Px Ċ import Ġcom . ha ib in . calendar view . Calendar Ċ import Ġcom . ha ib in . calendar view . Month View Ċ import Ġkotlin . math . min ĊĊ Ċ class ĠIndex Month View ( context : ĠContext ) Ġ: ĠMonth View ( context ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm Padding Ġ= Ġcontext . dip To Px ( 4 f ) ĊĠĠĠ Ġprivate Ġval Ġm H Ġ= Ġcontext . dip To Px ( 2 f ) ĊĠĠĠ Ġprivate Ġval Ġm W Ġ= Ġcontext . dip To Px ( 8 f ) ĊĠĠĠ Ġprivate Ġvar Ġm Radius : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġm Scheme Basic Paint Ġ= ĠPaint (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġthis . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġthis . textAlign Ġ= ĠPaint . Align . CENTER ĊĠĠĠĠĠĠĠ Ġthis . color Ġ= Ġ- 0 xcc cc cd ĊĠĠĠĠĠĠĠ Ġthis . is Fake Bold Text Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Preview Hook () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Radius Ġ= Ġmin ( m Item Width , Ġm Item Height ) Ġ* Ġ 5 Ġ/ Ġ 1 2 ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Draw Selected ( ĊĠĠĠĠĠĠĠ Ġcanvas : ĠCanvas , ĊĠĠĠĠĠĠĠ Ġcalendar : ĠCalendar , ĊĠĠĠĠĠĠĠ Ġx : ĠInt , ĊĠĠĠĠĠĠĠ Ġy : ĠInt , ĊĠĠĠĠĠĠĠ Ġhas Scheme : ĠBoolean ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġm Selected Paint . setStyle ( Paint . Style . FILL ); ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( x Ġ+ Ġm Padding , Ġy Ġ+ Ġm Padding , Ġx Ġ+ Ġm Item Width Ġ- Ġm Padding , Ġy Ġ+ Ġm Item Height Ġ- Ġm Padding , Ġm Selected Paint ); ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġreturn Ġtrue ; ĊĠĠĠĠĠĠĠ Ġval Ġcx Ġ= Ġx Ġ+ Ġm Item Width Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġcy Ġ= Ġy Ġ+ Ġm Item Height Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġcanvas . draw Circle ( cx . toFloat (), Ġcy . toFloat (), Ġm Radius . toFloat (), Ġm Selected Paint ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġon Draw Selected ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcanvas ĠĠ Ġcanvas ĊĠĠĠĠ Ġ* Ġ@ param Ġcalendar Ġ æĹ¥ åİĨ calendar ĊĠĠĠĠ Ġ* Ġ@ param Ġx ĠĠĠĠĠĠĠ Ġ æĹ¥ åİĨ Card Ġx èµ· çĤ¹ åĿĲæłĩ ĊĠĠĠĠ Ġ* Ġ@ param Ġy ĠĠĠĠĠĠĠ Ġ æĹ¥ åİĨ Card Ġy èµ· çĤ¹ åĿĲæłĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Draw Scheme ( canvas : ĠCanvas , Ġcalendar : ĠCalendar , Ġx : ĠInt , Ġy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Scheme Basic Paint . color Ġ= Ġcalendar . scheme Color ĊĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( x Ġ+ Ġm Item Width Ġ/ Ġ 2 Ġ- Ġm W Ġ/ Ġ 2 ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( y Ġ+ Ġm Item Height Ġ- Ġm H Ġ* Ġ 2 Ġ- Ġm Padding ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( x Ġ+ Ġm Item Width Ġ/ Ġ 2 Ġ+ Ġm W Ġ/ Ġ 2 ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( y Ġ+ Ġm Item Height Ġ- Ġm H Ġ- Ġm Padding ). toFloat (), Ġm Scheme Basic Paint ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw Text ( ĊĠĠĠĠĠĠĠ Ġcanvas : ĠCanvas , ĊĠĠĠĠĠĠĠ Ġcalendar : ĠCalendar , ĊĠĠĠĠĠĠĠ Ġx : ĠInt , ĊĠĠĠĠĠĠĠ Ġy : ĠInt , ĊĠĠĠĠĠĠĠ Ġhas Scheme : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġis Selected : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcx Ġ= Ġx Ġ+ Ġm Item Width Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġtop Ġ= Ġy Ġ- Ġm Item Height Ġ/ Ġ 6 ĊĠĠĠĠĠĠĠ Ġif Ġ( has Scheme ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . day . toString (), Ġcx . toFloat (), Ġm Text Base Line Ġ+ Ġtop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . is Current Day Ġ-> Ġm Cur Day Text Paint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . is Current Month Ġ-> Ġm Scheme Text Paint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġm Other Month Text Paint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . lun ar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcx . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Text Base Line Ġ+ Ġy . toFloat () Ġ+ Ġ( m Item Height Ġ/ Ġ 1 0 ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( calendar . is Current Day ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Cur Day L un ar Text Paint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Cur Month L un ar Text Paint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . day . toString (), Ġcx . toFloat (), Ġm Text Base Line Ġ+ Ġtop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . is Current Day Ġ-> Ġm Cur Day Text Paint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . is Current Month Ġ-> Ġm Cur Month Text Paint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġm Other Month Text Paint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . lun ar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcx . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Text Base Line Ġ+ Ġy . toFloat () Ġ+ Ġ( m Item Height Ġ/ Ġ 1 0 ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Cur Month L un ar Text Paint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ