package Ġcom . ce os il v aj r . my tax i . features . list Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ce os il v aj r . my tax i . R Ċ import Ġcom . ce os il v aj r . my tax i . data . entities . Vehicle Ċ import Ġcom . ce os il v aj r . my tax i . data . enums . F leet Type Ċ import Ġcom . ce os il v aj r . my tax i . features . listeners . On Vehicle Item Clicked Listener Ċ import Ġkotlinx . android . synt hetic . main . item _ vehicle . view .* Ċ Ċ /** Ċ Ġ* Ġ@ author Ġce os il v aj r @ gmail . com Ċ Ġ*/ Ċ class ĠVehicle ListAdapter ( private Ġval Ġcontext : ĠContext , Ġprivate Ġval Ġitems : ĠArrayList < Vehicle >) Ġ: ĠRecyclerView . Adapter < Vehicle ListAdapter . Adapter ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlistener : ĠOn Vehicle Item Clicked Listener ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠAdapter ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠAdapter ViewHolder ( LayoutInflater . from ( context ). inflate ( R . layout . item _ vehicle , Ġparent , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġitems . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠAdapter ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind View ( items [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Listener ( listener : ĠOn Vehicle Item Clicked Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Data ( new Items : ĠArrayList < Vehicle >) Ġ{ ĊĠĠĠĠĠĠĠ Ġitems . clear () ĊĠĠĠĠĠĠĠ Ġitems . addAll ( new Items ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠAdapter ViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġid Ġ= Ġview . tv _ vehicle _ id !! ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġf leet Type Ġ= Ġview . tv _ vehicle _ fleet _ type !! ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġheading Ġ= Ġview . tv _ vehicle _ heading !! ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlocation Ġ= Ġview . tv _ vehicle _ location !! ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġavatar Ġ= Ġview . iv _ fleet _ type !! ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontainer Ġ= Ġview . item _ vehicle _ container !! ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind View ( vehicle : ĠVehicle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid . text Ġ= Ġvehicle . id . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf leet Type . text Ġ= Ġvehicle . fleet Type ?. toUpperCase () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheading . text Ġ= Ġvehicle . heading . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation . text Ġ= Ġ" (${ vehicle . latitude } Ġ, Ġ${ vehicle . longitude })" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( vehicle . fleet Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF leet Type . POOL ING . value Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf leet Type . setBackground Resource ( R . drawable . bg _ rounded _ accent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar . setImage Resource ( R . drawable . ic _ svg _ car _ pool ing ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf leet Type . setBackground Resource ( R . drawable . bg _ rounded _ gray ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar . setImage Resource ( R . drawable . ic _ svg _ car _ tax i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(:: listener . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Vehicle Item Clicked ( vehicle , Ġitems ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }