package Ġcom . f int ek . utils _ mex ico . location Ċ Ċ import Ġandroid . location . Address Ċ import Ġandroid . location . Geo coder Ċ import Ġandroid . location . Location Ċ import Ġcom . f int ek . utils _ android x . throwable . saf ely Void Ċ import Ġcom . f int ek . utils _ mex ico . F int ek M ex ico Utils Ċ import Ġcom . f int ek . utils _ mex ico . model . M ex ico Address Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠCh ao Sh en Ġon Ġ 2 0 2 1 / 4 / 1 6 Ċ Ġ*/ Ċ object ĠLocation M ex ico Utils Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm oshi Ġ= ĠM oshi . Builder (). build () ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget Address ( latitude : ĠDouble ?, Ġlongitude : ĠDouble ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( latitude Ġ== Ġnull Ġ|| Ġlongitude Ġ== Ġnull ) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġgeo coder Ġ= ĠGeo coder ( F int ek M ex ico Utils . required Application ) ĊĠĠĠĠĠĠĠ Ġsafely Void Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġgeo coder . get From Location ( latitude , Ġlongitude , Ġ 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult [ 0 ]. getAddress Line ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget Address Detail ( latitude : ĠDouble ?, Ġlongitude : ĠDouble ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( latitude Ġ== Ġnull Ġ|| Ġlongitude Ġ== Ġnull ) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġgeo coder Ġ= ĠGeo coder ( F int ek M ex ico Utils . required Application ) ĊĠĠĠĠĠĠĠ Ġsafely Void Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġgeo coder . get From Location ( latitude , Ġlongitude , Ġ 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġaddress Convert ( result . get OrNull ( 0 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget Address Detail ( location : ĠLocation ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( location Ġ== Ġnull ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġget Address Detail ( location . latitude , Ġlocation . longitude ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget Address ( location : ĠLocation ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( location Ġ== Ġnull ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġget Address ( location . latitude , Ġlocation . longitude ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġprivate Ġfun Ġaddress Convert ( address : ĠAddress ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( address Ġ== Ġnull ) Ġreturn Ġ"" ĊĊĠĠĠĠĠĠĠ Ġvar Ġmex ico Address : ĠM ex ico Address ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġsafely Void Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmex ico Address Ġ= ĠM ex ico Address ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Ġ= Ġaddress . getAddress Line ( 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmin Area Ġ= Ġaddress . admin Area , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Code Ġ= Ġaddress . country Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Name Ġ= Ġaddress . country Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeature Name Ġ= Ġaddress . feature Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal ity Ġ= Ġaddress . locality ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( mex ico Address Ġ== Ġnull ) Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġreturn Ġm oshi . adapter ( M ex ico Address :: class . java ). toJson ( mex ico Address ) ĊĠĠĠ Ġ} Ċ }