package Ġcom . example . p fs ar . com and čĊč Ċ import Ġandroid . Manifest č Ċ import Ġandroid . annotation . Suppress Lint č Ċ import Ġandroid . content . pm . PackageManager č Ċ import Ġandroid . location . Location č Ċ import Ġandroid . location . Location Listener č Ċ import Ġandroid . location . Location Manager č Ċ import Ġandroid . support . v 7 . app . AppCompatActivity č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . support . v 4 . app . Activity Compat č Ċ import Ġandroid . support . v 4 . content . Context Compat č Ċ import Ġandroid . util . Log č Ċ import Ġandroid . widget . Toast č Ċ import Ġcom . android . vol ley . Request č Ċ import Ġcom . android . vol ley . Request Queue č Ċ import Ġcom . android . vol ley . Response č Ċ import Ġcom . android . vol ley . toolbox . H url Stack č Ċ import Ġcom . android . vol ley . toolbox . String Request č Ċ import Ġcom . android . vol ley . toolbox . Vol ley č Ċ import Ġandroid . R . raw čĊč Ċ import Ġcom . google . android . gms . maps . Google Map č Ċ import Ġcom . google . android . gms . maps . On Map Ready Callback č Ċ import Ġcom . google . android . gms . maps . Support Map Fragment č Ċ import Ġjava . io . InputStream č Ċ import Ġjava . security . Key Management Exception č Ċ import Ġjava . security . KeyStore č Ċ import Ġjava . security . NoSuch AlgorithmException č Ċ import Ġjava . security . cert . Certificate Exception č Ċ import Ġjava . security . cert . X 5 0 9 Certificate č Ċ import Ġjavax . net . ssl .* čĊč Ċ class ĠMaps Activity Ġ: ĠAppCompatActivity (), ĠOn Map Ready Callback Ġ{ čĊčĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Map : ĠGoogle Map čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Request Queue : ĠRequest Queue čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ Ġval Ġpermissions Ġ= ĠarrayOf ( Manifest . permission . ACCESS _ F INE _ LOCATION ) čĊĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( this , Ġpermissions , 0 ) čĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ maps ) čĊĠĠĠĠĠĠĠ Ġ// ĠObtain Ġthe ĠSupport Map Fragment Ġand Ġget Ġnotified Ġwhen Ġthe Ġmap Ġis Ġready Ġto Ġbe Ġused . čĊĠĠĠĠĠĠĠ Ġval Ġmap Fragment Ġ= Ġsupport FragmentManager čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Fragment ById ( R . id . map ) Ġas ĠSupport Map Fragment čĊĠĠĠĠĠĠĠ Ġmap Fragment . getMap Async ( this ) čĊĠĠĠĠĠĠĠ Ġm Request Queue Ġ= ĠVol ley . new Request Queue ( application Context ) čĊĠĠĠĠĠĠĠ ĠUtils . nu ke () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġget Location () Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġvar Ġlocation Manager Ġ= Ġget System Service ( LOCATION _ SERVICE ) Ġas ĠLocation Manager ? čĊčĊĠĠĠĠĠĠĠ Ġvar Ġlocation Listener Ġ= Ġobject Ġ: ĠLocation Listener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Location Changed ( location : ĠLocation ?) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlatitude Ġ= Ġlocation !!. latitude . toString () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlongitude Ġ= Ġlocation !!. longitude . toString () čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude . replace ('.', Ġ'_ '); čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude . replace ('.', Ġ'_ '); čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" test ", Ġ" Lat itute : Ġ$ latitude Ġ; ĠLong itute : Ġ$ longitude ") čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInstantiate Ġthe ĠRequest Queue . čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// rest server . con veyor . cloud / api / watch / Set Lo action / z ib q mp en zd /$ latitude /$ longitude " čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstring Request Ġ= ĠString Request ( Request . Method . GET , Ġurl , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Listener < String > Ġ{ Ġresponse Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" test ", Ġ" Request Ġsent ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Error Listener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" test ", Ġ" Request Ġfail led ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) čĊčĊč ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġthe Ġrequest Ġto Ġthe ĠRequest Queue . čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Request Queue . add ( string Request ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Status Changed ( provider : ĠString ?, Ġstatus : ĠInt , Ġextras : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Provider Enabled ( provider : ĠString ?) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Provider Disabled ( provider : ĠString ?) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Manager !!. request Location Updates ( Location Manager . NETWORK _ PROVIDER , Ġ 0 L , Ġ 0 f , Ġlocation Listener ) čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : Security Exception ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġ" Is uff ent Ġperm sion s !", ĠToast . LENGTH _ SHORT ). show () čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( Context Compat . check Self Permission ( this , ĠManifest . permission . ACCESS _ F INE _ LOCATION ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( Manifest . permission . ACCESS _ F INE _ LOCATION ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPER MISSION _ REQUEST _ ACCESS _ F INE _ LOCATION ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġlocation Manager !!. request Location Updates ( Location Manager . NETWORK _ PROVIDER , Ġ 0 L , Ġ 0 f , Ġlocation Listener ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĠArray < out ĠString >, Ġgrant Results : ĠInt Array ) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) čĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠPER MISSION _ REQUEST _ ACCESS _ F INE _ LOCATION ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( grant Results [ 0 ]) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . PERMISSION _ GRAN TED Ġ-> Ġget Location () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// PackageManager . PERMISSION _ DEN IED Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊčĊĠĠĠ Ġ@ Suppress Lint (" Missing Permission ") čĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( google Map : ĠGoogle Map ) Ġ{ čĊĠĠĠĠĠĠĠ Ġget Location (); čĊĠĠĠĠĠĠĠ Ġm Map Ġ= Ġgoogle Map čĊčĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġa Ġmarker Ġin ĠSy dn ey Ġand Ġmove Ġthe Ġcamera čĊĠĠĠĠĠĠĠ Ġm Map . set My Location Enabled ( true ); čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPER MISSION _ REQUEST _ ACCESS _ F INE _ LOCATION Ġ= Ġ 1 0 0 čĊĠĠĠ Ġ} č Ċ }