package Ġco . zs mb . rain bow cake . guardian demo . ui . list Ċ Ċ import Ġandroid . text . Html Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġco . zs mb . rain bow cake . guardian demo . R Ċ import Ġco . zs mb . rain bow cake . guardian demo . databinding . Item News Binding Ċ import Ġco . zs mb . rain bow cake . guardian demo . ui . list . List Presenter . News Item Ċ import Ġco il . load Ċ Ċ class ĠNews Adapter Ġ: ĠList Adapter < News Item , ĠNews Adapter . ViewHolder >( News Item Comparator ) Ġ{ ĊĊĠĠĠ Ġvar Ġlistener : ĠListener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ news , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding Ġ= ĠItem News Binding . bind ( item View ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġnews Item : ĠNews Item ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnews Item ?. let Ġ{ Ġlistener ?. on News ItemSelected ( it . id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( item : ĠNews Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnews Item Ġ= Ġitem ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . headline Text . text Ġ= Ġitem . headline ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . trail Text . text Ġ= ĠHtml . from Html ( item . trail ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . thumbnail Image . load ( item . thumbnail Url ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon News ItemSelected ( id : ĠString ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ