package Ġcom . ero om . er oo ja . feature . participants _ list Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ero om . data . entity . Member Ċ import Ġcom . ero om . domain . global const . Consts Ċ import Ġcom . ero om . er oo ja . R Ċ import Ġcom . ero om . er oo ja . databinding . Activity Participants List Binding Ċ import Ġcom . ero om . er oo ja . feature . others Page . Others Page Activity Ċ import Ġorg . k oin . android . ext . android . get Ċ Ċ class ĠPart icipants List Activity Ġ: ĠAppCompatActivity (), ĠPart icipants List Contract . View Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpart ici Binding : ĠActivity Participants List Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpresenter : ĠPart icipants List Presenter ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġu Id : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Adapter : ĠPart icipant ListAdapter ĊĠĠĠ Ġprivate Ġvar Ġgoal Id : ĠLong Ġ= Ġ- 1 ĊĠĠĠ Ġprivate Ġvar Ġm Page Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġis End Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġm Content Size Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Content List : ĠArrayList < Member > Ġ= ĠArrayList () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit Presenter () ĊĠĠĠĠĠĠĠ ĠsetUp Data Binding () ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit Presenter () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter Ġ= ĠPart icipants List Presenter ( this , Ġget ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetUp Data Binding () Ġ{ ĊĠĠĠĠĠĠĠ Ġpart ici Binding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ participants _ list ) ĊĠĠĠĠĠĠĠ Ġpart ici Binding . activity Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġintent ĊĠĠĠĠĠĠĠ Ġgoal Id Ġ= Ġintent . getLong Extra ( Consts . GO AL _ ID , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġpresenter . get Part icip anted List ( goal Id , Ġm Page ) ĊĠĠĠĠĠĠĠ Ġu Id Ġ= Ġintent . getString Extra ( Consts . UID ) Ġ?: Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġoverride Ġfun Ġupdate List ( list : ĠArrayList < Member >, Ġtotal Element : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Content List . addAll ( list ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m Page Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠPart icipant ListAdapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . m Participant Diff Callback , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Content List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġu Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmember Item Clicked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpart ici Binding . profile Recycler . adapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpart ici Binding . profile Recycler . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . submit List ( m Content List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpart ici Binding . participant Count . text Ġ= Ġ" ì ´ Ŀ Ġ${ total Element } ëªħ " ĊĠĠĠĠĠĠĠ Ġm Content Size Ġ+= Ġlist . size ĊĠĠĠĠĠĠĠ Ġm Page Ġ+= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġre cyclerView Scroll Listener : ĠRecyclerView . On Scroll Listener Ġ= ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sc rolled ( re cyclerView : ĠRecyclerView , Ġdx : ĠInt , Ġdy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Sc rolled ( re cyclerView , Ġdx , Ġdy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dy Ġ>= Ġ 0 Ġ&& Ġm Content Size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= Ġre cyclerView . layout Manager Ġas ĠLinearLayoutManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( layout Manager . find Last Comp let ely Visible Item Position () Ġ== Ġm Content Size Ġ- Ġ 1 Ġ&& Ġ! is End ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . get Part icip anted List ( goal Id , Ġm Page ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġback Button Clicked () Ġ= Ġfinish () ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Is End ( boolean : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis End Ġ= Ġboolean ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . on Cle ared () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġmember Item Clicked Ġ= Ġ{ Ġmember : ĠMember Ġ-> ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ Participants List Activity , ĠO thers Page Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġval Ġjob Interest List : ĠArrayList < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Consts . UID , Ġmember . uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Consts . N ICK NAME , Ġmember . nickname ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Consts . IMAGE _ PATH , Ġmember . image Path ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġstart Block Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġpart ici Binding . color Loading . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġpart ici Binding . block View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġpart ici Binding . white Loading . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġpart ici Binding . color Loading . cancel Animation () ĊĠĠĠĠĠĠĠ Ġpart ici Binding . white Loading . play Animation () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġpart ici Binding . block View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġpart ici Binding . white Loading . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġpart ici Binding . color Loading . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġpart ici Binding . white Loading . cancel Animation () ĊĠĠĠĠĠĠĠ Ġpart ici Binding . color Loading . play Animation () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġpart ici Binding . block View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġpart ici Binding . white Loading . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġpart ici Binding . color Loading . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġpart ici Binding . white Loading . cancel Animation () ĊĠĠĠĠĠĠĠ Ġpart ici Binding . color Loading . cancel Animation () ĊĠĠĠ Ġ} Ċ } Ċ