/**************************************************************************** Ċ Ġ* Ċ Ġ* ĠCreated Ġby Ġmen ion Ġon Ġ 0 7 / 0 2 / 2 0 1 9 . Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠThis Ġfile Ġis Ġpart Ġof Ġthe ĠAs amm Ġteam Ġsoftware . Ċ Ġ* Ċ Ġ* ĠThis Ġfile Ġis Ġprovided ĠAS ĠIS Ġwith ĠNO ĠWARRANTY ĠOF ĠANY ĠKIND , ĠINCLUDING ĠTHE Ċ Ġ* ĠWARRANTY ĠOF ĠDES IGN , ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE . Ċ Ġ* Ċ Ġ************************************************************************* **/ Ċ Ċ package Ġloc us . api . android . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġloc us . api . android . Action Basics Ċ import Ġloc us . api . android . objects . Loc us Version Ċ import Ġloc us . api . android . utils . exceptions . Required Version Missing Exception Ċ import Ġloc us . api . objects . extra . Location Ċ import Ġloc us . api . objects . geo Data . Point Ċ import Ġloc us . api . objects . geo Data . Track Ċ import Ġloc us . api . utils . Logger Ċ Ċ /** Ċ Ġ* ĠMethods Ġuseful Ġfor Ġhandling Ġreceived Ġresults Ġfrom ĠL ocus Ġbased Ġapp . Ċ Ġ*/ Ċ @ Suppress (" unused ", Ġ" Member Visibility Can Be Private ") Ċ object ĠIntent Helper Ġ{ ĊĊĠĠĠ Ġ// Ġtag Ġfor Ġlogger ĊĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Response Helper " ĊĊĠĠĠ Ġ// ************************************************ * ĊĠĠĠ Ġ// ĠMAIN ĠFUNCTIONS ĊĠĠĠ Ġ// ************************************************ * ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġreceived Ġintent Ġis Ġresponse Ġon ĠMAIN _ FUNCTION Ġintent . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true ` Ġif Ġintent Ġis Ġbase Ġon ĠMAIN _ FUNCTION Ġparameter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Intent Main Function ( intent : ĠIntent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Action ( intent , ĠL ocus Const . INT ENT _ ITEM _ MAIN _ FUNCTION ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġreceived Ġintent Ġis Ġresponse Ġon ĠMAIN _ FUNCTION _ GC Ġintent . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true ` Ġif Ġintent Ġis Ġbase Ġon ĠMAIN _ FUNCTION _ GC Ġparameter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Intent Main Function Gc ( intent : ĠIntent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Action ( intent , ĠL ocus Const . INT ENT _ ITEM _ MAIN _ FUNCTION _ GC ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHandle Ġreceived Ġintent Ġfrom Ġsection ĠMAIN _ FUNCTION . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġ Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ param Ġhandler Ġhandler Ġfor Ġevents ĊĠĠĠĠ Ġ* Ġ@ throws ĠNullPointerException Ġexception Ġif Ġany Ġrequired Ġdata Ġare Ġmissing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( NullPointerException :: class ) ĊĠĠĠ Ġfun Ġhandle Intent Main Function ( ctx : ĠContext , Ġintent : ĠIntent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler : ĠOn Intent Received ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhandle Intent General ( ctx , Ġintent , ĠL ocus Const . INT ENT _ ITEM _ MAIN _ FUNCTION , Ġhandler ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHandle Ġreceived Ġintent Ġfrom Ġsection ĠMAIN _ FUNCTION _ GC . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġ Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ param Ġhandler Ġhandler Ġfor Ġevents ĊĠĠĠĠ Ġ* Ġ@ throws ĠNullPointerException Ġexception Ġif Ġany Ġrequired Ġdata Ġare Ġmissing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( NullPointerException :: class ) ĊĠĠĠ Ġfun Ġhandle Intent Main Function Gc ( ctx : ĠContext , Ġintent : ĠIntent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler : ĠOn Intent Received ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhandle Intent General ( ctx , Ġintent , ĠL ocus Const . INT ENT _ ITEM _ MAIN _ FUNCTION _ GC , Ġhandler ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ************************************************ * ĊĠĠĠ Ġ// ĠGET ĠLOC ATION ĠINTENT ĊĠĠĠ Ġ// ************************************************ * ĊĊĠĠĠ Ġ// Ġmore Ġinfo ĊĠĠĠ Ġ// Ġhttps :// github . com / as amm / loc us - api / wiki / App - as - location - source ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġreceived Ġintent Ġis Ġ" Get Ġlocation " Ġrequest . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIn Ġcase Ġof Ġpositive Ġresult , Ġit Ġis Ġnecessary Ġto Ġreturn Ġresult Ġwith Ġvalid Ġlocation Ġobject . ĊĠĠĠĠ Ġ* ĠReceived Ġintent Ġalso Ġcontains Ġuser ĠGPS Ġand ĠMap Ġcenter Ġlocation Ġbundled . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Intent Get Location ( intent : ĠIntent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Action ( intent , ĠL ocus Const . INT ENT _ ITEM _ GET _ LOCATION ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHandle Ġreceived Ġintent Ġfrom Ġsection ĠSEARCH _ LIST . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġ Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ param Ġhandler Ġhandler Ġfor Ġevents ĊĠĠĠĠ Ġ* Ġ@ throws ĠNullPointerException Ġexception Ġif Ġany Ġrequired Ġdata Ġare Ġmissing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( NullPointerException :: class ) ĊĠĠĠ Ġfun Ġhandle Intent Get Location ( ctx : ĠContext , Ġintent : ĠIntent , Ġhandler : ĠOn Intent Received ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhandle Intent General ( ctx , Ġintent , ĠL ocus Const . INT ENT _ ITEM _ GET _ LOCATION , Ġhandler ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġgenerated Ġlocation Ġ" get Ġlocation " Ġrequest . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġact Ġcurrent Ġactivity ĊĠĠĠĠ Ġ* Ġ@ param Ġname Ġoptional Ġname Ġof Ġreceived Ġlocation ĊĠĠĠĠ Ġ* Ġ@ param Ġloc Ġlocation Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsend Get Location Data ( act : ĠActivity , Ġname : ĠString ? Ġ= Ġnull , Ġloc : ĠLocation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġact . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name ?. isNotBlank () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Loc us Const . INT ENT _ EXTRA _ NAME , Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Loc us Const . INT ENT _ EXTRA _ LOCATION , Ġloc . as Bytes ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġact . finish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ************************************************ * ĊĠĠĠ Ġ// ĠPOINT ĠTO OL S ĊĠĠĠ Ġ// ************************************************ * ĊĊĠĠĠ Ġ// Ġmore Ġinfo ĊĠĠĠ Ġ// Ġhttps :// github . com / as amm / loc us - api / wiki / Own - function - in - Point - screen ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġreceived Ġintent Ġis Ġresult Ġof Ġ" Point Ġtools " Ġclick . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Intent Point Tools ( intent : ĠIntent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Action ( intent , ĠL ocus Const . INT ENT _ ITEM _ POINT _ TOOLS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ************************************************ * ĊĠĠĠ Ġ// ĠPOINT S ĠTO OL S ĊĠĠĠ Ġ// ************************************************ * ĊĊĠĠĠ Ġ// Ġmore Ġinfo ĊĠĠĠ Ġ// Ġhttps :// github . com / as amm / loc us - api / wiki / Own - function - in - Points - screen ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġreceived Ġintent Ġis Ġresult Ġof Ġ" Points Ġtools " Ġclick . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Intent Points Tools ( intent : ĠIntent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Action ( intent , ĠL ocus Const . INT ENT _ ITEM _ POINTS _ SCREEN _ TOOLS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ************************************************ * ĊĠĠĠ Ġ// ĠTR ACK ĠTO OL S ĊĠĠĠ Ġ// ************************************************ * ĊĊĠĠĠ Ġ// Ġmore Ġinfo ĊĠĠĠ Ġ// Ġhttps :// github . com / as amm / loc us - api / wiki / Own - function - in - Track - screen ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġreceived Ġintent Ġis Ġresult Ġof Ġ" Track Ġtools " Ġclick . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Intent Track Tools ( intent : ĠIntent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Action ( intent , ĠL ocus Const . INT ENT _ ITEM _ TRACK _ TOOLS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ************************************************ * ĊĠĠĠ Ġ// ĠSEARCH ĠSCREEN ĊĠĠĠ Ġ// ************************************************ * ĊĊĠĠĠ Ġ// Ġmore Ġinfo ĊĠĠĠ Ġ// Ġhttps :// github . com / as amm / loc us - api / wiki / App - as - Search - source ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġreceived Ġintent Ġis Ġresponse Ġon ĠSEARCH _ LIST Ġintent . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true ` Ġif Ġintent Ġis Ġbase Ġon ĠSEARCH _ LIST Ġparameter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Intent Search List ( intent : ĠIntent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Action ( intent , ĠL ocus Const . INT ENT _ ITEM _ SEARCH _ LIST ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHandle Ġreceived Ġintent Ġfrom Ġsection ĠSEARCH _ LIST . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġ Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ param Ġhandler Ġhandler Ġfor Ġevents ĊĠĠĠĠ Ġ* Ġ@ throws ĠNullPointerException Ġexception Ġif Ġany Ġrequired Ġdata Ġare Ġmissing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( NullPointerException :: class ) ĊĠĠĠ Ġfun Ġhandle Intent Search List ( ctx : ĠContext , Ġintent : ĠIntent , Ġhandler : ĠOn Intent Received ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhandle Intent General ( ctx , Ġintent , ĠL ocus Const . INT ENT _ ITEM _ SEARCH _ LIST , Ġhandler ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ************************************************ * ĊĠĠĠ Ġ// ĠP ICK ĠLOC ATION ĊĠĠĠ Ġ// ************************************************ * ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġreceived Ġintent Ġis Ġresult Ġof Ġ" Get Ġlocation " Ġrequest . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true Â· Ġif Ġthis Ġis Ġexpected Ġresult ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Intent Receive Location ( intent : ĠIntent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Action ( intent , ĠL ocus Const . ACTION _ RECEIVE _ LOCATION ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ************************************************ * ĊĠĠĠ Ġ// ĠGENER AL ĠINTENT ĠHAND LER ĊĠĠĠ Ġ// ************************************************ * ĊĊĠĠĠ Ġ@ Throws ( NullPointerException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġhandle Intent General ( ctx : ĠContext , Ġintent : ĠIntent , Ġaction : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler : ĠOn Intent Received ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġcheck Ġintent Ġitself ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Action ( intent , Ġaction )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . on Failed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġget Ġversion Ġand Ġhandle Ġreceived Ġdata ĊĠĠĠĠĠĠĠ ĠL ocus Utils . create Loc us Version ( ctx , Ġintent )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . on Received ( it , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Location From Intent ( intent , ĠL ocus Const . INT ENT _ EXTRA _ LOCATION _ GPS ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Location From Intent ( intent , ĠL ocus Const . INT ENT _ EXTRA _ LOCATION _ MAP _ CENTER )) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . on Failed () ĊĠĠĠĠĠĠĠ Ġ} () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReceiver Ġfor Ġbasic Ġintent s . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠOn Intent Received Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWhen Ġintent Ġreally Ġcontain Ġlocation , Ġresult Ġis Ġreturned Ġby Ġthis Ġfunction ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġlv ĠĠĠĠĠĠĠĠĠĠ Ġversion Ġof ĠL ocus ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġloc G ps ĠĠĠĠĠĠ Ġif Ġgps Enabled Ġis Ġtrue , Ġvariable Ġcontain Ġlocation , Ġotherwise Ġ` null ` ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġloc Map Center Ġcontain Ġcurrent Ġmap Ġcenter Ġlocation ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġon Received ( lv : ĠL ocus Version , Ġloc G ps : ĠLocation ?, Ġloc Map Center : ĠLocation ?) ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Failed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ************************************************ * ĊĠĠĠ Ġ// ĠHAND Y ĠFUNCTIONS ĊĠĠĠ Ġ// ************************************************ * ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġreceived Ġintent Ġcontains Ġrequired Ġaction . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ param Ġaction Ġaction Ġthat Ġwe Ġexpect ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true ` Ġif Ġintent Ġis Ġvalid Ġand Ġcontains Ġrequired Ġaction ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Action ( intent : ĠIntent , Ġaction : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġintent . action ?. equals ( action ) Ġ== Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet ĠID Ġof Ġitem Ġsend Ġover Ġintent Ġcontainer . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ return ĠID Ġof Ġitem Ġor Ġ`- 1 ` Ġif Ġno ĠID Ġis Ġdefined ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetItem Id ( intent : ĠIntent ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġintent . getLong Extra ( Loc us Const . INT ENT _ EXTRA _ ITEM _ ID , Ġ- 1 L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġlist Ġof ĠIDs Ġregistered Ġin Ġintent Ġcontainer . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ return ĠID Ġof Ġitems Ġor Ġ` null ` Ġif Ġno ĠIDs Ġare Ġdefined ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Items Id ( intent : ĠIntent ): ĠLong Array ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . has Extra ( Loc us Const . INT ENT _ EXTRA _ ITEMS _ ID )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġintent . getLong Array Extra ( Loc us Const . INT ENT _ EXTRA _ ITEMS _ ID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġlocation Ġobject Ġfrom Ġreceived Ġintent . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent ĠĠĠ Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ param Ġkey Ġname Ġof Ġ' extra ' Ġunder Ġwhich Ġshould Ġbe Ġlocation Ġstored Ġin Ġintent ĊĠĠĠĠ Ġ* Ġ@ return Ġlocation Ġfrom Ġintent Ġor Ġ' null ' Ġif Ġintent Ġhas Ġno Ġlocation Ġattached ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Location From Intent ( intent : ĠIntent , Ġkey : ĠString ): ĠLocation ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġcheck Ġif Ġintent Ġhas Ġrequired Ġextra Ġparameter ĊĠĠĠĠĠĠĠ Ġif Ġ(! intent . has Extra ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġconvert Ġdata Ġto Ġvalid ĠLocation Ġobject ĊĠĠĠĠĠĠĠ Ġreturn ĠLocation (). apply Ġ{ Ġread ( intent . get ByteArray Extra ( key )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAttach Ġpoint Ġinto Ġintent , Ġthat Ġmay Ġbe Ġsend Ġto ĠL ocus Ġapplication . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġcreated Ġintent Ġcontainer ĊĠĠĠĠ Ġ* Ġ@ param Ġpt ĠĠĠ Ġpoint Ġto Ġattach ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Point To Intent ( intent : ĠIntent , Ġpt : ĠPoint ) Ġ{ ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Loc us Const . INT ENT _ EXTRA _ POINT , Ġpt . as Bytes ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoad Ġfull Ġpoint Ġfrom Ġreceived Ġ" Point Ġintent " Ġ> Ġintent Ġthat Ġcontains Ġpoint Id Ġor Ġfull Ġpoint . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġctx Ġcurrent Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ return Ġloaded Ġpoint Ġobject Ġor Ġ` null ` Ġin Ġcase Ġof Ġany Ġproblem ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Required Version Missing Exception :: class ) ĊĠĠĠ Ġfun Ġget Point From Intent ( ctx : ĠContext , Ġintent : ĠIntent ): ĠPoint ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtry Ġto Ġload Ġpoint Ġbased Ġon Ġit 's ĠID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpt Id Ġ= ĠgetItem Id ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pt Id Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL ocus Utils . create Loc us Version ( ctx , Ġintent )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAction Basics . get Point ( ctx , Ġit , Ġpt Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtry Ġload Ġfull Ġincluded Ġpoint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( intent . has Extra ( Loc us Const . INT ENT _ EXTRA _ POINT )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPoint (). apply Ġ{ Ġread ( intent . get ByteArray Extra ( Loc us Const . INT ENT _ EXTRA _ POINT )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . log E ( TAG , Ġ" get Point From Intent ($ intent )", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet ĠID Ġof Ġpoints Ġdefined Ġin Ġintent . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof Ġpoints ĠID Ġor Ġnull Ġif Ġno ĠIDs Ġare Ġdefined ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Points From Intent ( intent : ĠIntent ): ĠLong Array ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Items Id ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoad Ġfull Ġtrack Ġfrom Ġreceived Ġ" Track Ġintent " Ġ> Ġintent Ġthat Ġcontains Ġtrack Id . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġctx Ġcurrent Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġintent Ġreceived Ġintent ĊĠĠĠĠ Ġ* Ġ@ return Ġloaded Ġtrack Ġobject Ġor Ġ` null ` Ġin Ġcase Ġof Ġany Ġproblem ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Required Version Missing Exception :: class ) ĊĠĠĠ Ġfun Ġget Track From Intent ( ctx : ĠContext , Ġintent : ĠIntent ): ĠTrack ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtrack Id Ġ= ĠgetItem Id ( intent ) ĊĠĠĠĠĠĠĠ Ġif Ġ( track Id Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠL ocus Utils . create Loc us Version ( ctx , Ġintent )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAction Basics . get Track ( ctx , Ġit , Ġtrack Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLogger . log D ( TAG , Ġ" handle Intent Track Tools ($ ctx , Ġ$ intent ), Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" unable Ġto Ġobtain Ġtrack Ġ$ track Id ") ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ }