package Ġbase . smart services . com . presentation . browse Ċ Ċ import Ġbase . smart services . com . domain . inter actor . Comp letable UseCase Ċ import Ġbase . smart services . com . domain . inter actor . Single UseCase Ċ import Ġbase . smart services . com . domain . model . Min ion Ċ import Ġbase . smart services . com . presentation . mapper . Min ion Mapper Ċ import Ġio . reactivex . ob servers . Disposable Single Observer Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠB rowse Min ions Presenter Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġval Ġbrowse View : ĠB rowse Min ions Contract . View , ĊĠĠĠ Ġprivate Ġval Ġget Min ions UseCase : ĠSingle UseCase < List < Min ion >, ĠVoid >, ĊĠĠĠ Ġprivate Ġval Ġsave Min ion UseCase : ĠComp letable UseCase < Min ion >, ĊĠĠĠ Ġprivate Ġval Ġmin ion Mapper : ĠMin ion Mapper ): ĠB rowse Min ions Contract . Presenter Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitialization ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġbrowse View . set Presenter ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOn Ġstart Ġmethod ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġretrieve Min ions () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġget Min ions UseCase . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExecute Ġthe Ġrequest Ġmade Ġon Ġthe Ġuse Ġcase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġretrieve Min ions () Ġ{ ĊĠĠĠĠĠĠĠ Ġget Min ions UseCase . execute ( Min ion Subscriber ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExecute Ġthe Ġrequest Ġon Ġthe Ġuse Ġcase Ġto Ġsave Ġthe Ġ[ Min ion ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġsave Min ion ( min ion : ĠMin ion ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsave Min ion UseCase . execute ( min ion ). do On Complete Ġ{ Ġbrowse View . saved Min ion () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHandles Ġthe ĠGet Min ion Ġon Ġsuccess ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinternal Ġfun Ġhandle Get Min ions Success ( min ions : ĠList < Min ion >) Ġ{ ĊĠĠĠĠĠĠĠ Ġbrowse View . hide Error State () ĊĠĠĠĠĠĠĠ Ġif ( min ions . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowse View . hide Empty State () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowse View . hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowse View . show Min ions ( min ions . map Ġ{ Ġmin ion Mapper . map To View ( it ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowse View . hide Min ions () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowse View . show Empty State () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSubscribe Ġto Ġthe ĠGet Min ion ĠSingle ĠObserver ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinner Ġclass ĠMin ion Subscriber : ĠDis posable Single Observer < List < Min ion >>() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( t : ĠList < Min ion >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Get Min ions Success ( t ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowse View . hide Min ions () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowse View . hide Empty State () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowse View . show Error State () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }