package Ġcom . alam kan ak . week view . sample . ui Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . Sp anned Ċ import Ġandroid . text . style . Stri ke through Span Ċ import Ġandroid . text . style . Type face Span Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . alam kan ak . week view . Week View Ċ import Ġcom . alam kan ak . week view . Week View Entity Ċ import Ġcom . alam kan ak . week view . sample . R Ċ import Ġcom . alam kan ak . week view . sample . data . Events Database Ċ import Ġcom . alam kan ak . week view . sample . data . model . Calendar Entity Ċ import Ġcom . alam kan ak . week view . sample . databinding . Activity Custom Font Binding Ċ import Ġcom . alam kan ak . week view . sample . util . setup With Week View Ċ import Ġcom . alam kan ak . week view . sample . util . show Toast Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Calendar Ċ Ċ class ĠCustom Font Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding : ĠActivity Custom Font Binding Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠActivity Custom Font Binding . inflate ( layout Inflater ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġdatabase : ĠEvents Database Ġby Ġlazy Ġ{ ĠEvents Database ( this ) Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġadapter : ĠCustom Font Activity Week View Adapter Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠCustom Font Activity Week View Adapter ( load More Handler Ġ= Ġthis :: on Load More ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġbinding . toolbar Container . toolbar . setup With Week View ( binding . week View ) ĊĠĠĠĠĠĠĠ Ġbinding . week View . adapter Ġ= Ġadapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonLoad More ( startDate : ĠCalendar , ĠendDate : ĠCalendar ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevents Ġ= Ġdatabase . get Events InRange ( startDate , ĠendDate ) ĊĠĠĠĠĠĠĠ Ġadapter . submit List ( events ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠCustom Font Activity Week View Adapter ( ĊĠĠĠ Ġprivate Ġval Ġload More Handler : Ġ( startDate : ĠCalendar , ĠendDate : ĠCalendar ) Ġ-> ĠUnit Ċ ) Ġ: ĠWeek View . Paging Adapter < Calendar Entity . Event >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġformatter Ġ= ĠSimpleDateFormat . get DateTime Instance () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Entity ( item : ĠCalendar Entity . Event ): ĠWeek View Entity Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠbackgroundColor Ġ= Ġif Ġ(! item . is Canceled ) Ġitem . color Ġelse ĠColor . WHITE ĊĠĠĠĠĠĠĠ Ġval ĠtextColor Ġ= Ġif Ġ(! item . is Canceled ) ĠColor . WHITE Ġelse Ġitem . color ĊĠĠĠĠĠĠĠ Ġval ĠborderWidth Res Id Ġ= Ġif Ġ(! item . is Canceled ) ĠR . dim en . no _ border _ width Ġelse ĠR . dim en . border _ width ĊĊĠĠĠĠĠĠĠ Ġval Ġstyle Ġ= ĠWeek View Entity . Style . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTextColor ( textColor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set BackgroundColor ( backgroundColor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setBorder Width Resource ( border Width Res Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set BorderColor ( item . color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠSp ann able StringBuilder ( item . title ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Span Ġ= ĠType face Span (" sans - serif - medium ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Span ( title Span , Ġ 0 , Ġitem . title . length , ĠSp anned . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . is Canceled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Span ( Stri ke through Span (), Ġ 0 , Ġitem . title . length , ĠSp anned . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsubtitle Ġ= ĠSp ann able StringBuilder ( item . location ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . is Canceled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Span ( Stri ke through Span (), Ġ 0 , Ġitem . location . length , ĠSp anned . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠWeek View Entity . Event . Builder ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( item . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set StartTime ( item . startTime ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set EndTime ( item . endTime ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Subtitle ( subtitle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set All Day ( item . is All Day ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setStyle ( style ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Event Click ( data : ĠCalendar Entity . Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . show Toast (" Clicked Ġ${ data . title }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Empty View Click ( time : ĠCalendar ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . show Toast (" Empty Ġview Ġclicked Ġat Ġ${ formatter . format ( time . time )} ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Event Long Click ( data : ĠCalendar Entity . Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . show Toast (" Long - clicked Ġ${ data . title }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Empty View Long Click ( time : ĠCalendar ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . show Toast (" Empty Ġview Ġlong - clicked Ġat Ġ${ formatter . format ( time . time )} ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonLoad More ( startDate : ĠCalendar , ĠendDate : ĠCalendar ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload More Handler ( startDate , ĠendDate ) ĊĠĠĠ Ġ} Ċ } Ċ