package Ġid . kotlin . basic mvp . category Ċ Ċ import Ġandroid . util . Log Ċ import Ġid . kotlin . basic mvp . category . response . Al co h olic Response Ċ import Ġid . kotlin . basic mvp . category . response . Category Response Ċ import Ġid . kotlin . basic mvp . category . response . G lass Response Ċ import Ġid . kotlin . basic mvp . category . response . Ingredient Response Ċ import Ġid . kotlin . basic mvp . config . Network Provider Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . rx kotlin . addTo Ċ Ċ class ĠCategory Presenter ( private Ġval Ġview : ĠCategory View ) Ġ{ ĊĊĠ Ġprivate Ġval Ġdis posable Ġ= ĠComposite Disposable () ĊĊĠ Ġfun Ġget Category () Ġ{ ĊĠĠĠ Ġview . show Loading () ĊĊĠĠĠ Ġval Ġdatasource Ġ= ĠNetwork Provider . provides Http Adapter (). create ( Category Datasource :: class . java ) ĊĠĠĠ Ġval Ġcategory Ġ= ĠCategory Item Model ( emptyList ()) ĊĠĠĠ Ġval Ġg lass Ġ= ĠG lass Item Model ( emptyList ()) ĊĠĠĠ Ġval Ġingredient Ġ= ĠIng redient Item Model ( emptyList ()) ĊĠĠĠ Ġval Ġal co h olic Ġ= ĠAl co h olic Item Model ( emptyList ()) ĊĠĠĠ Ġval Ġmodel Ġ= ĠCategory Model ( category , Ġg lass , Ġingredient , Ġal co h olic ) ĊĊĠĠĠ ĠSingle . merge ( ĊĠĠĠĠĠĠĠ Ġdatasource . get Category (). observe On ( Android Schedulers . main Thread ()), ĊĠĠĠĠĠĠĠ Ġdatasource . get G lass (). observe On ( Android Schedulers . main Thread ()), ĊĠĠĠĠĠĠĠ Ġdatasource . get Ingredient (). observe On ( Android Schedulers . main Thread ()), ĊĠĠĠĠĠĠĠ Ġdatasource . get Al co h olic (). observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ). subscribe ( ĊĠĠĠĠĠĠĠ Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCategory Response Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory . contents Ġ= Ġresponse . dr inks . map Ġ{ Ġit . str Category Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . category Ġ= Ġcategory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠG lass Response Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg lass . contents Ġ= Ġresponse . dr inks . map Ġ{ Ġit . str G lass Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . glass Ġ= Ġg lass ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠIng redient Response Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġingredient . contents Ġ= Ġresponse . dr inks . map Ġ{ Ġit . str Ingredient 1 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . ingredient Ġ= Ġingredient ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAl co h olic Response Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġal co h olic . contents Ġ= Ġresponse . dr inks . map Ġ{ Ġit . str Al co h olic Ġ?: Ġ" Unknown " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . al co h olic Ġ= Ġal co h olic ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġview . show Category ( model ) ĊĠĠĠĠĠĠĠĠĠ Ġview . hide Loading () ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠ ĠLog . e ( Category Presenter :: class . java . simple Name , Ġ"$ error ") ĊĠĠĠĠĠĠĠĠĠ Ġview . hide Loading () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ). addTo ( dis posable ) ĊĠ Ġ} ĊĊĠ Ġfun Ġon Destroy () Ġ{ ĊĠĠĠ Ġdis posable . clear () ĊĠ Ġ} Ċ }