package Ġio . app write . services Ċ Ċ import Ġandroid . net . Uri Ċ import Ġio . app write . Client Ċ import Ġio . app write . models .* Ċ import Ġio . app write . exceptions . App write Exception Ċ import Ġokhttp 3 . Cookie Ċ import Ġokhttp 3 . Response Ċ import Ġjava . io . File Ċ Ċ class ĠLocale ( client : ĠClient ) Ġ: ĠService ( client ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet ĠUser ĠLocale ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġcurrent Ġuser Ġlocation Ġbased Ġon ĠIP . ĠReturns Ġan Ġobject Ġwith Ġuser ĊĠĠĠĠ Ġ* Ġcountry Ġcode , Ġcountry Ġname , Ġcontin ent Ġname , Ġcontin ent Ġcode , Ġip Ġaddress Ġand ĊĠĠĠĠ Ġ* Ġsuggested Ġcurrency . ĠYou Ġcan Ġuse Ġthe Ġlocale Ġheader Ġto Ġget Ġthe Ġdata Ġin Ġa ĊĠĠĠĠ Ġ* Ġsupported Ġlanguage . ĊĠĠĠĠ Ġ* ĠĊĠĠĠĠ Ġ* Ġ([ IP ĠGeo location Ġby ĠDB - IP ]( https :// db - ip . com )) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ io . app write . models . Locale ] ĠĠĠĠĠĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Throws ( App write Exception :: class ) ĊĠĠĠ Ġsuspend Ġfun Ġget (): Ġio . app write . models . Locale Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ"/ locale " ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġmutable Map Of < String , ĠAny ? >( ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" content - type " Ġto Ġ" application / json " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconverter : Ġ( Map < String , ĠAny >) Ġ-> Ġio . app write . models . Locale Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . app write . models . Locale . from ( map Ġ= Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . call ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" GET ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Type Ġ= Ġio . app write . models . Locale :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList ĠCont in ents ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠList Ġof Ġall Ġcontin ents . ĠYou Ġcan Ġuse Ġthe Ġlocale Ġheader Ġto Ġget Ġthe Ġdata Ġin Ġa ĊĠĠĠĠ Ġ* Ġsupported Ġlanguage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ io . app write . models . Cont inent List ] ĠĠĠĠĠĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Throws ( App write Exception :: class ) ĊĠĠĠ Ġsuspend Ġfun Ġget Cont in ents (): Ġio . app write . models . Cont inent List Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ"/ locale / cont in ents " ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġmutable Map Of < String , ĠAny ? >( ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" content - type " Ġto Ġ" application / json " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconverter : Ġ( Map < String , ĠAny >) Ġ-> Ġio . app write . models . Cont inent List Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . app write . models . Cont inent List . from ( map Ġ= Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . call ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" GET ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Type Ġ= Ġio . app write . models . Cont inent List :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList ĠCount ries ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠList Ġof Ġall Ġcountries . ĠYou Ġcan Ġuse Ġthe Ġlocale Ġheader Ġto Ġget Ġthe Ġdata Ġin Ġa ĊĠĠĠĠ Ġ* Ġsupported Ġlanguage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ io . app write . models . Country List ] ĠĠĠĠĠĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Throws ( App write Exception :: class ) ĊĠĠĠ Ġsuspend Ġfun Ġget Countries (): Ġio . app write . models . Country List Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ"/ locale / countries " ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġmutable Map Of < String , ĠAny ? >( ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" content - type " Ġto Ġ" application / json " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconverter : Ġ( Map < String , ĠAny >) Ġ-> Ġio . app write . models . Country List Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . app write . models . Country List . from ( map Ġ= Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . call ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" GET ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Type Ġ= Ġio . app write . models . Country List :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList ĠEU ĠCount ries ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠList Ġof Ġall Ġcountries Ġthat Ġare Ġcurrently Ġmembers Ġof Ġthe ĠEU . ĠYou Ġcan Ġuse Ġthe ĊĠĠĠĠ Ġ* Ġlocale Ġheader Ġto Ġget Ġthe Ġdata Ġin Ġa Ġsupported Ġlanguage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ io . app write . models . Country List ] ĠĠĠĠĠĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Throws ( App write Exception :: class ) ĊĠĠĠ Ġsuspend Ġfun Ġget Countries EU (): Ġio . app write . models . Country List Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ"/ locale / countries / eu " ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġmutable Map Of < String , ĠAny ? >( ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" content - type " Ġto Ġ" application / json " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconverter : Ġ( Map < String , ĠAny >) Ġ-> Ġio . app write . models . Country List Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . app write . models . Country List . from ( map Ġ= Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . call ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" GET ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Type Ġ= Ġio . app write . models . Country List :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList ĠCount ries ĠPhone ĠCode s ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠList Ġof Ġall Ġcountries Ġphone Ġcodes . ĠYou Ġcan Ġuse Ġthe Ġlocale Ġheader Ġto Ġget Ġthe ĊĠĠĠĠ Ġ* Ġdata Ġin Ġa Ġsupported Ġlanguage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ io . app write . models . Phone List ] ĠĠĠĠĠĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Throws ( App write Exception :: class ) ĊĠĠĠ Ġsuspend Ġfun Ġget Countries Ph ones (): Ġio . app write . models . Phone List Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ"/ locale / countries / phones " ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġmutable Map Of < String , ĠAny ? >( ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" content - type " Ġto Ġ" application / json " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconverter : Ġ( Map < String , ĠAny >) Ġ-> Ġio . app write . models . Phone List Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . app write . models . Phone List . from ( map Ġ= Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . call ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" GET ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Type Ġ= Ġio . app write . models . Phone List :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList ĠC urrencies ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠList Ġof Ġall Ġc urrencies , Ġincluding Ġcurrency Ġsymbol , Ġname , Ġplural , Ġand ĊĠĠĠĠ Ġ* Ġdecimal Ġdigits Ġfor Ġall Ġmajor Ġand Ġminor Ġc urrencies . ĠYou Ġcan Ġuse Ġthe Ġlocale ĊĠĠĠĠ Ġ* Ġheader Ġto Ġget Ġthe Ġdata Ġin Ġa Ġsupported Ġlanguage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ io . app write . models . Currency List ] ĠĠĠĠĠĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Throws ( App write Exception :: class ) ĊĠĠĠ Ġsuspend Ġfun ĠgetC urrencies (): Ġio . app write . models . Currency List Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ"/ locale / currencies " ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġmutable Map Of < String , ĠAny ? >( ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" content - type " Ġto Ġ" application / json " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconverter : Ġ( Map < String , ĠAny >) Ġ-> Ġio . app write . models . Currency List Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . app write . models . Currency List . from ( map Ġ= Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . call ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" GET ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Type Ġ= Ġio . app write . models . Currency List :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList ĠLanguage s ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠList Ġof Ġall Ġlanguages Ġclass ified Ġby ĠISO Ġ 6 3 9 - 1 Ġincluding Ġ 2 - letter Ġcode , Ġname ĊĠĠĠĠ Ġ* Ġin ĠEnglish , Ġand Ġname Ġin Ġthe Ġrespective Ġlanguage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ io . app write . models . Language List ] ĠĠĠĠĠĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Throws ( App write Exception :: class ) ĊĠĠĠ Ġsuspend Ġfun Ġget Languages (): Ġio . app write . models . Language List Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ"/ locale / languages " ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġmutable Map Of < String , ĠAny ? >( ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" content - type " Ġto Ġ" application / json " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconverter : Ġ( Map < String , ĠAny >) Ġ-> Ġio . app write . models . Language List Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . app write . models . Language List . from ( map Ġ= Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . call ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" GET ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Type Ġ= Ġio . app write . models . Language List :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠĠ Ċ }