package Ġcom . example . android dev challenge . ui . main Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . example . android dev challenge . data . models . Weather Ċ import Ġcom . example . android dev challenge . network . Api Builder Ċ import Ġcom . example . android dev challenge . repo . Main Repo Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . lang . Exception Ċ Ċ class ĠMain ViewModel Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġrepo : ĠMain Repo Ġ= ĠMain Repo ( Api Builder . ret rofit Api ) ĊĊĠĠĠ Ġval Ġweather : ĠMutable LiveData < Weather > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠMutable LiveData < Weather >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Weather ( g Location : ĠString ): ĠMutable LiveData < Weather > Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweather . post Value ( repo . get Weather ( g Location )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Get ĠWeather :", Ġex . message . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġweather ĊĠĠĠ Ġ} Ċ }