package Ġar . com . wo lox . android . example . ui . home . news . details Ċ Ċ import Ġar . com . wo lox . android . example . model . New Ċ import Ġar . com . wo lox . android . example . network . builder . network Request Ċ import Ġar . com . wo lox . android . example . network . repository . New Repository Ċ import Ġar . com . wo lox . android . example . utils . User Session Ċ import Ġar . com . wo lox . w ol mo . core . presenter . Coroutine Base Presenter Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠNew Details Presenter Ġ@ Inject Ġconstructor ( private Ġval Ġnews Repository : ĠNew Repository , Ġprivate Ġval Ġuser Session : ĠUser Session ) Ġ: ĠCor outine Base Presenter < New Details View >() Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnew : ĠNew ĊĊĠĠĠ Ġprivate Ġvar Ġloading Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. toggle Spinner Visibility ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfetch New Detail ( id : ĠInt ) Ġ= Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠ Ġloading Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġnetwork Request ( news Repository . getNew ( id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Response Successful Ġ{ Ġfetched New Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Ġ= Ġfetched New !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. render New ( new ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Response Failed Ġ{ Ġ_, Ġ_ Ġ-> Ġview ?. show Wrong Credentials Alert () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Call Failure Ġ{ Ġview ?. show No Network Alert () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġloading Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġview ?. disable Swipe Refresh Loader () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Like In New ( new Id : ĠInt ) Ġ= Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠ Ġnetwork Request ( news Repository . update Like ( new Id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Response Successful Ġ{ Ġview ?. show Like New Notification () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Response Failed Ġ{ Ġ_, Ġ_ Ġ-> Ġview ?. show Wrong Credentials Alert () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Call Failure Ġ{ Ġview ?. show No Network Alert () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġuser Has Lik ed New (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġuser Session . id Ġin Ġnew . likes ĊĠĠĠ Ġ} Ċ }