package Ġat . r tr . r mb t . android . ui Ċ Ċ import Ġandroidx . appcompat . widget . AppCompat TextView Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġat . r tr . r mb t . android . R Ċ import Ġat . r tr . r mb t . android . util . format Accuracy Ċ import Ġat . r tr . r mb t . android . util . format Age String Ċ import Ġat . r tr . r mb t . android . util . format Alt itude Ċ import Ġat . r tr . r mb t . android . util . format Coordinate Ċ import Ġat . r tr . r mb t . android . util . format Speed Ċ import Ġat . spec ure . location . Location Info Ċ Ċ /** Ċ Ġ* ĠA Ġbinding Ġadapter Ġthat Ġis Ġused Ġfor Ġshow Ġlocation Ġposition Ċ Ġ*/ Ċ @ Binding Adapter (" location Position ") Ċ fun ĠAppCompat TextView . setLocation Position ( location Info : ĠLocation Info ?) Ġ{ ĊĊĠĠĠ Ġlocation Info ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformatted Latitude Ġ= Ġlocation Info . format Coordinate ( location Info . latitude ) ĊĠĠĠĠĠĠĠ Ġval Ġformatted Longitude Ġ= Ġlocation Info . format Coordinate ( location Info . longitude ) ĊĠĠĠĠĠĠĠ Ġval Ġlatitude Text Ġ= Ġif Ġ( location Info . latitude Direction Ġ== ĠLocation Info . Location Card inal Directions . NORTH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . location _ location _ direction _ n , Ġformatted Latitude ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . location _ location _ direction _ s , Ġformatted Latitude ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlongitude Text Ġ= Ġif Ġ( location Info . longitude Direction Ġ== ĠLocation Info . Location Card inal Directions . EAST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . location _ location _ direction _ e , Ġformatted Longitude ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . location _ location _ direction _ w , Ġformatted Longitude ) ĊĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġcontext . getString ( R . string . location _ dialog _ position , Ġlatitude Text , Ġlongitude Text ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" location Accuracy ") Ċ fun ĠAppCompat TextView . setLocation Accuracy ( location Info : ĠLocation Info ?) Ġ{ ĊĠĠĠ Ġlocation Info ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Accuracy Ġ= Ġlocation Info . format Accuracy () ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġif Ġ( format Accuracy Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . location _ dialog _ accuracy , Ġformat Accuracy ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" location Alt itude ") Ċ fun ĠAppCompat TextView . setLocation Alt itude ( location Info : ĠLocation Info ?) Ġ{ ĊĠĠĠ Ġlocation Info ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Alt itude Ġ= Ġlocation Info . format Alt itude () ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġif Ġ( format Alt itude Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . location _ dialog _ accuracy , Ġformat Alt itude ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" location Speed ") Ċ fun ĠAppCompat TextView . setLocation Speed ( location Info : ĠLocation Info ?) Ġ{ ĊĠĠĠ Ġlocation Info ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Speed Ġ= Ġlocation Info . format Speed () ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġif Ġ( format Speed Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . location _ dialog _ speed , Ġformat Speed ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" location Age ") Ċ fun ĠAppCompat TextView . setLocation Age ( location Info : ĠLocation Info ?) Ġ{ ĊĠĠĠ Ġlocation Info ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Age Ġ= Ġlocation Info . format Age String () ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġcontext . getString ( R . string . location _ dialog _ age , Ġformat Age ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġbinding Ġadapter Ġthat Ġis Ġused Ġfor Ġshow Ġlocation Ġposition Ċ Ġ*/ Ċ @ Binding Adapter (" location Provider ") Ċ fun ĠAppCompat TextView . setLocation Provider ( location Provider : ĠString ?) Ġ{ ĊĠĠĠ Ġtext Ġ= Ġlocation Provider Ġ?: Ġcontext . getString ( R . string . location _ dialog _ not _ available ) Ċ }