package Ġcom . example . test app . presentation . ri bs . root . find _ fl ights . available _ fl ights Ċ Ċ import Ġcom . example . domain . entity . flight . Flight Option Ċ import Ġcom . example . domain . entity . flight . Flight Options Ċ import Ġcom . example . domain . mapper . Mapper Ċ import Ġcom . example . test app . entity . Flight Option VM Ċ import Ġcom . example . test app . presentation . ri bs . base . Base Listener Ċ import Ġcom . example . test app . presentation . ri bs . root . find _ fl ights . available _ fl ights . flight _ summary . Flight Summary Interactor Ċ import Ġcom . uber . rib . core . Bundle Ċ import Ġcom . uber . rib . core . Interactor Ċ import Ġcom . uber . rib . core . R ib Interactor Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCoordinates ĠBusiness ĠLogic Ġfor Ġ[ Available Fl ights Scope ]. Ċ Ġ*/ Ċ @ R ib Interactor Ċ class ĠAvailable Fl ights Interactor Ġ: ĊĠĠĠ ĠInter actor < Available Fl ights Interactor . Available Fl ights Presenter , ĠAvailable Fl ights Router >() Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠAvailable Fl ights Presenter ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġflight Options : ĠFlight Options ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġ rib Listener : ĠListener ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġflight Option Mapper : ĠMapper < Flight Option , ĠFlight Option VM > ĊĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġoverride Ġfun Ġdid Be come Active ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . did Be come Active ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġsetup Rx () ĊĠĠĠĠĠĠĠ Ġinit UI () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwill Res ign Active () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . clear () ĊĠĠĠĠĠĠĠ Ġsuper . will Res ign Active () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Back Press (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ rib Listener . onClose () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Rx () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . addAll ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . onClose (). subscribe Ġ{ Ġhandle Back Press () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Flight Option Selected (). subscribe Ġ{ Ġoption VM Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflight Options . list . first OrNull Ġ{ Ġoption Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoption . flight Number Ġ== Ġoption VM . flight Number ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ Ġrouter . attach Flight Summary ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . update Flight Path ( flight Options . path ) ĊĠĠĠĠĠĠĠ Ġupdate Flight Options () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Flight Options () Ġ= Ġpresenter . update Flight Options ( ĊĠĠĠĠĠĠĠ Ġflight Options . list . sorted By Ġ{ Ġit . f are Price Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġflight Option Mapper . map ( it ) Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinner Ġclass ĠFlight Summary Listener Ġ: ĠFlight Summary Interactor . Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClose () Ġ= Ġrouter . detach Current Child () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠListener Ġ: ĠBase Listener ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPres enter Ġinterface Ġimplemented Ġby Ġthis ĠR IB 's Ġview . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠAvailable Fl ights Presenter Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġupdate Flight Path ( path : ĠString ) ĊĠĠĠĠĠĠĠ Ġfun Ġupdate Flight Options ( flight Options : ĠList < Flight Option VM >) ĊĊĠĠĠĠĠĠĠ Ġfun ĠonClose (): ĠObservable < Unit > ĊĠĠĠĠĠĠĠ Ġfun Ġon Flight Option Selected (): ĠObservable < Flight Option VM > ĊĠĠĠ Ġ} Ċ } Ċ