package Ġio . github . d roid ka igi . conf sched 2 0 2 0 . model Ċ Ċ data Ġclass ĠSession List ( private Ġval Ġsessions : ĠList < Session >) Ġ: ĠList < Session > Ġby Ġsessions Ġ{ ĊĠĠĠ Ġval Ġday To Session Map : ĠMap < Session Page . Day , ĠSession List > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġminus ( events ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. groupBy Ġ{ Ġit . day Number Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Keys Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSession Page . day Of Number ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . key ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Values Ġ{ Ġ(_, Ġvalue ) Ġ-> ĠSession List ( value ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġevents : ĠSession List Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠSession List ( filter Ġ{ Ġit . room . room Type Ġ== ĠRoom . Room Type . EX HIB ITION Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġfavor ited : ĠSession List Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠSession List ( filter Ġ{ Ġit . is F avor ited Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcurrent Session Index Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġlast Finished Ġ= ĠindexOf Last Ġ{ Ġit . is Finished Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġsessions Ġdo se Ġnot Ġstarted Ġwe Ġdon 't Ġuse Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ- Ġ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġit Ġis Ġlast Ġwe Ġdon 't Ġuse Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Finished Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfiltered ( filters : ĠFilters ): ĠSession List Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSession List ( filter Ġ{ Ġfilters . is Pass ( it ) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Page To Scroll Position Map (): ĠMap < Session Page , ĠInt > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġmutable Map Of < Session Page , ĠInt >() ĊĠĠĠĠĠĠĠ Ġmap Ġ+= Ġday To Session Map ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ( day , Ġsessions ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġsessions . current Session Index ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Ġto Ġindex ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġ(_, Ġvalue ) Ġ-> Ġvalue Ġ!= Ġ- 1 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toMap () ĊĠĠĠĠĠĠĠ Ġval Ġfavorite Current Session Index Ġ= Ġfavor ited . current Session Index ĊĠĠĠĠĠĠĠ Ġif Ġ( favorite Current Session Index Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Ġ+= ĠSession Page . Favorite Ġto Ġfavorite Current Session Index ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmap ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠEMPTY Ġ= ĠSession List ( listOf ()) ĊĠĠĠ Ġ} Ċ } Ċ