package Ġcom . mapbox . navigation . ui . trip progress . model Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . Sp ann able String Ċ import Ġcom . mapbox . navigation . base . Time Format Ċ import Ġcom . mapbox . navigation . base . formatter . Distance Formatter Options Ċ import Ġcom . mapbox . navigation . base . internal . Voice Unit Ċ import Ġcom . mapbox . navigation . ui . base . formatter . Value Formatter Ċ Ċ /** Ċ Ġ* ĠContains Ġvarious Ġtrip Ġrelated Ġformat ters Ċ Ġ* Ċ Ġ* Ġ@ param Ġestimated TimeTo Arrival Formatter Ġfor Ġformatting Ġthe Ġestimated Ġtime Ġto Ġar rival Ċ Ġ* Ġ@ param Ġdistance Remaining Formatter Ġfor Ġformatting Ġthe Ġtrip Ġdistance Ġremaining Ċ Ġ* Ġ@ param Ġtime Remaining Formatter Ġfor Ġformatting Ġthe Ġtravel Ġtime Ġremaining Ċ Ġ* Ġ@ param Ġpercent Route Tr ave led Formatter Ġfor Ġformatting Ġthe Ġpercent Ġdistance Ġtr ave led Ċ Ġ*/ Ċ class ĠTrip Progress Update Formatter Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġestimated TimeTo Arrival Formatter : ĊĠĠĠĠĠĠĠ ĠValue Formatter < Long , ĠSp ann able String >, ĊĠĠĠ Ġprivate Ġval Ġdistance Remaining Formatter : ĠValue Formatter < Double , ĠSp ann able String >, ĊĠĠĠ Ġprivate Ġval Ġtime Remaining Formatter : ĠValue Formatter < Double , ĠSp ann able String >, ĊĠĠĠ Ġprivate Ġval Ġpercent Route Tr ave led Formatter : ĠValue Formatter < Double , ĠSp ann able String > Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ ROUND ING _ IMP ERIAL Ġ= Ġ 5 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ ROUND ING _ METRIC Ġ= Ġ 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext Ġa Ġvalid Ġcontext ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġbuilder Ġmatching Ġthe Ġone Ġused Ġto Ġcreate Ġthis Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġto Builder ( context : ĠContext ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBuilder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. estimated TimeTo Arrival Formatter ( estimated TimeTo Arrival Formatter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. distance Remaining Formatter ( distance Remaining Formatter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. time Remaining Formatter ( time Remaining Formatter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. percent Route Tr ave led Formatter ( percent Route Tr ave led Formatter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn Ġimplementation Ġof Ġequals ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġother Ġany Ġobject Ġto Ġcompare Ġequality ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġan Ġequality Ġindication Ġas Ġa Ġboolean ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠTrip Progress Update Formatter ĊĊĠĠĠĠĠĠĠ Ġif Ġ( distance Remaining Formatter Ġ!= Ġother . distance Remaining Formatter ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( estimated TimeTo Arrival Formatter Ġ!= Ġother . estimated TimeTo Arrival Formatter ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( percent Route Tr ave led Formatter Ġ!= Ġother . percent Route Tr ave led Formatter ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( time Remaining Formatter Ġ!= Ġother . time Remaining Formatter ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġobject Ġas Ġa Ġstring ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Trip Progress Update Formatter (" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" estimated TimeTo Arrival Formatter =$ estimated TimeTo Arrival Formatter , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" distance Remaining Formatter =$ distance Remaining Formatter , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" time Remaining Formatter =$ time Remaining Formatter , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" percent Route Tr ave led Formatter =$ percent Route Tr ave led Formatter )" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġhash Ġcode Ġvalue Ġfor Ġthe Ġobject . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġestimated TimeTo Arrival Formatter . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġdistance Remaining Formatter . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtime Remaining Formatter . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġpercent Route Tr ave led Formatter . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠForm ats Ġthe Ġestimated Ġtime Ġuntil Ġar rival ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġthe Ġestimated Ġtime Ġto Ġar rival Ġin Ġmilliseconds ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġformatted Ġresult ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Est imated TimeTo Arrival ( value : ĠLong ) Ġ= ĊĠĠĠĠĠĠĠ Ġestimated TimeTo Arrival Formatter . format ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠForm ats Ġthe Ġdistance Ġremaining ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġthe Ġdistance Ġremaining ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġformatted Ġresult ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Distance Remaining ( value : ĠDouble ) Ġ= ĊĠĠĠĠĠĠĠ Ġdistance Remaining Formatter . format ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠForm ats Ġthe Ġtime Ġremaining ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġthe Ġtime Ġremaining ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġformatted Ġresult ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetTime Remaining ( value : ĠDouble ) Ġ= ĊĠĠĠĠĠĠĠ Ġtime Remaining Formatter . format ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠForm ats Ġthe Ġpercent Ġdistance Ġtr ave led ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġthe Ġpercent Ġdistance Ġtr ave led ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġformatted Ġresult ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Percent Route Tr ave led ( value : ĠDouble ) Ġ= ĊĠĠĠĠĠĠĠ Ġpercent Route Tr ave led Formatter . format ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBuilds Ġan Ġinstance Ġof Ġ[ Trip Progress Update Formatter ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext Ġa Ġinstance Ġof Ġa Ġ[] Context ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠBuilder ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġestimated TimeTo Arrival Formatter : ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValue Formatter < Long , ĠSp ann able String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdistance Remaining Formatter : ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValue Formatter < Double , ĠSp ann able String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtime Remaining Formatter : ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValue Formatter < Double , ĠSp ann able String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġpercent Route Tr ave led Formatter : ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValue Formatter < Double , ĠSp ann able String >? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġclass Ġthat Ġformats Ġa Ġ[ Trip Progress Update ] Ġto Ġa Ġ[ Sp ann able String ] Ġrepresenting ĊĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġestimated Ġtime Ġto Ġar rival . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġformatter Ġa Ġformatter Ġinstance ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġbuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġestimated TimeTo Arrival Formatter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformatter : ĠValue Formatter < Long , ĠSp ann able String > ĊĠĠĠĠĠĠĠ Ġ): ĠBuilder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . estimated TimeTo Arrival Formatter Ġ= Ġformatter Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġclass Ġthat Ġformats Ġa Ġ[ Trip Progress Update ] Ġto Ġa Ġ[ Sp ann able String ] Ġrepresenting ĊĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġdistance Ġremaining Ġof Ġa Ġroute . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġformatter Ġa Ġformatter Ġinstance ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġbuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġdistance Remaining Formatter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformatter : ĠValue Formatter < Double , ĠSp ann able String > ĊĠĠĠĠĠĠĠ Ġ): ĠBuilder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . distance Remaining Formatter Ġ= Ġformatter Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġclass Ġthat Ġformats Ġa Ġ[ Trip Progress Update ] Ġto Ġa Ġ[ Sp ann able String ] Ġrepresenting ĊĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġtime Ġremaining . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġformatter Ġa Ġformatter Ġinstance ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġbuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġtime Remaining Formatter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformatter : ĠValue Formatter < Double , ĠSp ann able String > ĊĠĠĠĠĠĠĠ Ġ): ĠBuilder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . time Remaining Formatter Ġ= Ġformatter Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġclass Ġthat Ġformats Ġa Ġ[ Trip Progress Update ] Ġto Ġa Ġ[ Sp ann able String ] Ġrepresenting ĊĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġpercentage Ġof Ġthe Ġroute Ġdistance Ġtr ave led . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġformatter Ġa Ġformatter Ġinstance ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġbuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġpercent Route Tr ave led Formatter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformatter : ĠValue Formatter < Double , ĠSp ann able String > ĊĠĠĠĠĠĠĠ Ġ): ĠBuilder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . percent Route Tr ave led Formatter Ġ= Ġformatter Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠApplies Ġthe Ġsupplied Ġparameters Ġand Ġinstanti ates Ġa Ġ[ Trip Progress Update Formatter ] ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Trip Progress Update Formatter ] Ġobject ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠTrip Progress Update Formatter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthe Est imated TimeTo Arrival Formatter : ĠValue Formatter < Long , ĠSp ann able String > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġestimated TimeTo Arrival Formatter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠEst imated TimeTo Arrival Formatter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime Format . NONE _ SPECIFIED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthe Distance Remaining Formatter : ĠValue Formatter < Double , ĠSp ann able String > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistance Remaining Formatter Ġ?: ĠgetDefault Distance Remaining Formatter ( context ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthe Time Remaining Formatter : ĠValue Formatter < Double , ĠSp ann able String > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Remaining Formatter Ġ?: ĠTime Remaining Formatter ( context . application Context ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthe Percent Route Tr ave led Formatter : ĠValue Formatter < Double , ĠSp ann able String > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpercent Route Tr ave led Formatter Ġ?: ĠPercent Distance Tr ave led Formatter () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTrip Progress Update Formatter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Est imated TimeTo Arrival Formatter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Distance Remaining Formatter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Time Remaining Formatter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Percent Route Tr ave led Formatter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠgetDefault Distance Remaining Formatter ( context : ĠContext ): ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValue Formatter < Double , ĠSp ann able String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠDistance Formatter Options . Builder ( context ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrounding Unit Ġ= Ġwhen Ġ( options . unit Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVoice Unit . IMP ERIAL Ġ-> ĠDEFAULT _ ROUND ING _ IMP ERIAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠDEFAULT _ ROUND ING _ METRIC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfinal Options Ġ= Ġoptions . to Builder (). rounding Increment ( rounding Unit ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDistance Remaining Formatter ( final Options ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ