/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠNew ĠVector ĠLtd Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġim . vector . app . features . home . room . list Ċ Ċ import Ġcom . air bnb . e po xy . E po xy Model Ċ import Ġcom . air bnb . e po xy . paging . Paged List E po xy Controller Ċ import Ġfr . g ou v . t chap . features . home . room . list . T chap Room Summary Item Factory Ċ import Ġim . vector . app . core . utils . create UI Handler Ċ import Ġorg . matrix . android . sdk . api . session . room . members . Change Membership State Ċ import Ġorg . matrix . android . sdk . api . session . room . model . Room Summary Ċ Ċ class ĠRoom Summary Paged Controller ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġroom Summary Item Factory : ĠT chap Room Summary Item Factory Ċ ) Ġ: ĠP aged List E po xy Controller < Room Summary >( ĊĠĠĠĠĠĠĠ Ġ// ĠImport ant Ġit Ġmust Ġmatch Ġthe ĠPage List Ġbuilder Ġnotify ĠL ooper ĊĠĠĠĠĠĠĠ Ġmodel Building Handler Ġ= Ġcreate UI Handler () Ċ ), ĠCol lap s able Controller Extension Ġ{ ĊĊĠĠĠ Ġvar Ġlistener : ĠRoom List Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġroom Change Membership States : ĠMap < String , ĠChange Membership State >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġide ally Ġwe Ġcould Ġsearch Ġfor Ġvisible Ġmodels Ġand Ġupdate Ġonly Ġthose ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest For ced Model Build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġcollapsed Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest For ced Model Build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Models ( models : ĠList < E po xy Model <* >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( collapsed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . add Models ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . add Models ( models ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbuild Item Model ( current Position : ĠInt , Ġitem : ĠRoom Summary ?): ĠE po xy Model < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġfor Ġplace Ġholder Ġif Ġenabled ĊĠĠĠĠĠĠĠ Ġitem Ġ?: Ġreturn ĠRoom Summary Item Place Holder _ (). apply Ġ{ Ġid ( current Position ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġroom Summary Item Factory . create ( item , Ġroom Change Membership States . or Empty (), Ġempty Set (), Ġlistener ) ĊĠĠĠ Ġ} Ċ } Ċ