package Ġcom . example . flow state flow p oc . main . presentation Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . flow state flow p oc . R Ċ import Ġcom . example . flow state flow p oc . shared . extensions . inflate Ċ import Ġkotlinx . android . synt hetic . main . holder _ main . view .* Ċ import Ġkotlinx . android . synt hetic . main . holder _ photo . view .* Ċ import Ġkotlinx . android . synt hetic . main . holder _ photo . view . title TextView Ċ Ċ class ĠMain Adapter Ġ: ĠRecyclerView . Adapter < Main Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġvar Ġitems : ĠList < Main Item Holder > Ġ= ĠlistOf () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( parent . inflate ( R . layout . holder _ main )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( items [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġitems . size ĊĊĠĠĠ Ġclass ĠViewHolder ( private Ġval Ġview : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( main Item : ĠMain Item Holder ) Ġ= Ġwith ( view ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextView . text Ġ= Ġmain Item . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle TextView . text Ġ= Ġmain Item . subtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ Ġmain Item . action () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠMain Item Holder ( ĊĠĠĠ Ġval Ġtitle : ĠString , ĊĠĠĠ Ġval Ġsubtitle : ĠString , ĊĠĠĠ Ġval Ġaction : Ġ() Ġ-> ĠUnit Ċ )