package Ġapps . ric as ares . com . domain . presenter Ċ Ċ import Ġapps . ric as ares . com . domain . inter actor . browse . Get Listing UseCase Ċ import Ġapps . ric as ares . com . domain . model . Listing Ċ import Ġapps . ric as ares . com . domain . view . Listing View Ċ import Ġapps . ric as ares . com . mvp . Presenter Ċ import Ġapps . ric as ares . com . mvp . ViewState Ċ import Ġio . reactivex . ob servers . Disposable Single Observer Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġr ic ardo Ġcas are z Ġon Ġ 3 / 2 2 / 1 8 . Ċ Ġ*/ Ċ class ĠListing Presenter Ġ@ Inject Ġconstructor Ġ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠgetList ings UseCase : ĠGet Listing UseCase ) Ġ: ĠPres enter < Listing View , ĠListing Presenter . Listing ViewState >() Ġ{ ĊĊĠĠĠ Ġfun Ġload List ings ( sub reddit : ĠString , Ġlisting : ĠString , Ġafter : ĠString , Ġlimit : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview ?. show Loading () ĊĠĠĠĠĠĠĠ ĠgetList ings UseCase . execute ( Listing Single Observer (), ĠGet Listing UseCase . Params ( sub reddit , Ġlisting , Ġafter , Ġlimit )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow List ings ( list ings : ĠListing ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview ?. hide Loading () ĊĠĠĠĠĠĠĠ Ġview ?. show List ings ( list ings ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Error ( error : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview ?. show Error ( error ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠListing Single Observer Ġ: ĠDis posable Single Observer < Listing >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. show Error ( e . message . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( value : ĠListing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. hide Loading () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. show List ings ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠListing ViewState Ġ: ĠView State Ġ{ ĊĊĠĠĠ Ġ} Ċ }