package Ġcom . ar ct ouch . code challenge . ui . activity . splash Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġcom . ar ct ouch . code challenge . ui . activity . base . Base Presenter Impl Ċ import Ġcom . jg ab ri elf re itas . infrastructure . HttpResponse Handler Ċ import Ġcom . jg ab ri elf re itas . infrastructure . persistence . cache . Cache Requirements Ċ import Ġcom . jg ab ri elf re itas . infrastructure . persistence . database . Application Database Ċ import Ġcom . jg ab ri elf re itas . infrastructure . persistence . entity . Genre Entity Ċ import Ġcom . jg ab ri elf re itas . infrastructure . service . t mdb . T mdb Service Ċ import Ġcom . jg ab ri elf re itas . models . Genre Ċ import Ġcom . jg ab ri elf re itas . models . Genre Response Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ class ĠSpl ash Presenter Impl ( val Ġsplash View : ĠSpl ash View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt mdb Api ĠĠ Ġ: ĠT mdb Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdatabase Ġ Ġ: ĠApplication Database , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Requirements : ĠCache Requirements ): ĠBase Presenter Impl ( splash View ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSpl ash Presenter , ĠHttpResponse Handler < Genre Response > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġt mdb Api . get Gen res ( this ) ĊĠĠĠĠĠĠĠ Ġsplash View . onStart Search () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive ( response : ĠGen re Response ) Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . from Callable Ġ{ Ġpersist Gen res ( response . genres ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ= Ġsplash View . on Finish Request () ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( throwable : ĠThrowable ?) Ġ= Ġsplash View . onError ( Exception (" wow ")) ĊĊĠĠĠ Ġprivate Ġfun Ġpersist Gen res ( genres : ĠList < Genre >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġg eren Dao Ġ= Ġdatabase . genre Dao () ĊĠĠĠĠĠĠĠ Ġgen res . forEach Ġ{ Ġ Ġg eren Dao . insert ( Genre Entity ( it . id , Ġit . name )) Ġ} ĊĠĠĠĠĠĠĠ Ġcache Requirements . mark As Ok () ĊĠĠĠ Ġ} Ċ }