package Ġdemo . movie . app . ui . discover . tv Ċ Ċ import Ġandroid . util . Log Ċ import Ġdemo . movie . app . model . dto . tv . Tv Lists Wrapper Ċ import Ġdemo . movie . app . model . dto . tv . Tv Response Result Ċ import Ġdemo . movie . app . model . repo . tv . Base Tv Repo Ċ import Ġdemo . movie . app . ui . mvp . Presenter Base Ċ import Ġdemo . movie . app . util . rx . Base Scheduler Provider Ċ import Ġio . reactivex . rx java 3 . core . Observable Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠT v Presenter Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġvar Ġtv Repo : ĠBase Tv Repo , ĊĠĠĠ Ġvar Ġscheduler Provider : ĠBase Scheduler Provider Ċ ) Ġ: ĠPres enter Base < Tv Contract . Tv View >(), ĊĠĠĠ ĠT v Contract . Tv Presenter Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Tv Presenter " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġtv Lists : ĠT v Lists Wrapper ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠgetAll Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtop R ated Movies Observable Ġ= Ġtv Repo . get Top R ated () ĊĠĠĠĠĠĠĠ Ġval Ġpopular Movies Observable Ġ= Ġtv Repo . get Pop ular () ĊĠĠĠĠĠĠĠ Ġval Ġtrend ing Movies Observable Ġ= Ġtv Repo . get Trend ing Per Day () ĊĊĠĠĠĠĠĠĠ ĠObservable . combine Latest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop R ated Movies Observable , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Movies Observable , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrend ing Movies Observable , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġtop R ated : ĠT v Response Result , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular : ĠT v Response Result , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrend ing : ĠT v Response Result Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT v Lists Wrapper ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop R ated Ġ= Ġtop R ated . results , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Ġ= Ġpopular . results , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrend ing Ġ= Ġtrend ing . results ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( scheduler Provider . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. show Loading ProgressBar () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( scheduler Provider . ui ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Tv Lists Received ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. show Load Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" getAll Data (): Ġ", Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Tv Lists Received ( data : ĠT v Lists Wrapper ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtv Lists Ġ= Ġdata ĊĊĠĠĠĠĠĠĠ Ġset Tv Lists ( data ) ĊĊĠĠĠĠĠĠĠ Ġview ?. show Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Tv Lists ( data : ĠT v Lists Wrapper ){ ĊĠĠĠĠĠĠĠ Ġview ?. set Top R ated ( data . top R ated ) ĊĠĠĠĠĠĠĠ Ġview ?. set Pop ular ( data . popular ) ĊĠĠĠĠĠĠĠ Ġview ?. set Trend ing ( data . trend ing ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrefresh All Data () Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġview Is Ready () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tv Lists Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetAll Data () ĊĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Lists ?. let Ġ{ Ġset Tv Lists ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. show Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} Ċ }