package Ġcom . al yn va . dr inks . dr inks . scenarios . main Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġcom . al yn va . dr inks . dr inks . database . App Database Ċ import Ġcom . al yn va . dr inks . dr inks . entities . Dr ink Ċ import Ġcom . al yn va . dr inks . dr inks . entities . Dr inks List Ċ import Ġcom . al yn va . dr inks . dr inks . network . Ret rofit In icial izer Ċ import Ġorg . jetbrains . ank o . do Async Ċ import Ġorg . jetbrains . ank o . ui Thread Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ Ċ class ĠMain Presenter ( val Ġview : ĠMain Contract . View ): ĠMain Contract . Presenter Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonLoad List ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdr inks Dao Ġ= ĠApp Database . getInstance ( context ). dr ink Dao () ĊĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdr inks Ġ= Ġdr inks Dao . getAll () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show List ( dr inks ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonUpdate Details ( context : ĠContext , Ġid Dr ink : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . show Loader () ĊĊĠĠĠĠĠĠĠ Ġval Ġdr inks Service Ġ= ĠRet rofit In icial izer (). create Dr inks Service () ĊĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= Ġdr inks Service . get Dr ink ById ( id Dr ink . toString ()) ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < Dr inks List > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Dr inks List > ?, Ġresponse : ĠResponse < Dr inks List > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response ?. body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" presenter Ġ-> Ġview ", Ġ" save Dr ink ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . save Dr ink ( response . body () !!. dr inks [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . showMessage (" O Ġdrink ĠnÃ£o Ġfoi Ġencontr ado .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Dr inks List > ?, Ġt : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . showMessage (" F al ha Ġna Ġconex Ã£o . ĠVer ifique Ġo Ġacesso Ġa Ġinternet .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun ĠonLoad Details ( context : ĠContext , Ġid Dr ink : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ ĠLog . d (" presenter ", Ġ" on Load Details ") ĊĠĠĠĠĠĠĠ Ġview . show Loader () ĊĊĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdr inks Dao Ġ= ĠApp Database . getInstance ( context ). dr ink Dao () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrink Ġ= Ġdr inks Dao . get Dr ink ( id Dr ink ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" presenter Ġ-> Ġview ", Ġ" show Details ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Details ( dr ink ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonLoad Random ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . show Loader () ĊĊĠĠĠĠĠĠĠ Ġval Ġdr inks Service Ġ= ĠRet rofit In icial izer (). create Dr inks Service () ĊĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= Ġdr inks Service . getRandom Dr ink () ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < Dr inks List > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Dr inks List > ?, Ġresponse : ĠResponse < Dr inks List > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response ?. body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" presenter Ġ-> Ġview ", Ġ" save Dr ink ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . save Dr ink ( response . body () !!. dr inks [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . showMessage (" O Ġdrink ĠnÃ£o Ġfoi Ġencontr ado .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Dr inks List > ?, Ġt : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . showMessage (" F al ha Ġna Ġconex Ã£o . ĠVer ifique Ġo Ġacesso Ġa Ġinternet .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ Ċ }