package Ġcom . w uh ao 0 2 8 . poke pedia . view models Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . w uh ao 0 2 8 . poke pedia . data . Pokemon Info Ċ import Ġcom . w uh ao 0 2 8 . poke pedia . data . Pokemon Info Repository Ċ import Ġcom . w uh ao 0 2 8 . poke pedia . data . net . Po ke Network Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠPokemon ViewModel ( ĊĠĠĠ Ġpokemon Info Repository : ĠPokemon Info Repository , ĊĠĠĠ Ġpokemon Id : ĠInt Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġvar Ġpokemon Detail Ġ= ĠMutable LiveData < Pokemon Info >() ĊĊĠĠĠ Ġfun Ġget Pokemon Detail () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpokemon Info Ġ= Ġrequest Weather ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon Detail . value Ġ= Ġrequest Weather ( 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" @@ ", Ġ"@ @ ! @@ Ġ" Ġ+ Ġpokemon Info . name ) ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġrequest Weather ( pokemon Id : ĠInt ) Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpokemon Ġ= ĠPo ke Network . getInstance (). fetch Pokemon ( pokemon Id ) ĊĠĠĠĠĠĠĠ Ġpokemon ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġlaunch ( block : Ġsuspend Ġ() Ġ-> ĠUnit , Ġerror : Ġsuspend Ġ( Throwable ) Ġ-> ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ }