package Ġcom . github . l cds ma o . paging carousel Ċ Ċ import Ġcom . air bnb . e po xy . Carousel Ċ import Ġcom . air bnb . e po xy . E po xy Attribute Ċ import Ġcom . air bnb . e po xy . E po xy Model Ċ import Ġcom . air bnb . e po xy . E po xy Model Class Ċ import Ġcom . air bnb . e po xy . E po xy Model With Holder Ċ import Ġcom . air bnb . e po xy . paging . Paged List E po xy Controller Ċ Ċ @ E po xy Model Class ( layout Ġ= ĠR . layout . model _ carousel ) Ċ abstract Ġclass ĠCar ousel Model Ġ: ĠE po xy Model With Holder < Carousel Model . Carousel Holder >() Ġ{ ĊĊĠ Ġ@ E po xy Attribute ( E po xy Attribute . Option . DoNot Hash ) ĊĠ Ġlateinit Ġvar Ġcontroller : ĠCar ousel Controller ĊĊĠ Ġoverride Ġfun Ġbind ( holder : ĠCar ousel Holder ) Ġ{ ĊĠĠĠ Ġholder . carousel . set Controller ( controller ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġun bind ( holder : ĠCar ousel Holder ) Ġ{ ĊĠĠĠ Ġholder . carousel . clear () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġshould Save ViewState (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġtrue ĊĠ Ġ} ĊĊĠ Ġclass ĠCar ousel Holder Ġ: ĠKotlin E po xy Holder () Ġ{ ĊĠĠĠ Ġval Ġcarousel Ġby Ġbind < Carousel >( R . id . carousel ) ĊĠ Ġ} ĊĊĠ Ġclass ĠCar ousel Controller Ġ: ĠP aged List E po xy Controller < User >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġbuild Item Model ( current Position : ĠInt , Ġitem : ĠUser ?): ĠE po xy Model < *> Ġ{ ĊĠĠĠĠĠ Ġreturn Ġif Ġ( item Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠP aging Horizontal ViewModel _() ĊĠĠĠĠĠĠĠĠĠ Ġ. id (- current Position ) ĊĠĠĠĠĠĠĠĠĠ Ġ. name (" loading Ġ$ current Position ") ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠP aging Horizontal ViewModel _() ĊĠĠĠĠĠĠĠĠĠ Ġ. id ( item . uid ) ĊĠĠĠĠĠĠĠĠĠ Ġ. name ("${ item . uid }: Ġ${ item . firstName } Ġ/ Ġ${ item . lastName }") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Models ( models : ĠList < E po xy Model <* >>) Ġ{ ĊĠĠĠĠĠ Ġpaging Horizontal View Ġ{ ĊĠĠĠĠĠĠĠ Ġid (" header ") ĊĠĠĠĠĠĠĠ Ġname (" show ing Ġ${ models . size } Ġitems ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġsuper . add Models ( models ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ