package Ġcom . simple mobile tools . calendar . fragments Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . simple mobile tools . calendar . R Ċ import Ġcom . simple mobile tools . calendar . activities . Event Activity Ċ import Ġcom . simple mobile tools . calendar . activities . Simple Activity Ċ import Ġcom . simple mobile tools . calendar . adapters . Event ListAdapter Ċ import Ġcom . simple mobile tools . calendar . extensions . config Ċ import Ġcom . simple mobile tools . calendar . extensions . db Helper Ċ import Ġcom . simple mobile tools . calendar . extensions . get Filtered Events Ċ import Ġcom . simple mobile tools . calendar . extensions . seconds Ċ import Ġcom . simple mobile tools . calendar . helpers . DB Helper Ċ import Ġcom . simple mobile tools . calendar . helpers . EVENT _ ID Ċ import Ġcom . simple mobile tools . calendar . helpers . EVENT _ OCC UR REN CE _ TS Ċ import Ġcom . simple mobile tools . calendar . helpers . Formatter Ċ import Ġcom . simple mobile tools . calendar . interfaces . Delete Events Listener Ċ import Ġcom . simple mobile tools . calendar . models . Event Ċ import Ġcom . simple mobile tools . calendar . models . List Event Ċ import Ġcom . simple mobile tools . calendar . models . ListItem Ċ import Ġcom . simple mobile tools . calendar . models . List Section Ċ import Ġcom . simple mobile tools . commons . extensions . be G one If Ċ import Ġcom . simple mobile tools . commons . extensions . be Visible If Ċ import Ġkotlinx . android . synt hetic . main . fragment _ event _ list . view .* Ċ import Ġorg . joda . time . DateTime Ċ import Ġjava . util .* Ċ Ċ class ĠEvent List Fragment Ġ: ĠFragment (), ĠDB Helper . Event Update Listener , ĠDelete Events Listener Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Events : ĠList < Event > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġprev Events Hash Ġ= Ġ 0 ĊĠĠĠ Ġlateinit Ġvar Ġm View : ĠView ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater ?, Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġm View Ġ= Ġinflater !!. inflate ( R . layout . fragment _ event _ list , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġplaceholder Text Ġ= ĠString . format ( getString ( R . string . two _ string _ placeholder ), Ġ"${ getString ( R . string . no _ up coming _ events )}\ n ", ĠgetString ( R . string . add _ some _ events )) ĊĠĠĠĠĠĠĠ Ġm View . calendar _ empty _ list _ placeholder . text Ġ= Ġplaceholder Text ĊĠĠĠĠĠĠĠ Ġreturn Ġm View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġcheck Events () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Events () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrom TS Ġ= ĠDateTime (). seconds () Ġ- Ġcontext . config . display Past Events Ġ* Ġ 6 0 ĊĠĠĠĠĠĠĠ Ġval Ġto TS Ġ= ĠDateTime (). plus Years ( 1 ). seconds () ĊĠĠĠĠĠĠĠ Ġcontext . db Helper . get Events ( from TS , Ġto TS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreceived Events ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgot Events ( events : ĠMutable List < Event >) Ġ{ ĊĠĠĠĠĠĠĠ Ġreceived Events ( events ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreceived Events ( events : ĠMutable List < Event >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġ== Ġnull Ġ|| Ġactivity Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġfiltered Ġ= Ġcontext . get Filtered Events ( events ) ĊĠĠĠĠĠĠĠ Ġval Ġhash Ġ= Ġfiltered . hashCode () ĊĠĠĠĠĠĠĠ Ġif Ġ( prev Events Hash Ġ== Ġhash ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠ Ġprev Events Hash Ġ= Ġhash ĊĠĠĠĠĠĠĠ Ġm Events Ġ= Ġfiltered ĊĠĠĠĠĠĠĠ Ġval Ġlist Items Ġ= ĠArrayList < ListItem >( m Events . size ) ĊĠĠĠĠĠĠĠ Ġval Ġsorted Ġ= Ġm Events . sorted With ( compare By ({ Ġit . start TS Ġ}, Ġ{ Ġit . end TS Ġ}, Ġ{ Ġit . title Ġ}, Ġ{ Ġit . description Ġ})) ĊĠĠĠĠĠĠĠ Ġval Ġsub list Ġ= Ġsorted . sub List ( 0 , ĠMath . min ( sorted . size , Ġ 1 0 0 )) ĊĠĠĠĠĠĠĠ Ġvar Ġprev Code Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġsub list . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= ĠFormatter . get Day Code From TS ( it . start TS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( code Ġ!= Ġprev Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġday Ġ= ĠFormatter . get Day Title ( context , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Items . add ( List Section ( day )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprev Code Ġ= Ġcode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Items . add ( List Event ( it . id , Ġit . start TS , Ġit . end TS , Ġit . title , Ġit . description , Ġit . getIs All Day (), Ġit . color )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġevents Adapter Ġ= ĠEvent ListAdapter ( activity Ġas ĠSimple Activity , Ġlist Items , Ġthis ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Event ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġactivity ?. run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm View . calendar _ events _ list . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ apply . adapter Ġ= Ġevents Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Placeholder Visibility () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Placeholder Visibility () Ġ{ ĊĠĠĠĠĠĠĠ Ġm View . calendar _ empty _ list _ placeholder . be Visible If ( m Events . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġm View . calendar _ events _ list . be G one If ( m Events . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm View . calendar _ empty _ list _ placeholder . setTextColor ( activity . config . textColor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġedit Event ( event : ĠList Event ) Ġ{ ĊĠĠĠĠĠĠĠ ĠIntent ( activity . application Context , ĠEvent Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EVENT _ ID , Ġevent . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EVENT _ OCC UR REN CE _ TS , Ġevent . start TS ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Items ( ids : ĠArrayList < Int >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevent IDs Ġ= ĠArray ( ids . size , Ġ{ Ġi Ġ-> Ġ( ids [ i ]. toString ()) Ġ}) ĊĠĠĠĠĠĠĠ ĠDB Helper . newInstance ( activity . application Context , Ġthis ). delete Events ( event IDs , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Event Repeat Exception ( parent Ids : ĠArrayList < Int >, Ġtimestamps : ĠArrayList < Int >) Ġ{ ĊĠĠĠĠĠĠĠ Ġparent Ids . forEach Indexed Ġ{ Ġindex , Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . db Helper . add Event Repeat Exception ( value , Ġtimestamps [ index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcheck Events () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġevent Inserted ( event : ĠEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Events () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġevents Deleted ( cnt : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Events () ĊĠĠĠĠĠĠĠ Ġcheck Placeholder Visibility () ĊĠĠĠ Ġ} Ċ } Ċ