package Ġcom . gmail . e amos se . imdb . ui . home Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . Toast Ċ import Ġcom . gmail . e amos se . idb data . data . Category Ċ import Ġcom . gmail . e amos se . idb data . data . Movie Ċ import Ġcom . gmail . e amos se . idb data . data . Token Ċ import Ġcom . gmail . e amos se . idb data . repository . Movie Repository Ċ import Ġcom . gmail . e amos se . idb data . utils . Result Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġandroid . icu . lang . U Character . G rap heme Cluster Break . T Ċ import Ġandroidx . lifecycle .* Ċ import Ġkotlinx . coroutines . delay ĊĊ Ċ class ĠHome ViewModel ( private Ġval Ġrepository : ĠMovie Repository ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ token : ĠMutable LiveData < Token > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġval Ġtoken : ĠLive Data < Token > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ token ĊĊĠĠĠ Ġprivate Ġval Ġ_ categories : ĠMutable LiveData < List < Category >> Ġ= ĠMutable LiveData () ĊĠĠĠ Ġval Ġcategories : ĠLive Data < List < Category >> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ categories ĊĊĠĠĠ Ġprivate Ġval Ġ_ dis covers : ĠMutable LiveData < List < Movie >> Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠMutable LiveData < List < Movie >>() ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġdiscover s : ĠLive Data < List < Movie >> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ dis covers ĊĊĠĠĠ Ġprivate Ġval Ġ_ mutable Show Sh im mer Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġshow Sh im mer : ĠMutable LiveData < Boolean > Ġ= Ġ_ mutable Show Sh im mer ĊĊĠĠĠ Ġprivate Ġval Ġ_ show ProgressBar Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġshow ProgressBar : ĠMutable LiveData < Boolean > Ġ= Ġ_ show ProgressBar ĊĊĠĠĠ Ġprivate Ġval Ġ_ error : ĠMutable LiveData < String > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġval Ġerror : ĠLive Data < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ error ĊĊĠĠĠ Ġvar Ġpage Number Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġvar Ġdiscover s Array Ġ= Ġempty List < Movie >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ show ProgressBar . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ_ mutable Show Sh im mer . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġresult Ġ= Ġrepository . getToken ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Suc ces Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ token . post Value ( result . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstop Sh im mer () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ error . post Value ( result . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Categories () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġresult Ġ= Ġrepository . getC ategories ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Suc ces Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ categories . post Value ( result . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ error . post Value ( result . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Discover ( genre _ id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ show ProgressBar . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġresult Ġ= Ġrepository . get Discover ( genre _ id , Ġpage Number )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Suc ces Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiscover s Array Ġ= Ġdiscover s Array Ġ+ Ġresult . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ dis covers . post Value ( dis covers Array ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ error . post Value ( result . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Sh im mer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop ProgressBar () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop ProgressBar () Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ show ProgressBar . value Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop Sh im mer () Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ mutable Show Sh im mer . value Ġ= Ġfalse ĊĠĠĠ Ġ} Ċ Ċ }