package Ġcom . app . my tax i . utils . common Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . location . Geo coder Ċ import Ġcom . app . my tax i . data . model . Area Ċ import Ġcom . app . my tax i . utils . log . Logger Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . util . Locale . GER MAN Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠA jay ĠDeep ak Ġon Ġ 2 6 - 1 1 - 2 0 1 9 , Ġ 1 8 : 0 0 Ċ Ġ*/ Ċ Ċ class ĠGeo Location ( context : ĠContext ) Ġ{ ĊĊĊĠĠĠ Ġfun Ġget Location ( coordinates : ĠArea . Coordinates ) Ġ= ĊĠĠĠĠĠĠĠ ĠSingle . just ( locality ( coordinates )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Return Item ( null ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// . blocking Get () ĊĊĊĊĊĠĠĠ Ġ/* suspend Ġfun Ġget Location ( coordinates : ĠArea . Coordinates ): ĠString Ġ Ġ= ĊĊĠĠĠĠĠĠĠ ĠCor outine Scope Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context () ĊĊĠĠĠĠ Ġval Ġlocation Ġ= Ġ{ Ġlocal ity ( coordinates ) Ġ} ĊĠĠĠ Ġ}*/ ĊĊĠĠĠ Ġ// fun ĠgetData ( string : ĠString ): ĠString Ġ= Ġstring ĊĊĠĠĠ Ġprivate Ġ Ġval Ġgeo coder Ġ= ĠGeo coder ( context , ĠG ER MAN ) ĊĊĠĠĠ Ġfun Ġlocal ity ( coordinates : ĠArea . Coordinates ) Ġ= ĊĊĠĠĠĠĠĠĠĠ Ġgeo coder . get From Location ( coordinates . latitude , Ġcoordinates . long tit ue , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( 0 ). sub Local ity Ċ Ċ } ĊĊĊĊ