/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 Ġy uz um one Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġnet . y uz um one . poke portal . fragment Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . location . Location Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Dialog Fragment Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . util . Log Ċ import Ġcom . google . android . gms . common . Connection Result Ċ import Ġcom . google . android . gms . common . api . Google ApiClient Ċ import Ġcom . google . android . gms . location . Location Listener Ċ import Ġcom . google . android . gms . location . Location Request Ċ import Ġcom . google . android . gms . location . Location Services Ċ import Ġnet . y uz um one . poke portal . listener . On Location Ċ Ċ class ĠLocation Fragment Ġ: ĠDialog Fragment (), ĊĠĠĠĠĠĠĠ ĠGoogle ApiClient . Connection Callbacks , ĊĠĠĠĠĠĠĠ ĠGoogle ApiClient . On Connection Failed Listener , ĊĠĠĠĠĠĠĠ ĠLocation Listener Ġ{ ĊĊĠĠĠ Ġval ĠTAG Ġ= Ġ" Location Fragment " ĊĠĠĠ Ġprivate Ġval ĠREQUEST _ LOCATION Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlistener : ĠOn Location ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprogress Dialog : ĠProgress Dialog ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgoogle ApiClient : ĠGoogle ApiClient ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġ! is ĠOn Location ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠClass CastException (" Don 't Ġimplement ĠListener .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlistener Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress Dialog Ġ= ĠProgress Dialog ( activity ) ĊĠĠĠĠĠĠĠ Ġprogress Dialog . setMessage (" Sc anning Ġlocation ") ĊĠĠĠĠĠĠĠ Ġprogress Dialog . set Progress Style ( Progress Dialog . STYLE _ SP INNER ) ĊĠĠĠĠĠĠĠ Ġbuild Google ApiClient () ĊĠĠĠĠĠĠĠ Ġcheck Permission () ĊĠĠĠĠĠĠĠ Ġreturn Ġprogress Dialog ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Permission () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpermission Ġ= ĠContext Compat . check Self Permission ( activity , ĠManifest . permission . ACCESS _ F INE _ LOCATION ) ĊĠĠĠĠĠĠĠ Ġif Ġ( permission Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Permissions ( array Of ( Manifest . permission . ACCESS _ F INE _ LOCATION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION ), ĠREQUEST _ LOCATION ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle ApiClient . connect () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĠArray < out ĠString >, Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠREQUEST _ LOCATION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grant Results [ 0 ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle ApiClient . connect () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized Ġprivate Ġfun Ġbuild Google ApiClient () Ġ{ ĊĠĠĠĠĠĠĠ Ġgoogle ApiClient Ġ= ĠGoogle ApiClient . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Connection Callbacks ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Connection Failed Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Api ( Location Services . API ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Connected ( connection Hint : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Connected ") ĊĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= ĠLocation Services . F used Location Api . getLast Location ( google ApiClient ) ĊĠĠĠĠĠĠĠ Ġif Ġ( location Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . getLocation ( location ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Location Updates () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Location Updates () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠLocation Request ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Location Request . PRIORITY _ HIGH _ AC CUR ACY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Interval ( 1 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Fast est Interval ( 2 0 0 0 ) ĊĠĠĠĠĠĠĠ ĠLocation Services . F used Location Api . request Location Updates ( google ApiClient , Ġrequest , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Location Changed ( location : ĠLocation ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Location Changed ") ĊĠĠĠĠĠĠĠ Ġif Ġ( location Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . getLocation ( location ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocation Services . F used Location Api . remove Location Updates ( google ApiClient , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Connection Sus pended ( cause : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Connection Sus pended ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Connection Failed ( Connection Result : ĠConnection Result ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Connection Failed ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġgoogle ApiClient . disconnect () ĊĠĠĠ Ġ} Ċ }