package Ġcom . los ers . news . ui . home . presenter Ċ Ċ import Ġcom . los ers . news . data . network . News Ċ import Ġcom . los ers . news . ui . base . presenter . Base Presenter Ċ import Ġcom . los ers . news . ui . home . inter actor . Home M VP Interactor Ċ import Ġcom . los ers . news . ui . home . view . Home M VP View Ċ import Ġcom . los ers . news . util . Scheduler Provider Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠHome Presenter < V Ġ: ĠHome M VP View , ĠI Ġ: ĠHome M VP Interactor > Ġ@ Inject Ġinternal Ġconstructor ( inter actor : ĠI , Ġscheduler Provider : ĠScheduler Provider , Ġdis posable : ĠComposite Disposable ) Ġ: ĠBase Presenter < V , ĠI >( inter actor Ġ= Ġinter actor , Ġscheduler Provider Ġ= Ġscheduler Provider , Ġcomposite Disposable Ġ= Ġdis posable ), ĠHome MV PP res enter < V , ĠI > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Get News Data () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! getView ()?. is Network Connected () !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Offline Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget View ()?. show Progress () ĊĠĠĠĠĠĠĠ Ġinter actor ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( it . get News Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( scheduler Provider . io To Main Observable Scheduler ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Data In Database ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. news Response ( response ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerr Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. onError () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( err . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Offline Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġinter actor ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( it . get News () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( scheduler Provider . io To Main Observable Scheduler ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. news Response ( response ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerr Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. onError () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( err . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Data In Database ( news : ĠNews ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinter actor ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( it . insert News ( news ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerr Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( err . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }