package Ġcom . pat lo ew . co location Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Sender Ċ import Ġandroid . location . Location Ċ import Ġandroidx . annotation . Requires Permission Ċ import Ġcom . pat lo ew . co location . request . Location Request Ċ import Ġcom . pat lo ew . co location . request . Location Settings Request Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . channels . Channel Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlin . reflect . full . primary Constructor Ċ Ċ /* ĠCopyright Ġ 2 0 2 0 ĠPat rick ĠL Ã¶ wen stein Ċ Ġ* Ċ Ġ* Ġ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 . Ġ*/ Ċ Ċ /** Ċ Ġ* ĠCo Location Ġwraps Ġ[ F used Location Provider Client ] Ġand Ġ[ Settings Client ] Ġin ĠKotlin Ġcor outines Ġand Ġ[ Flow ]. Ċ Ġ*/ Ċ interface ĠCo Location Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( context : ĠContext ): ĠCo Location Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġco Location G ms Ġ= Ġget G ms Implementation ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( co Location G ms Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġco Location G ms ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġco Location H ms Ġ= Ġget H ms Implementation ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( co Location H ms Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġco Location H ms ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException ( Ġ" Can 't Ġfind Ġsupported Ġplatform , Ġmake Ġsure Ġto Ġinclude Ġone Ġof Ġthe Ġnext Ġartifacts :" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" Ġ': google ', Ġor Ġ': hu awei '") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget G ms Implementation Ġ( context : ĠContext ): ĠCo Location ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg ms Class Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass . forName (" com . pat lo ew . co location . google . Co Location G ms "). kotlin ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġg ms Class . primary Constructor ?. call ( context ) Ġas ? ĠCo Location ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget H ms Implementation Ġ( context : ĠContext ): ĠCo Location ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh ms Class Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass . forName (" com . pat lo ew . co location . hu awei . Co Location H ms "). kotlin ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġh ms Class . primary Constructor !!. call ( context ) Ġas ĠCo Location ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFl ushes Ġany Ġlocations Ġcurrently Ġbeing Ġb atched Ġand Ġsends Ġthem Ġto Ġall Ġregistered Ġlisteners . ĠThis Ġcall Ġis Ġonly ĊĠĠĠĠ Ġ* Ġuseful Ġwhen Ġbatch ing Ġis Ġspecified Ġusing Ġset Max Wait Time ( long ), Ġotherwise Ġlocations Ġare Ġalready Ġdelivered ĊĠĠĠĠ Ġ* Ġimmediately Ġwhen Ġavailable . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠWhen Ġthis Ġreturns , Ġthen Ġyou Ġcan Ġassume Ġthat Ġany Ġpending Ġb atched Ġlocations Ġhave Ġalready Ġbeen Ġdelivered . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġflush Locations () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġavailability Ġof Ġlocation Ġdata . ĠWhen Ġis Location Available () Ġreturns Ġtrue , Ġthen Ġthe Ġlocation Ġreturned ĊĠĠĠĠ Ġ* Ġby ĠgetLast Location () Ġwill Ġbe Ġreason ably Ġup Ġto Ġdate Ġwithin Ġthe Ġhints Ġspecified Ġby Ġthe Ġactive ĠLocation Requests . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġthe Ġclient Ġisn 't Ġconnected Ġto ĠGoogle / Hu awei Ġmobile Ġservices Ġand Ġthe Ġrequest Ġtimes Ġout , Ġnull Ġis Ġreturned . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠNote Ġit 's Ġalways Ġpossible Ġfor ĠgetLast Location () Ġto Ġreturn Ġnull Ġeven Ġwhen Ġthis Ġmethod Ġreturns Ġtrue ĊĠĠĠĠ Ġ* Ġ( e . g . Ġlocation Ġsettings Ġwere Ġdisabled Ġbetween Ġcalls ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Requires Permission ( any Of Ġ= Ġ[ Manifest . permission . ACCESS _ CO AR SE _ LOCATION , ĠManifest . permission . ACCESS _ F INE _ LOCATION ]) ĊĠĠĠ Ġsuspend Ġfun Ġis Location Available (): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġsingle Ġcurrent Ġlocation Ġfix Ġon Ġthe Ġdevice . ĠUn like Ġ[ getLast Location ()] Ġthat Ġreturns Ġa Ġcached Ġlocation , ĊĠĠĠĠ Ġ* Ġthis Ġmethod Ġcould Ġcause Ġactive Ġlocation Ġcomputation Ġon Ġthe Ġdevice . ĠA Ġsingle Ġfresh Ġlocation Ġwill Ġbe Ġreturned Ġif ĊĠĠĠĠ Ġ* Ġthe Ġdevice Ġlocation Ġcan Ġbe Ġdetermined Ġwithin Ġreasonable Ġtime Ġ( t ens Ġof Ġseconds ), Ġotherwise Ġnull Ġwill Ġbe Ġreturned . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġmay Ġreturn Ġlocations Ġthat Ġare Ġa Ġfew Ġseconds Ġold , Ġbut Ġnever Ġreturns Ġmuch Ġolder Ġlocations . ĠThis Ġis ĊĠĠĠĠ Ġ* Ġsuitable Ġfor Ġforeground Ġapplications Ġthat Ġneed Ġa Ġsingle Ġfresh Ġcurrent Ġlocation . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠBackground Ġapps Ġcalling Ġthis Ġmethod Ġwill Ġbe Ġth rott led Ġunder Ġbackground Ġlocation Ġlimits , Ġso Ġbackground Ġapps Ġmay ĊĠĠĠĠ Ġ* Ġfind Ġthe Ġmethod Ġreturns Ġnull Ġlocations Ġmore Ġoften . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAlways Ġreturns Ġnull Ġwhen ĠH MS Ġprovider Ġis Ġused Ġ( no Ġsuch Ġmethod Ġin ĠH MS Ġlocation Ġprovider ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġpriority ĠOne Ġthe ĠPR I ORITY _* Ġin Ġ[ Location Request ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Requires Permission ( any Of Ġ= Ġ[ Manifest . permission . ACCESS _ CO AR SE _ LOCATION , ĠManifest . permission . ACCESS _ F INE _ LOCATION ]) ĊĠĠĠ Ġsuspend Ġfun ĠgetCurrent Location ( priority : ĠInt ): ĠLocation ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġbest Ġmost Ġrecent Ġlocation Ġcurrently Ġavailable . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġa Ġlocation Ġis Ġnot Ġavailable , Ġwhich Ġshould Ġhappen Ġvery Ġrare ly , Ġnull Ġwill Ġbe Ġreturned . ĠThe Ġbest Ġaccuracy ĊĠĠĠĠ Ġ* Ġavailable Ġwhile Ġrespect ing Ġthe Ġlocation Ġpermissions Ġwill Ġbe Ġreturned . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġprovides Ġa Ġsimplified Ġway Ġto Ġget Ġlocation . ĠIt Ġis Ġparticularly Ġwell Ġsuit ed Ġfor Ġapplications Ġthat Ġdo ĊĠĠĠĠ Ġ* Ġnot Ġrequire Ġan Ġaccurate Ġlocation Ġand Ġthat Ġdo Ġnot Ġwant Ġto Ġmaintain Ġextra Ġlogic Ġfor Ġlocation Ġupdates . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Requires Permission ( any Of Ġ= Ġ[ Manifest . permission . ACCESS _ CO AR SE _ LOCATION , ĠManifest . permission . ACCESS _ F INE _ LOCATION ]) ĊĠĠĠ Ġsuspend Ġfun ĠgetLast Location (): ĠLocation ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRequests Ġa Ġsingle Ġlocation Ġupdate . ĠThis Ġis Ġa Ġconvenience Ġfun Ġwhich Ġcan Ġbe Ġused Ġinstead Ġof Ġ[ getLocation Updates ] ĊĠĠĠĠ Ġ* Ġif Ġonly Ġone Ġupdate Ġis Ġneeded Ġand Ġ[ getLast Location ] Ġis Ġnot Ġsufficient . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcall Ġwill Ġkeep Ġthe ĠGoogle / Hu awei Ġmobile Ġservices Ġconnection Ġactive , Ġuntil Ġthe Ġcoroutine Ġis Ġcancelled Ġor Ġthe Ġlocation ĊĠĠĠĠ Ġ* Ġupdate Ġwas Ġreturned . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Requires Permission ( any Of Ġ= Ġ[ Manifest . permission . ACCESS _ CO AR SE _ LOCATION , ĠManifest . permission . ACCESS _ F INE _ LOCATION ]) ĊĠĠĠ Ġsuspend Ġfun Ġget Location Update ( location Request : ĠLocation Request ): ĠLocation ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRequests Ġlocation Ġupdates . ĠThis Ġmethod Ġis Ġsuit ed Ġfor Ġthe Ġforeground Ġuse Ġcases . ĠFor Ġbackground Ġuse Ġcases , Ġthe ĊĠĠĠĠ Ġ* ĠPending Intent Ġversion Ġof Ġthe Ġmethod Ġis Ġrecommended , Ġsee Ġrequest Location Updates ( Location Request , ĠPending Intent ). ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcall Ġwill Ġkeep Ġthe ĠGoogle / Hu awei Ġmobile Ġservices Ġconnection Ġactive , Ġuntil Ġthe Ġcoroutine Ġis Ġcancelled Ġor Ġthe Ġmaximum ĊĠĠĠĠ Ġ* Ġnumber Ġof Ġupdates Ġthat Ġare Ġrequested Ġvia Ġ[ Location Request . num Updates ] Ġare Ġdelivered . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcapacity Ġtype / capacity Ġof Ġthe Ġbuffer Ġbetween Ġcor outines . ĠAllowed Ġvalues Ġare Ġthe Ġsame Ġas Ġin Ġ` Channel (... )` ĊĠĠĠĠ Ġ* Ġfactory Ġfunction : Ġ[ BUFFER ED ][ Channel . BUFFER ED ], Ġ[ CON FL ATED ][ Channel . CON FL ATED ] Ġ( by Ġdefault ), ĊĠĠĠĠ Ġ* Ġ[ REN DE Z VO US ][ Channel . REN DE Z VO US ], Ġ[ UN LIMIT ED ][ Channel . UN LIMIT ED ] Ġor Ġa Ġnon - negative Ġvalue Ġindicating Ġan ĊĠĠĠĠ Ġ* Ġexplicitly Ġrequested Ġsize . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġ@ Requires Permission ( any Of Ġ= Ġ[ Manifest . permission . ACCESS _ CO AR SE _ LOCATION , ĠManifest . permission . ACCESS _ F INE _ LOCATION ]) ĊĠĠĠ Ġfun Ġget Location Updates ( ĊĠĠĠĠĠĠĠ Ġlocation Request : ĠLocation Request , ĊĠĠĠĠĠĠĠ Ġcapacity : ĠInt Ġ= ĠChannel . CON FL ATED ĊĠĠĠ Ġ): ĠFlow < Location > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġmock Ġlocation Ġto Ġbe Ġused Ġfor Ġthe Ġlocation Ġprovider . ĠThis Ġlocation Ġwill Ġbe Ġused Ġin Ġplace Ġof Ġany Ġactual ĊĠĠĠĠ Ġ* Ġlocations Ġfrom Ġthe Ġunderlying Ġproviders Ġ( network Ġor Ġgps ). ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġset Mock Mode ( boolean ) Ġmust Ġbe Ġcalled Ġand Ġset Ġto Ġtrue Ġprior Ġto Ġcalling Ġthis Ġmethod . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠCare Ġshould Ġbe Ġtaken Ġin Ġspecifying Ġthe Ġtimestamps Ġas Ġmany Ġapplications Ġrequire Ġthem Ġto Ġbe Ġmon oton ically ĊĠĠĠĠ Ġ* Ġincreasing . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Requires Permission ( any Of Ġ= Ġ[ Manifest . permission . ACCESS _ CO AR SE _ LOCATION , ĠManifest . permission . ACCESS _ F INE _ LOCATION ]) ĊĠĠĠ Ġsuspend Ġfun Ġset Mock Location ( location : ĠLocation ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġwhether Ġor Ġnot Ġthe Ġlocation Ġprovider Ġis Ġin Ġmock Ġmode . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġunderlying Ġproviders Ġ( network Ġand Ġgps ) Ġwill Ġbe Ġstopped Ġ( except Ġby Ġdirect ĠLocation Manager Ġaccess ), Ġand Ġonly ĊĠĠĠĠ Ġ* Ġlocations Ġspecified Ġin Ġset Mock Location ( Location ) Ġwill Ġbe Ġreported . ĠThis Ġwill Ġeffect Ġall Ġlocation Ġclients ĊĠĠĠĠ Ġ* Ġconnected Ġusing Ġthe ĠF used Location Provider Api , Ġincluding Ġge of encer Ġclients Ġ( i . e . Ġge of ences Ġcan Ġbe Ġtriggered Ġbased ĊĠĠĠĠ Ġ* Ġon Ġmock Ġlocations ). ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġclient Ġmust Ġremain Ġconnected Ġin Ġorder Ġfor Ġmock Ġmode Ġto Ġremain Ġactive . ĠIf Ġthe Ġclient Ġdies Ġthe Ġsystem Ġwill ĊĠĠĠĠ Ġ* Ġreturn Ġto Ġits Ġnormal Ġstate . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠCalls Ġare Ġnot Ġnested , Ġand Ġmock Ġmode Ġwill Ġbe Ġset Ġdirectly Ġregardless Ġof Ġprevious Ġcalls . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Requires Permission ( any Of Ġ= Ġ[ Manifest . permission . ACCESS _ CO AR SE _ LOCATION , ĠManifest . permission . ACCESS _ F INE _ LOCATION ]) ĊĠĠĠ Ġsuspend Ġfun Ġset Mock Mode ( is Mock Mode : ĠBoolean ) ĊĊĠĠĠ Ġ/** ĠChecks Ġif Ġthe Ġrelevant Ġsystem Ġsettings Ġare Ġenabled Ġon Ġthe Ġdevice Ġto Ġcarry Ġout Ġthe Ġdesired Ġlocation Ġrequests . Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġcheck Location Settings ( location Settings Request : ĠLocation Settings Request ): ĠSettings Result ĊĊĠĠĠ Ġ/** ĠChecks Ġif Ġthe Ġrelevant Ġsystem Ġsettings Ġare Ġenabled Ġon Ġthe Ġdevice Ġto Ġcarry Ġout Ġthe Ġdesired Ġlocation Ġrequest . Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġcheck Location Settings ( location Request : ĠLocation Request ): ĠSettings Result ĊĊĠĠĠ Ġ/** ĠResult Ġfrom Ġa Ġcall Ġto Ġ[ Co Location . check Location Settings ]. Ġ*/ ĊĠĠĠ Ġsealed Ġclass ĠSettings Result Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĠLocation Ġsettings Ġare Ġsatisfied . Ġ*/ ĊĠĠĠĠĠĠĠ Ġobject ĠS atisf ied Ġ: ĠSettings Result () ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠLocation Ġsettings Ġare Ġnot Ġsatisfied , Ġbut Ġthis Ġcan Ġbe Ġfixed Ġby Ġshowing Ġthe Ġuser Ġa Ġdialog . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠĠĠĠ Ġresol vable . resolve ( activity , ĠREQUEST _ CODE _ SETTINGS ) ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġabstract Ġclass ĠRes olvable ( open Ġval Ġexception : ĠException ) Ġ: ĠSettings Result () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠShow Ġthe Ġdialog Ġto Ġthe Ġuser . ĠThe ĠActivity 's Ġon Activity Result Ġmethod Ġwill Ġbe Ġinvoked Ġafter Ġthe Ġuser Ġis ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġdone . ĠIf Ġthe ĠresultCode Ġis ĠRESULT _ OK , Ġthe Ġlocation Ġsettings Ġare Ġnow Ġsatisfied . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġresolve ( activity : ĠActivity , Ġrequest Code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Resolution For Result ( activity , Ġrequest Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( send Ex : ĠIntent Sender . Send Intent Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIgnore Ġthe Ġerror . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġabstract Ġfun Ġstart Resolution For Result ( activity : ĠActivity , Ġrequest Code : ĠInt ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġabstract Ġfun Ġget Resolution (): ĠPending Intent ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠSpecific Ġfor ĠH MS ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġabstract Ġfun Ġget Resolution Intent (): ĠIntent ? ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĠLocation Ġsettings Ġare Ġnot Ġsatisfied Ġand Ġthis Ġcan 't Ġbe Ġfixed Ġby Ġshowing Ġthe Ġuser Ġa Ġdialog Ġ*/ ĊĠĠĠĠĠĠĠ Ġclass ĠNot Res olvable ( val Ġexception : ĠException ) Ġ: ĠSettings Result () ĊĠĠĠ Ġ} Ċ Ċ }