package Ġcom . plan radar . data . datasource . weather . impl Ċ Ċ import Ġcom . plan radar . data . datasource . weather . Remote Weather DataSource Ċ import Ġcom . plan radar . data . models . City Ċ import Ġcom . plan radar . data . models . Weather Ċ import Ġcom . plan radar . data . network . Api Ċ import Ġkotlinx . coroutines . Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . flow Ċ import Ġkotlinx . coroutines . flow . flow On Ċ import Ġjava . util .* Ċ import Ġkotlin . math . round ToInt Ċ Ċ private Ġconst Ġval ĠTAG Ġ= Ġ" Remote Weather DataSource " Ċ Ċ internal Ġclass ĠRemote Weather DataSource Impl ( ĊĠĠĠ Ġprivate Ġval Ġapi : ĠApi , ĊĠĠĠ Ġprivate Ġval Ġapi Id : ĠString , ĊĠĠĠ Ġprivate Ġval Ġdispatcher : ĠCor outine Dispatcher Ġ= ĠDispatch ers . IO Ċ ) Ġ: ĠRemote Weather DataSource Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Weather ( city : ĠCity ): ĠFlow < Weather > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġflow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweather Response Ġ= Ġapi . get City Weather ( city . name , Ġapi Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeather ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Id Ġ= Ġcity . id !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Name Ġ= Ġcity . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Name Ġ= Ġcity . country , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= ĠDate (). time , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġweather Response . weather Descriptions [ 0 ]. description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Id Ġ= Ġweather Response . weather Descriptions [ 0 ]. icon Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Ġ= Ġfrom Kel vin To C els ius ( weather Response . weather Info . temp ), // ĠConvert Ġit Ġto Ġc els ius ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhum idity Ġ= Ġweather Response . weather Info . humidity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwind Speed Ġ= Ġweather Response . wind Info . speed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. flow On ( dispatcher ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġfrom Kel vin To C els ius ( k : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ(( k Ġ- Ġ 2 7 3 . 1 5 ) Ġ* Ġ 1 0 0 ). round ToInt () Ġ/ Ġ 1 0 0 . 0 ĊĠĠĠ Ġ} Ċ Ċ }