/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠS ush ant ĠH ande Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . s ush an th ande . goc or ona . ui . covid update Ċ Ċ import Ġcom . s ush an th ande . goc or ona . model . Country DataModel Ċ import Ġcom . s ush an th ande . goc or ona . model . Global Country DataModel Ċ import Ġcom . s ush an th ande . goc or ona . model . Global DataModel Ċ import Ġcom . s ush an th ande . goc or ona . network . ApiClient Ċ import Ġcom . s ush an th ande . goc or ona . network . Api Requests Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . functions . Bi Function Ċ import Ġio . reactivex . ob servers . Disposable Observer Ċ import Ġio . reactivex . schedul ers . Schedulers ĊĊ Ċ /** Ċ Ġ* Created Ġby ĠS ush ant ĠH ande Ġon Ġ 0 7 - 0 4 - 2 0 2 0 Ċ Ġ*/ Ċ class ĠC ov id Update Presenter Impl ( val Ġview : ĠC ov id Update Contract . View ) Ġ: ĠC ov id Update Contract . Presenter Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġoverride Ġfun Ġget Global And All Country Updates () Ġ{ ĊĠĠĠĠĠĠĠ Ġview . hide Parent View () ĊĠĠĠĠĠĠĠ Ġview . show ProgressBar () ĊĠĠĠĠĠĠĠ Ġval Ġapi Request Ġ= ĠApi Client . create Global Service ( Api Requests . Global :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġglobal Observable Ġ= Ġapi Request . getGlobal Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġcountry Observable Ġ= Ġapi Request . getAll Country Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġdis posable : ĠDis posable Ġ= ĠObservable . zip ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglobal Observable , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Observable , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBi Function < Global DataModel , ĠList < Country DataModel >, ĠGlobal Country DataModel > Ġ{ Ġglobal DataModel , Ġcountry DataList Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ Bi Function Ġget Combined Data ( global DataModel , Ġcountry DataList ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe With ( object Ġ: ĠDis posable Observer < Global Country DataModel >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Next ( global Country DataModel : ĠGlobal Country DataModel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide ProgressBar () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Parent View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . set Cov id Update ( global Country DataModel . global DataModel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . set All Country Data ( global Country DataModel . country DataList ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide ProgressBar () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Check Internet View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( dis posable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Combined Data ( ĊĠĠĠĠĠĠĠ Ġglobal DataModel : ĠGlobal DataModel , ĊĠĠĠĠĠĠĠ Ġcountry DataList : ĠList < Country DataModel > ĊĠĠĠ Ġ): ĠGlobal Country DataModel Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGlobal Country DataModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġglobal DataModel Ġ= Ġglobal DataModel , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcountry DataList Ġ= Ġcountry DataList ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . dispose () ĊĠĠĠ Ġ} Ċ } Ċ