package Ġcom . mapbox . navigation . base . formatter Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . mapbox . navigation . base . internal . extensions . Locale Ex . get Unit Type For Locale Ċ import Ġcom . mapbox . navigation . base . internal . extensions . infer Device Locale Ċ import Ġjava . util . Locale Ċ Ċ /** Ċ Ġ* ĠG ives Ġoptions Ġto Ġformat Ġthe Ġdistance Ġin Ġthe Ġtrip Ġnotification . Ċ Ġ* Ċ Ġ* ĠIf Ġnot Ġprovided , Ġthe Ġobject Ġwill Ġinfer Ġdevice Ġlanguage Ġand Ġunit Ġtype Ġusing Ġthe Ġdevice Ġlocale Ġfrom Ġthe Ġcontext . Ċ Ġ* Ċ Ġ* Ġ@ param Ġapplication Context Ġfrom Ġwhich Ġto Ġget Ġlocalized Ġstrings Ġfrom Ċ Ġ* Ġ@ param Ġlocale Ġthe Ġlocale Ġto Ġuse Ġfor Ġlocalization Ġof Ġdistance Ġresources Ċ Ġ* Ġ@ param Ġunit Type Ġto Ġuse Ġfor Ġvoice Ġand Ġvisual Ġinformation . Ċ Ġ* Ġ@ param Ġrounding Increment Ġincrement Ġby Ġwhich Ġto Ġround Ġsmall Ġdistances Ċ Ġ*/ Ċ class ĠDistance Formatter Options Ġprivate Ġconstructor ( ĊĠĠĠ Ġval Ġapplication Context : ĠContext , ĊĠĠĠ Ġval Ġlocale : ĠLocale , ĊĠĠĠ Ġval Ġunit Type : ĠUnit Type , ĊĠĠĠ Ġ@ Round ing . Increment Ġval Ġrounding Increment : ĠInt Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġ[ Builder ] Ġthat Ġcreated Ġthe Ġ[ Distance Formatter Options ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġto Builder () Ġ= ĠBuilder ( application Context ) ĊĠĠĠĠĠĠĠ Ġ. locale ( locale ) ĊĠĠĠĠĠĠĠ Ġ. unit Type ( unit Type ) ĊĠĠĠĠĠĠĠ Ġ. rounding Increment ( rounding Increment ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRe generate Ġwhenever Ġa Ġchange Ġis Ġmade ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠDistance Formatter Options ĊĊĠĠĠĠĠĠĠ Ġif Ġ( application Context Ġ!= Ġother . application Context ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( locale Ġ!= Ġother . locale ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( unit Type Ġ!= Ġother . unit Type ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( rounding Increment Ġ!= Ġother . rounding Increment ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRe generate Ġwhenever Ġa Ġchange Ġis Ġmade ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġapplication Context . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġlocale . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġunit Type . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġrounding Increment ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRe generate Ġwhenever Ġa Ġchange Ġis Ġmade ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Distance Formatter Options (" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application Context =$ application Context , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" locale =$ locale , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" unit Type ='$ unit Type ', Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" rounding Increment =$ rounding Increment " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ")" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBuilder Ġof Ġ[ Distance Formatter Options ] ĊĠĠĠĠ Ġ* Ġ@ param Ġapplication Context Ġconverted Ġto Ġapplication Context Ġto Ġsave Ġmemory Ġle aks ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠBuilder ( application Context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapplication Context : ĠContext Ġ= Ġapplication Context . application Context ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġlocale : ĠLocale Ġ= Ġapplication Context . infer Device Locale () ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġunit Type : ĠUnit Type ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġrounding Increment Ġ= ĠRound ing . INCREMENT _ FI F TY ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠPolicy Ġfor Ġthe Ġvarious Ġunits Ġof Ġmeasurement . ĊĠĠĠĠĠĠĠĠ Ġ* ĠIf Ġnull , Ġdefault Ġunit Ġfor Ġlocale Ġcountry Ġwill Ġbe Ġused . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġunit Type ĠUnit Type ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠBuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġunit Type ( unit Type : ĠUnit Type ?) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . unit Type Ġ= Ġunit Type Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠMin imal Ġvalue Ġthat Ġdistance Ġmight Ġbe Ġstripped ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġrounding Increment Ġ[ Round ing . Increment ] ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠBuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġrounding Increment (@ Round ing . Increment Ġrounding Increment : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . rounding Increment Ġ= Ġrounding Increment Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠUse Ġa Ġnon - default Ġ[ Locale ]. ĠBy Ġdefault , Ġthe Ġ[ Locale ] Ġis Ġused Ġfrom Ġapplication Context ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġlocale Ġ[ Locale ] ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠBuilder ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġlocale ( locale : ĠLocale ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . locale Ġ= Ġlocale Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBuild Ġa Ġnew Ġinstance Ġof Ġ[ Distance Formatter Options ] ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ[ Distance Formatter Options ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġbuild () Ġ= ĠDistance Formatter Options ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context Ġ= Ġapplication Context , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocale Ġ= Ġlocale , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunit Type Ġ= Ġunit Type Ġ?: Ġlocale . get Unit Type For Locale (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrounding Increment Ġ= Ġrounding Increment ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ