package Ġvi per . sample . ui . present ers Ċ Ċ import Ġrx . Observable Ċ import Ġvi per . present ers . Collection Presenter Ċ import Ġvi per . sample . model . inter actors . Sample Inter actors Ċ import Ġvi per . sample . ui . fragments . Git CollectionView Ċ import Ġvi per . view . fragments . CollectionView Ċ Ċ /** Ċ Ġ* ĠBase Ġclass Ġfor Ġpresent ers Ġwhich Ġutilize Ġa ĠGit ĠAPI . Ċ Ġ* ĠCreated Ġby ĠNick ĠC ip ollo Ġon Ġ 1 / 1 0 / 1 7 . Ċ Ġ*/ Ċ abstract Ġclass ĠGit Presenter < ListItem , ĠInter actors Ġ: ĠAny > ĊĠĠĠ Ġ: ĠCollection Presenter < Git CollectionView , ListItem , Inter actors >() Ġ{ ĊĠĠĠ Ġval ĠFIN ISH _ REFRESH ING _ ID Ġ= Ġ 1 ĊĠĠĠ Ġval ĠSHOW _ ERROR Ġ= Ġ 2 ĊĠĠĠ Ġprotected Ġval Ġitem List Ġ= Ġmutable ListOf < ListItem >() ĊĠĠĠ Ġoverride Ġval Ġcount : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġitem List . size ĊĊĠĠĠ Ġoverride Ġfun Ġget ListItem ( index : ĠInt ): ĠListItem Ġ= Ġitem List [ index ] ĊĊĠĠĠ Ġoverride Ġfun Ġon Take Inter actors ( inter actors : ĠInter actors ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item List . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfinish Refresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġstop ( FIN ISH _ REFRESH ING _ ID ) ĊĠĠĠĠĠĠĠ Ġrestart able First ( FIN ISH _ REFRESH ING _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠObservable . just ( true ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġview , Ġno Op Ġ-> Ġview ?. finish Refresh () Ġ}) ĊĠĠĠĠĠĠĠ Ġstart ( FIN ISH _ REFRESH ING _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Error ( error : Throwable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstop ( SHOW _ ERROR ) ĊĠĠĠĠĠĠĠ Ġrestart able First ( SHOW _ ERROR , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠObservable . just ( error ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġview , Ġerr Ġ-> Ġview ?. onError ( err ) Ġ}) ĊĠĠĠĠĠĠĠ Ġstart ( SHOW _ ERROR ) ĊĠĠĠ Ġ} Ċ }