package Ġe ch om achine . com . star _ bi ke _ v 1 . ui . register Ċ import Ġandroid . Manifest Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . location . Location Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroid . widget . Toast . LENGTH _ LONG Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . google . android . gms . location .* Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġe ch om achine . com . star _ bi ke _ v 1 . Constants Ċ import Ġe ch om achine . com . star _ bi ke _ v 1 . R Ċ import Ġe ch om achine . com . star _ bi ke _ v 1 . helpers . Data Worker Helper Ċ import Ġe ch om achine . com . star _ bi ke _ v 1 . helpers . G ps Utils Ċ import Ġe ch om achine . com . star _ bi ke _ v 1 . helpers . Navig ations Helper Ċ import Ġe ch om achine . com . star _ bi ke _ v 1 . helpers . Network Check Helper Ċ import Ġe ch om achine . com . star _ bi ke _ v 1 . interfaces . Get Location From Receiver Listener Ċ import Ġe ch om achine . com . star _ bi ke _ v 1 . receiver . Address Request Receiver Ċ import Ġe ch om achine . com . star _ bi ke _ v 1 . service . Fetch Location Address Service Ċ import Ġkotlinx . android . synt hetic . main . fragment _ register . view .* Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ class ĠRegister Fragment Ġ: ĠFragment (), ĠGet Location From Receiver Listener { ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġauth : ĠFirebase Auth ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlocation Tv : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġreceiver : ĠAddress Request Receiver ĊĠĠĠ Ġvar Ġis GPS Ġby ĠDeleg ates . notNull < Boolean >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġauth Ġ= ĠFirebase Auth . getInstance () ĊĠĠĠĠĠĠĠ Ġreceiver Ġ= ĠAddress Request Receiver ( Handler ()) ĊĠĠĠĠĠĠĠ Ġreceiver . setData Location ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ register , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġis Current Location Permission Granted () ĊĠĠĠĠĠĠĠ Ġview . register _ layout _ btn _ register . setOnClickListener Ġ{ Ġregister The User () Ġ} ĊĠĠĠĠĠĠĠ Ġview . register _ layout _ tv _ click . setOnClickListener Ġ{ ĠNavig ations Helper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigate To This Destination ( R . id . login _ fragment , Ġrequire Activity ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġlocation Tv Ġ= Ġview . findViewById ( R . id . register _ layout _ et _ location ) ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġregister The User () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠDialog ( require Context ()) ĊĠĠĠĠĠĠĠ Ġdialog . set ContentView ( R . layout . error _ dialog _ design ) ĊĠĠĠĠĠĠĠ Ġdialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠ Ġdialog . window ?. setBackground Drawable ( Color Drawable ( android . graphics . Color . TRANSP ARENT )) ĊĠĠĠĠĠĠĠ Ġif Ġ( location Tv . text . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetCurrent Location () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( context ?. let Ġ{ Ġ! Network Check Helper . is Online ( it ) Ġ} !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġview ?. register _ layout _ et _ name ?. text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġview ?. register _ layout _ et _ email ?. text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġview ?. register _ layout _ et _ password ?. text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġphone Ġ= Ġview ?. register _ layout _ et _ phone _ number ?. text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= Ġview ?. register _ layout _ et _ location ?. text . toString () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. register _ layout _ et _ name ?. error Ġ= Ġ" Please Ġwe Ġneed Ġyour Ġname " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. register _ layout _ et _ name ?. request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( email )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. register _ layout _ et _ email ?. error Ġ= Ġ" Please Ġfill Ġright Ġemail Ġaddress " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. register _ layout _ et _ email ?. request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( location )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. register _ layout _ et _ location ?. error Ġ= Ġ" Please Ġfill Ġright Ġlocation Ġaddress " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG ps Utils ( require Context ()). turn GPS On ( object Ġ: ĠG ps Utils . on G ps Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġgps Status ( is GPS Enable : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġturn Ġon ĠGPS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis GPS Ġ= Ġis GPS Enable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. register _ layout _ et _ location ?. error Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( phone )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. register _ layout _ et _ phone _ number ?. error Ġ= Ġ" Please Ġenter Ġyour Ġphone Ġto Ġreach Ġyou " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. register _ layout _ et _ phone _ number ?. request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( password ) Ġ|| Ġpassword . length Ġ< Ġ 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. register _ layout _ et _ password ?. error Ġ= Ġ" Empty Ġor Ġless Ġthan Ġ 6 Ġcharacters " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. register _ layout _ et _ password ?. request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠ Ġauth . createUser With Email And Password ( email , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener ( require Activity ()) Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData Worker Helper . send DataTo Worker ( name , Ġemail , Ġphone , Ġlocation , Ġrequire Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNavig ations Helper . navigate To This Destination ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . login _ fragment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. register _ layout _ et _ email ?. error Ġ= Ġ" we Ġhave Ġthis Ġemail Ġor Ġwrong Ġone " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 1 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Current Location Permission Granted () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Context Compat . check Self Permission ( require Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION ) Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& ĠContext Compat . check Self Permission ( require Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION ) Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( require Activity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, ĠarrayOf ( Manifest . permission . ACCESS _ F INE _ LOCATION , ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, ĠLOC ATION _ ACCESS _ PERMISSION _ REQUEST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetCurrent Location () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetCurrent Location () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocation Request : ĠLocation Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocation Request (). set Interval ( 1 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Fast est Interval ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Location Request . PRIORITY _ HIGH _ AC CUR ACY ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Activity Compat . check Self Permission ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED Ġ&& ĠActivity Compat . check Self Permission ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( require Activity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, ĠarrayOf ( Manifest . permission . ACCESS _ F INE _ LOCATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, ĠLOC ATION _ ACCESS _ PERMISSION _ REQUEST ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocation Services . getF used Location Provider Client ( require Activity ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. request Location Updates ( location Request , Ġobject Ġ: ĠLocation Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Location Result ( p 0 : ĠLocation Result ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Location Result ( p 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocation Services . getF used Location Provider Client ( require Activity ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. remove Location Updates ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 0 Ġ!= Ġnull Ġ&& Ġp 0 . locations . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlatest Location Index : ĠInt Ġ= Ġp 0 . locations . size Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlatitude : ĠDouble Ġ= Ġp 0 . locations [ latest Location Index ]. latitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlongitude : ĠDouble Ġ= Ġp 0 . locations [ latest Location Index ]. longitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Longitude : Ġ Ġ$ longitude Ġ+ ĠLat itude : Ġ Ġ$ latitude ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= ĠLocation (" provider NA ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation . latitude Ġ= Ġlatitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation . longitude Ġ= Ġlongitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Address From Long Lat it ( location ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĠL ooper . get Main Looper ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWhen Ġactivity Ġrespond Ġto ĠGPS Ġimplementation ĊĠĠĠĠ Ġ* Ġand Ġset Ġis GPS Ġto Ġfalse Ġto Ġmake Ġsure ĊĠĠĠĠ Ġ* Ġthe Ġuser Ġturn Ġon Ġthe ĠGPS ĊĠĠĠĠ Ġ* Ġ@ param Ġrequest Code ĊĠĠĠĠ Ġ* Ġ@ param ĠresultCode ĊĠĠĠĠ Ġ* Ġ@ param Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠConstants . GPS _ REQUEST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis GPS Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġturn Ġon Ġlocation Ġbackground Ġservice Ġusing ĊĠĠĠĠ Ġ* Ġlongitude , Ġlatitude Ġand Ġpass ĊĠĠĠĠ Ġ* Ġthem Ġas Ġlocation ĊĠĠĠĠ Ġ*@ param Ġlocation ĊĠĠĠĠ Ġ* Ġlocation Ġis Ġused Ġto Ġpass Ġit Ġto Ġservice ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġfetch Address From Long Lat it ( location : ĠLocation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( require Context (), ĠFetch Location Address Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . RECE IVER _ KEY , Ġreceiver ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . LOCATION _ DATA _ EXTRA , Ġlocation ) ĊĠĠĠĠĠĠĠ Ġrequire Context (). start Service ( intent ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ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 Ġ== ĠLOC ATION _ ACCESS _ PERMISSION _ REQUEST Ġ&& Ġgrant Results . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grant Results [ 0 ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetCurrent Location () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( require Activity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, ĠarrayOf ( Manifest . permission . ACCESS _ F INE _ LOCATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, ĠLOC ATION _ ACCESS _ PERMISSION _ REQUEST ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġ" Searching Ġfor Ġlocation Ġ-> ĠNOT ĠFO UND ", ĠLEN GTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġthis Ġoverride Ġmethod Ġfor Ġgetting Ġcallback ĊĠĠĠĠ Ġ* Ġfrom ĠReceiver Ġ( once Ġreceiver Ġknow Ġlocation ĊĠĠĠĠ Ġ* Ġit Ġpassed Ġto Ġfragment Ġdirectly ) ĊĠĠĠĠ Ġ* Ġ@ param Ġstring Ġ= ĠLOC ATION ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġset Location ( string : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlocation Tv . text Ġ= Ġstring ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Zi ad Receiver " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLOC ATION _ ACCESS _ PERMISSION _ REQUEST Ġ= Ġ 3 4 ĊĠĠĠ Ġ} Ċ }