package Ġcom . run go . run with z ippy . presentation . features . running Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context . LOCATION _ SERVICE Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . location . Location Ċ import Ġandroid . location . Location Listener Ċ import Ġandroid . location . Location Manager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . System Clock Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . google . android . gms . maps . Camera Update Factory Ċ 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 Ġcom . google . android . gms . maps . model .* Ċ import Ġcom . run go . run with z ippy . R Ċ import Ġcom . run go . run with z ippy . base . Base Fragment Ċ import Ġcom . run go . run with z ippy . data . model . Location Model Ċ import Ġcom . run go . run with z ippy . data . model . Running Request Ċ import Ġcom . run go . run with z ippy . databinding . Fragment Running Binding Ċ import Ġcom . run go . run with z ippy . presentation . features . config . Initial Config Model Ċ import Ġcom . run go . run with z ippy . utils . Constants Ċ import Ġcom . run go . run with z ippy . utils . EventData Ċ import Ġcom . run go . run with z ippy . utils . Event Enums Ċ import Ġcom . run go . run with z ippy . utils . Permission Utils Ċ import Ġcom . run go . run with z ippy . utils . extensions . is Network Available Ċ import Ġcom . run go . run with z ippy . utils . extensions . show Toast Ċ import Ġorg . k oin . android . view model . ext . android . get ViewModel Ċ import Ġtim ber . log . Tim ber ĊĊ Ċ class ĠRunning Fragment Ġ: ĠBase Fragment (), ĠLocation Listener , ĠGoogle Map . On My Location Button ClickListener , ĊĠĠĠ ĠGoogle Map . On My Location ClickListener , ĠOn Map Ready Callback , ĊĠĠĠ ĠActivity Compat . On Request Permissions Result Callback , ĠGoogle Map . On Polyline ClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Running Binding ĊĊĠĠĠ Ġprivate Ġvar Ġtime When Stopped : ĠLong Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġlazy Ġ{ Ġget ViewModel < Running ViewModel >() Ġ} ĊĠĠĠ Ġprivate Ġval Ġinitial Config Model Ġby Ġlazy Ġ{ Ġget ViewModel < Initial Config Model >() Ġ} ĊĠĠĠ Ġprivate Ġvar Ġis Clicked : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Map : ĠGoogle Map ĊĠĠĠ Ġprivate Ġvar Ġpermission Denied Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġlocation Manager : ĠLocation Manager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcalculated Distance : ĠLong Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġrunning Time Second : ĠLong Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġavg Speed : ĠDouble Ġ= Ġ 0 . 0 ĊĠĠĠ Ġprivate Ġvar Ġmax Speed : ĠDouble Ġ= Ġ 0 . 0 ĊĠĠĠ Ġprivate Ġvar Ġavg P ace : ĠDouble Ġ= Ġ 0 . 0 ĊĠĠĠ Ġprivate Ġvar Ġk kal : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpoly Line : ĠPoly line ĊĠĠĠ Ġprivate Ġvar Ġfirst Loc : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġval Ġpoints : ĠMutable List < Location Model > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġval Ġarray Speed : ĠMutable List < Float > Ġ= ĠArrayList () Ċ // ĠĠĠ Ġprivate Ġvar Ġmap : ĠMap ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= Ġbinding ( layout Inflater , ĠR . layout . fragment _ running , Ġcontainer ) ĊĠĠĠĠĠĠĠ Ġval Ġmap Fragment Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild FragmentManager . find Fragment ById ( R . id . map Google Fragment ) Ġas ĠSupport Map Fragment ? ĊĠĠĠĠĠĠĠ Ġprintln (" MA PS Ġ 2 Ġ== Ġ" Ġ+ Ġmap Fragment ) ĊĠĠĠĠĠĠĠ Ġlocation Manager Ġ= Ġrequire Context (). getSystem Service ( LOCATION _ SERVICE ) Ġas ĠLocation Manager ? ĊĠĠĠĠĠĠĠ Ġmap Fragment ?. getMap Async ( this ) ĊĠĠĠĠĠĠĠ Ġinit Fragment () ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . iv Music . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (). package Manager . get Launch Intent For Package (" com . spotify . music ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . iv Pause . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Manager ?. remove Updates ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Map . is My Location Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Time Count . stop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" TIME Ġ= Ġsecond " Ġ+ Ġrunning Time Second ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . iv Play . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Play () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . iv Stop . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! points . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Time Count . stop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Manager ?. remove Updates ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Map . is My Location Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" TIME Ġ= Ġ" Ġ+ Ġbinding . tv Time Count . base ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" TIME Ġ= Ġsecond " Ġ+ Ġrunning Time Second ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . is Network Available ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshared Pref ences Ġ= Ġthis . require Activity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get SharedPreferences ( Constants . PREFER ENCE _ NAME , ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccess _ token Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshared Pref ences . getString ( Constants . ACCESS _ TOKEN , Ġ""). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" POLY LINE ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" POINT ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( points ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" POINT Ġ 2 ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( poly Line . points ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . statistics Add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRunning Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccess _ token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalculated Distance , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrunning Time Second , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Speed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavg Speed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavg P ace , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoints , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ðŀ ÑĤ Ñģ ÑĥÑĤ ÑģÑĤÐ² ÑĥÐµÑĤ ĠÐ¸Ð½ ÑĤÐµÑĢ Ð½ ÐµÑĤ ĠÑģÐ¾ ÐµÐ´ Ð¸Ð½ ÐµÐ½Ð¸Ðµ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Not Run () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // TODO ĠÐ² Ð¾ÑĤ ĠÑįÑĤÐ¾ ĠÐ½ Ð°Ð´ Ð¾ ĠÐ´Ð¾Ð±Ð°Ð² Ð¸ÑĤÑĮ ĠĠĠĠĠĠĠĠĠĠĠ Ġpoly Line . points ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( require Activity (), ĠRunning Finish Activity :: class . java ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" time ", Ġbinding . tv Time Count ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" distance ", Ġcalculated Distance ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon After View Created () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . tv Cal ories Count . text Ġ= Ġ" 0 " ĊĠĠĠĠĠĠĠ Ġbinding . tv Time Count . start () ĊĠĠĠĠĠĠĠ Ġsetup EventListener ( viewModel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . tv Time Count . setOn Ch ron ometer Tick Listener Ġ{ Ġc Arg Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrunning Time Second Ġ= Ġ( System Clock . elapsed Realtime () Ġ- Ġc Arg . base ) Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . iv Pause . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ll Pause . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rl Play . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime When Stopped Ġ= Ġbinding . tv Time Count . base Ġ- ĠSystem Clock . elapsed Realtime () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Manager ?. remove Updates ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Time Count . stop () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . iv Play . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rl Play . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ll Pause . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Time Count . base Ġ= ĠSystem Clock . elapsed Realtime () Ġ+ Ġtime When Stopped ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Time Count . start (); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . iv Position . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Clicked Ġ= Ġif Ġ( is Clicked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rl Map . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rl Map . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( google Map : ĠGoogle Map ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Map Ġ= Ġgoogle Map ; ĊĠĠĠĠĠĠĠ Ġprintln (" Y AAAA A ") ĊĠĠĠĠĠĠĠ Ġgoogle Map . setOn My Location Button ClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġgoogle Map . setOn My Location ClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġgoogle Map . setOn Polyline ClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! is Location Enabled ( require Context ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Location Is Disabled Alert () ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable My Location () Ċ // ĠĠĠĠĠĠĠ Ġinit Map () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġenable My Location () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! :: m Map . isInitialized ) Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( Context Compat . check Self Permission ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Map . is My Location Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRequest Ġlocation Ġupdates ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Manager ?. request Location Updates ( Location Manager . GPS _ PROVIDER , Ġ 0 L , Ġ 1 f , Ġthis ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Manager ?. remove Updates ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" SUCCESS ĠLOC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠSecurity Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ERROR ĠLOC ATION ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" my Tag ", Ġ" Security ĠException , Ġno Ġlocation Ġavailable ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠG ps Tracker Service :: class . java ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. start Service ( intent ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstart Service ( G ps Tracker Service . get Intent ( require Context ())) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Ġto Ġaccess Ġthe Ġlocation Ġis Ġmissing . ĠShow Ġr ationale Ġand Ġrequest Ġpermission ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" ÐĴ ÐºÐ»ÑİÑĩ Ð¸ ĠGPS ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ÐĴ ÐºÐ»ÑİÑĩ Ð¸ ĠGPS ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Utils . request Permission ( require Activity (), ĠLOC ATION _ PERMISSION _ REQUEST _ CODE , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION , Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġalert Not Run (){ ĊĠĠĠĠĠĠĠ Ġval Ġalert Dialog Builder Ġ= ĠAlertDialog . Builder ( require Context ()) ĊĠĠĠĠĠĠĠ Ġalert Dialog Builder . setMessage (" ÐĴ Ñĭ ĠÐ½Ðµ ĠÐ½Ð° Ñĩ Ð°Ð»Ð¸ ĠÐ± ÐµÐ³ Ð°ÑĤÑĮ . ĠÐĳ ÐµÐ³ Ð¸ÑĤÐµ ") ĊĠĠĠĠĠĠĠ Ġalert Dialog Builder . set Positive Button ( android . R . string . yes ) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Play () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġalert Dialog Builder . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġiv Play (){ ĊĠĠĠĠĠĠĠ Ġif Ġ( Context Compat . check Self Permission ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Map . is My Location Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRequest Ġlocation Ġupdates ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Manager ?. request Location Updates ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocation Manager . GPS _ PROVIDER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" SUCCESS ĠLOC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠSecurity Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ERROR ĠLOC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( ĊĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠ Ġpermissions : ĠArray < String >, ĊĠĠĠĠĠĠĠ Ġgrant Results : ĠInt Array ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ!= ĠLOC ATION _ PERMISSION _ REQUEST _ CODE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Permission Utils . is Permission Granted ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermissions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrant Results , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEnable Ġthe Ġmy Ġlocation Ġlayer Ġif Ġthe Ġpermission Ġhas Ġbeen Ġgranted . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable My Location () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPermission Ġwas Ġdenied . ĠDisplay Ġan Ġerror Ġmessage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDisplay Ġthe Ġmissing Ġpermission Ġerror Ġdialog Ġwhen Ġthe Ġfragments Ġresume . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Denied Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Location Is Disabled Alert () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalert Dialog Builder Ġ= ĠAlertDialog . Builder ( require Context ()) ĊĠĠĠĠĠĠĠ Ġalert Dialog Builder . setMessage (" Ð§ ÑĤÐ¾Ð±Ñĭ ĠÐ¿ÑĢ Ð¾Ð´ Ð¾Ð»Ð¶ Ð¸ÑĤÑĮ , ĠÐ² ÐºÐ»ÑİÑĩ Ð¸ÑĤÐµ ĠÐ½Ð° ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ² Ðµ ĠÐ³ Ðµ Ð¾Ð» Ð¾Ðº Ð°ÑĨÐ¸ Ñİ ĠGoogle ") ĊĠĠĠĠĠĠĠ Ġalert Dialog Builder . set Positive Button (" ÐĴ ÐºÐ»ÑİÑĩ Ð¸ÑĤÑĮ ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Interface . OnClickListener Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Settings . ACTION _ LOCATION _ SOURCE _ SETTINGS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġalert Dialog Builder . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Location Enabled ( mContext : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlm Ġ= ĠmContext . getSystem Service ( Context . LOCATION _ SERVICE ) Ġas ĠLocation Manager ĊĠĠĠĠĠĠĠ Ġreturn Ġlm . is Provider Enabled ( Location Manager . GPS _ PROVIDER ) Ġ|| Ġlm . is Provider Enabled ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocation Manager . NETWORK _ PROVIDER ĊĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġlm . is Provider Enabled ( Location Manager . GPS _ PROVIDER ) ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġoverride Ġfun Ġon Resume Fragments () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġsuper . on Resume Fragments () Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( permission Denied ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPermission Ġwas Ġnot Ġgranted , Ġdisplay Ġerror Ġdialog . Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġshow Missing Permission Error () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Denied Ġ= Ġfalse Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Missing Permission Error () Ġ{ ĊĠĠĠĠĠĠĠ ĠPermission Utils . Permission Denied Dialog . newInstance ( true ). show ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild FragmentManager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" dialog " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon My Location Button Click (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" My Location Ġbutton Ġclicked ") Ċ // ĠĠĠĠĠĠĠ Ġshow Toast (" My Location Ġbutton Ġclicked ") Ċ // ĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" My Location Ġbutton Ġclicked ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ// ĠReturn Ġfalse Ġso Ġthat Ġwe Ġdon 't Ġconsume Ġthe Ġevent Ġand Ġthe Ġdefault Ġbehavior Ġstill Ġoccurs ĊĠĠĠĠĠĠĠ Ġ// Ġ( the Ġcamera Ġanim ates Ġto Ġthe Ġuser 's Ġcurrent Ġposition ). ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon My Location Click ( location : ĠLocation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Toast (" Current Ġlocation :\ n $ location ") Ċ // ĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Current Ġlocation :\ n $ location ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġprintln (" GPS Ġ== Ġ" Ġ+ Ġlocation . latitude Ġ+ Ġ" Ġ=== Ġ" Ġ+ Ġlocation . longitude ) Ċ // ĠĠĠĠĠĠĠ ĠDistance Tracker . total Distance Ġ+= Ġcalculated Distance ĊĠĠĠĠĠĠĠ Ġprintln (" DI Stan CE Ġ= Ġ" Ġ+ Ġcalculated Distance ) ĊĠĠĠĠĠĠĠ Ġprintln (" SP eed Ġ= Ġ" Ġ+ Ġlocation . speed ) ĊĠĠĠĠĠĠĠ Ġval Ġlat Lng Ġ= ĠLat Lng ( location . latitude , Ġlocation . longitude ) ĊĠĠĠĠĠĠĠ Ġif Ġ( first Loc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoly Line Ġ= Ġm Map . add Polyline ( Polyline Options (). color ( Color . RED ). add ( lat Lng )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Map . move Camera ( Camera Update Factory . new LatLng Zoom ( lat Lng , Ġ 1 6 F )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Loc Ġ= Ġfalse ; ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Map . animate Camera ( Camera Update Factory . new LatLng Zoom ( lat Lng , Ġ 1 6 F )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" POL Ġ== Ġ" Ġ+ Ġpoly Line . points ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Line Ġ= Ġm Map . add Polyline ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoly line Options (). color ( Color . RED ). addAll ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoly Line . points ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). add ( lat Lng ). width ( 1 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloc 2 Ġ= ĠLocation ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloc 2 . latitude Ġ= Ġpoly Line . points . get ( poly Line . points . size Ġ- Ġ 1 ). latitude ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloc 2 . longitude Ġ= Ġpoly Line . points . get ( poly Line . points . size Ġ- Ġ 1 ). longitude ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdistance In Met ers Ġ= Ġloc 2 . distance To ( location ). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalculated Distance Ġ+= Ġdistance In Met ers ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoly Line . remove () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoly Line Ġ= Ġnew Line ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln (" DISTANCE Ġ== Ġ" Ġ+ Ġcalculated Distance ) ĊĠĠĠĠĠĠĠ Ġbinding . tv Count . setText ("% . 2 f ". format ( calculated Distance Ġ* Ġ 0 . 0 0 1 )) Ċ // ĠĠĠĠĠĠĠ Ġm Map . add Marker ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠMarker Options () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. position ( LatLng ( location . latitude , Ġlocation . longitude )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title (" Ð ¯ ") Ċ // ĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġm Map . move Camera ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCamera Update Factory . new LatLng ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation . latitude , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation . longitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Location Changed ( location : ĠLocation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Toast (" Current Ġlocation Ġ 2 :\ n $ location ") ĊĠĠĠĠĠĠĠ Ġprintln (" GPS Ġ 2 Ġ== Ġ" Ġ+ Ġlocation . latitude Ġ+ Ġ" Ġ=== Ġ" Ġ+ Ġlocation . longitude ) ĊĠĠĠĠĠĠĠ Ġval Ġlat Lng Ġ= ĠLat Lng ( location . latitude , Ġlocation . longitude ) ĊĠĠĠĠĠĠĠ Ġif Ġ( first Loc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoly Line Ġ= Ġm Map . add Polyline ( Polyline Options (). color ( Color . RED ). add ( lat Lng )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Map . move Camera ( Camera Update Factory . new LatLng Zoom ( lat Lng , Ġ 1 6 F )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Loc Ġ= Ġfalse ; ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Map . animate Camera ( Camera Update Factory . new LatLng Zoom ( lat Lng , Ġ 1 6 F )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" POL Ġ 2 Ġ== Ġ" Ġ+ Ġpoly Line . points ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloc 2 Ġ= ĠLocation ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloc 2 . latitude Ġ= Ġpoly Line . points . get ( poly Line . points . size Ġ- Ġ 1 ). latitude ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloc 2 . longitude Ġ= Ġpoly Line . points . get ( poly Line . points . size Ġ- Ġ 1 ). longitude ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdistance In Met ers Ġ= Ġloc 2 . distance To ( location ). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalculated Distance Ġ+= Ġdistance In Met ers ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Line Ġ= Ġm Map . add Polyline ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoly line Options (). color ( Color . RED ). addAll ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoly Line . points ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). add ( lat Lng ). width ( 1 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoly Line . remove () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoly Line Ġ= Ġnew Line ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln (" index Ġ= Ġ"+ poly Line . points . size ) ĊĠĠĠĠĠĠĠ Ġpoints . add ( Location Model ( location . latitude , Ġlocation . longitude )) ĊĠĠĠĠĠĠĠ Ġprintln (" POINTS ") ĊĠĠĠĠĠĠĠ Ġprintln ( points ) ĊĠĠĠĠĠĠĠ Ġprintln (" DISTANCE Ġ 2 Ġ== Ġ" Ġ+ Ġcalculated Distance ) ĊĊĠĠĠĠĠĠĠ Ġif ( location . speed Ġ!= Ġ 0 . 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray Speed . add ( location . speed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġall Speed Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( speed Ġin Ġarray Speed ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Speed Ġ+= Ġspeed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( max Speed Ġ< Ġlocation . speed ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Speed Ġ= Ġlocation . speed . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" all ĠSP eed Ġ= Ġ" Ġ+ Ġall Speed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" size Ġ= Ġ" Ġ+ Ġarray Speed . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġavg Speed Ġ= Ġ( all Speed / array Speed . size ). toDouble () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġavg P ace Ġ= Ġ( running Time Second / calculated Distance ). toDouble () ĊĊĠĠĠĠĠĠĠ Ġbinding . tv Temp Count . text Ġ= Ġ"% . 2 f ". format ( avg P ace ) Ġ+ Ġ" ĠÑģ / Ð¼ " ĊĠĠĠĠĠĠĠ Ġk kal Ġ= Ġ( calculated Distance Ġ* Ġ 0 . 0 0 1 Ġ* Ġinitial Config Model . initial Config . value !!. user . weight ). toInt () ĊĠĠĠĠĠĠĠ Ġprintln (" SP eed Ġ= Ġ" Ġ+ Ġlocation . speed ) Ġ// Ð¼ / Ñģ ĊĠĠĠĠĠĠĠ Ġbinding . tv Count . text Ġ= Ġ"% . 2 f ". format ( calculated Distance Ġ* Ġ 0 . 0 0 1 ) ĊĠĠĠĠĠĠĠ Ġbinding . tv Cal ories Count . text Ġ= Ġ"" + kk al Ċ // ĠĠĠĠĠĠĠ Ġm Map . add Marker ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠMarker Options () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. position ( LatLng ( location . latitude , Ġlocation . longitude )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title (" Ð¢ Ð « ") Ċ // ĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġm Map . move Camera ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCamera Update Factory . new LatLng ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation . latitude , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation . longitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Event ( event Data : ĠEvent Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( event Data . event Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Enums . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( require Activity (), ĠRunning Finish Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" time ", Ġbinding . tv Time Count . text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" distance ", Ġcalculated Distance ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" statistic Id ", ĠviewModel . statistic _ data . value !!. statistic Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Enums . FAIL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalert Dialog Builder Ġ= ĠAlertDialog . Builder ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Dialog Builder . setMessage (" Ðŀ ÑĪÐ¸Ð± ÐºÐ° ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Dialog Builder . set Positive Button ( android . R . string . yes ) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Dialog Builder . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Enums . OTHER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" ÐŁ ÐĲ Ð ¥ ÐĲ Ð Ļ Ġ 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠRequest Ġcode Ġfor Ġlocation Ġpermission Ġrequest . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ. on Request Permissions Result ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLOC ATION _ PERMISSION _ REQUEST _ CODE Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Polyline Click ( p 0 : ĠPoly line ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} Ċ Ċ }