package Ġat . sun il son . vehicle . presentation . vehicle Overview . ep x oy . models Ċ Ċ import Ġandroid . widget . TextView Ċ import Ġat . sun il son . k tx . datetime . to Z onedDateTime Ċ import Ġat . sun il son . presentation core . e po xy . Kotlin E po xy Holder Ċ import Ġat . sun il son . presentation core . extensions . format Full Ċ import Ġat . sun il son . vehicle . R Ċ import Ġat . sun il son . vehicle core . domain . entities . Location Ċ import Ġat . sun il son . vehicle core . domain . entities . Vehicle Ċ import Ġcom . air bnb . e po xy . E po xy Attribute Ċ import Ġcom . air bnb . e po xy . E po xy Model Class Ċ import Ġcom . air bnb . e po xy . E po xy Model With Holder Ċ import Ġcom . google . android . libraries . maps . Camera Update Factory Ċ import Ġcom . google . android . libraries . maps . MapView Ċ import Ġcom . google . android . libraries . maps . model . Bitmap Descriptor Factory Ċ import Ġcom . google . android . libraries . maps . model . LatLng Ċ import Ġcom . google . android . libraries . maps . model . Marker Ċ import Ġcom . google . android . libraries . maps . model . Marker Options Ċ Ċ @ E po xy Model Class Ċ abstract Ġclass ĠVehicle Location Widget Model Ġ: ĊĠĠĠ ĠE po xy Model With Holder < Vehicle Location Widget Model . Holder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetDefault Layout () Ġ= ĠR . layout . vehicle _ location _ widget ĊĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġlateinit Ġvar Ġvehicle : ĠVehicle ĊĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġvar Ġlocation : ĠLocation ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ E po xy Attribute ( hash Ġ= Ġfalse ) ĊĠĠĠ Ġlateinit Ġvar Ġon Map Click : Ġ( String ) Ġ-> ĠUnit ĊĊĠĠĠ Ġprivate Ġvar Ġprevious Marker : ĠMarker ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġbind ( holder : ĠH older ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation ?. timestamp ?. to Z onedDateTime ()?. format Full () Ġ?: Ġtimestamp . context . getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . nothing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . onCreate ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . getMap Async Ġ{ Ġgoogle Map Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . ui Settings . is Map Toolbar Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . ui Settings . is My Location Button Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . ui Settings . is Comp ass Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . setOn Map ClickListener Ġ{ Ġon Map Click ( vehicle . vin ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Marker ?. remove () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Marker Ġ= Ġgoogle Map . add Marker ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMarker Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. position ( LatLng ( it . lat , Ġit . lng )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. icon ( Bitmap Descriptor Factory . from Resource ( R . drawable . zo e )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . move Camera ( Camera Update Factory . new LatLng ( LatLng ( it . lat , Ġit . lng ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġun bind ( holder : ĠH older ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . unbind ( holder ) ĊĠĠĠĠĠĠĠ Ġprevious Marker ?. remove () ĊĠĠĠĠĠĠĠ Ġprevious Marker Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠH older Ġ: ĠKotlin E po xy Holder () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġby Ġbind < MapView >( R . id . map ) ĊĠĠĠĠĠĠĠ Ġval Ġtimestamp Ġby Ġbind < TextView >( R . id . timestamp ) ĊĠĠĠ Ġ} Ċ } Ċ