package Ġru . ann in . tr uck monitor . presentation . ui . adapter Ċ Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġru . ann in . tr uck monitor . R Ċ import Ġru . ann in . tr uck monitor . presentation . ui . view holder . Item Car riage Header ViewHolder Ċ import Ġru . ann in . tr uck monitor . presentation . ui . view holder . Item Car riage ViewHolder Ċ import Ġru . ann in . tr uck monitor . presentation . ui . view model . Car riage ViewModel Ċ Ċ /** Ċ Ġ* ĠÐĲ Ð´ Ð°Ð¿ ÑĤÐµÑĢ ĠÐ³ ÑĢÑĥÐ· Ð¾Ð¿ ÐµÑĢ ÐµÐ² Ð¾Ð· Ð¾Ðº . Ċ Ġ* Ċ Ġ* Ġ@ author ĠP avel ĠAn nin . Ċ Ġ*/ Ċ class ĠCar riage Adapter ( var Ġitems : ĠList < Car riage ViewModel >? Ġ= Ġnull ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . Adapter < Item Car riage ViewHolder >(), ĠSt icky Header Adapter < Item Car riage Header ViewHolder >{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Header ViewHolder ( parent : ĠViewGroup ): ĠItem Car riage Header ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġv Root : ĠView Ġ= Ġinflater . inflate ( R . layout . item _ car ri ages _ header , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠItem Car riage Header ViewHolder ( v Root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠItem Car riage ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġv Root : ĠView Ġ= Ġinflater . inflate ( R . layout . item _ car ri ages , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠItem Car riage ViewHolder ( v Root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind Header ViewHolder ( view Holder : ĠItem Car riage Header ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitems ?. get ( position )?. let Ġ{ Ġ( id ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġitems ?. first Ġ{ Ġit . id Ġ== Ġid Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġitems ?. last Ġ{ Ġit . id Ġ== Ġid Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . show Date ( start ?. plan ed Date , Ġend ?. plan ed Date ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠItem Car riage ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitems ?. get ( position )?. let Ġ{ Ġholder . car riage Ġ= Ġit Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Header Id ( position : ĠInt ) Ġ= Ġitems ?. get ( position )?. id Ġ?: Ġ- 1 ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġitems ?. size Ġ?: Ġ 0 Ċ }