package Ġcom . mapbox . navigation . base . trip . model Ċ Ċ import Ġcom . mapbox . api . directions . v 5 . models . Leg Step Ċ import Ġcom . mapbox . api . directions . v 5 . models . Route Leg Ċ Ċ class ĠRoute Leg Progress Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġleg Index : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġprivate Ġval Ġroute Leg : ĠRoute Leg ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġval Ġdistance Tr ave led : ĠFloat Ġ= Ġ 0 f , ĊĠĠĠ Ġprivate Ġval Ġdistance Remaining : ĠFloat Ġ= Ġ 0 f , ĊĠĠĠ Ġprivate Ġval Ġduration Remaining : ĠLong Ġ= Ġ 0 L , ĊĠĠĠ Ġprivate Ġval Ġfraction Tr ave led : ĠFloat Ġ= Ġ 0 f , ĊĠĠĠ Ġprivate Ġval Ġcurrent Step Progress : ĠRoute Step Progress ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġval Ġupcoming Step : ĠLeg Step ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġval Ġbuilder : ĠBuilder Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIndex Ġrepresenting Ġthe Ġcurrent Ġleg Ġthe Ġuser Ġis Ġon . ĠIf Ġthe Ġdirections Ġroute Ġcurrently Ġin Ġuse ĊĠĠĠĠ Ġ* Ġcontains Ġmore Ġthen Ġtwo Ġway points , Ġthe Ġroute Ġis Ġlikely Ġto Ġhave Ġmultiple Ġle gs Ġrepresenting Ġthe ĊĠĠĠĠ Ġ* Ġdistance Ġbetween Ġthe Ġtwo Ġpoints . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġan Ġinteger Ġrepresenting Ġthe Ġcurrent Ġleg Ġthe Ġuser Ġis Ġon ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġleg Index (): ĠInt Ġ= Ġleg Index ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġ[ Route Leg ] Ġgeometry . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġroute Ġleg Ġgeometry ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġroute Leg (): ĠRoute Leg ? Ġ= Ġroute Leg ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTotal Ġdistance Ġtr ave led Ġin Ġmeters Ġalong Ġcurrent Ġleg . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġdouble Ġvalue Ġrepresenting Ġthe Ġtotal Ġdistance Ġthe Ġuser Ġhas Ġtr ave led Ġalong Ġthe Ġcurrent ĊĠĠĠĠ Ġ* Ġleg , Ġusing Ġunit Ġmeters . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdistance Tr ave led (): ĠFloat Ġ= Ġdistance Tr ave led ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvides Ġthe Ġduration Ġremaining Ġin Ġseconds Ġtill Ġthe Ġuser Ġreaches Ġthe Ġend Ġof Ġthe Ġroute . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġlong Ġvalue Ġrepresenting Ġthe Ġduration Ġremaining Ġtill Ġend Ġof Ġroute , Ġin Ġunit Ġseconds ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdistance Remaining (): ĠFloat Ġ= Ġdistance Remaining ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvides Ġthe Ġduration Ġremaining Ġin Ġseconds Ġtill Ġthe Ġuser Ġreaches Ġthe Ġend Ġof Ġthe Ġcurrent Ġstep . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġlong Ġvalue Ġrepresenting Ġthe Ġduration Ġremaining Ġtill Ġend Ġof Ġstep , Ġin Ġunit Ġseconds . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġduration Remaining (): ĠLong Ġ= Ġduration Remaining ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġfraction Ġtr ave led Ġalong Ġthe Ġcurrent Ġleg , Ġthis Ġis Ġa Ġfloat Ġvalue Ġbetween Ġ 0 Ġand Ġ 1 Ġand ĊĠĠĠĠ Ġ* Ġisn 't Ġguaranteed Ġto Ġreach Ġ 1 Ġbefore Ġthe Ġuser Ġreaches Ġthe Ġnext Ġway point . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġfloat Ġvalue Ġbetween Ġ 0 Ġand Ġ 1 Ġrepresenting Ġthe Ġfraction Ġthe Ġuser Ġhas Ġtr ave led Ġalong Ġthe ĊĠĠĠĠ Ġ* Ġcurrent Ġleg ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfraction Tr ave led (): ĠFloat Ġ= Ġfraction Tr ave led ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠG ives Ġa Ġ[ Route Step Progress ] Ġobject Ġwith Ġinformation Ġabout Ġthe Ġparticular Ġstep Ġthe Ġuser ĊĠĠĠĠ Ġ* Ġis Ġcurrently Ġon . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Route Step Progress ] Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcurrent Step Progress (): ĠRoute Step Progress ? Ġ= Ġcurrent Step Progress ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġnext / up coming Ġstep Ġimmediately Ġafter Ġthe Ġcurrent Ġstep . ĠIf Ġthe Ġuser Ġis Ġon Ġthe Ġlast Ġstep ĊĠĠĠĠ Ġ* Ġon Ġthe Ġlast Ġleg , Ġthis Ġwill Ġreturn Ġnull Ġsince Ġa Ġnext Ġstep Ġdoesn 't Ġexist . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Leg Step ] Ġrepresenting Ġthe Ġnext Ġstep Ġthe Ġuser Ġwill Ġbe Ġon . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupcoming Step (): ĠLeg Step ? Ġ= Ġupcoming Step ĊĊĠĠĠ Ġfun Ġto Builder () Ġ= Ġbuilder ĊĊĠĠĠ Ġdata Ġclass ĠBuilder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġleg Index : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġroute Leg : ĠRoute Leg ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdistance Tr ave led : ĠFloat Ġ= Ġ 0 f , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdistance Remaining : ĠFloat Ġ= Ġ 0 f , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġduration Remaining : ĠLong Ġ= Ġ 0 L , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġfraction Tr ave led : ĠFloat Ġ= Ġ 0 f , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcurrent Step Progress : ĠRoute Step Progress ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġupcoming Step : ĠLeg Step ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġleg Index ( leg Index : ĠInt ) Ġ= Ġapply Ġ{ Ġthis . leg Index Ġ= Ġleg Index Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġroute Leg ( route Leg : ĠRoute Leg ) Ġ= Ġapply Ġ{ Ġthis . route Leg Ġ= Ġroute Leg Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġdistance Tr ave led ( distance Tr ave led : ĠFloat ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . distance Tr ave led Ġ= Ġdistance Tr ave led Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġdistance Remaining ( distance Remaining : ĠFloat ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . distance Remaining Ġ= Ġdistance Remaining Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġduration Remaining ( duration Remaining : ĠLong ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . duration Remaining Ġ= Ġduration Remaining Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfraction Tr ave led ( fraction Tr ave led : ĠFloat ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . fraction Tr ave led Ġ= Ġfraction Tr ave led Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcurrent Step Progress ( current Step Progress : ĠRoute Step Progress ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . current Step Progress Ġ= Ġcurrent Step Progress Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġupcoming Step ( up coming Step : ĠLeg Step ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . up coming Step Ġ= Ġupcoming Step Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠRoute Leg Progress Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoute Leg Progress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleg Index , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Leg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistance Tr ave led , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistance Remaining , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Remaining , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfraction Tr ave led , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Step Progress , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupcoming Step , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ