package Ġcom . app . ui . main . news Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . app . call Back s . R cy l cv Item Click Ċ import Ġcom . app . d agger kotlin . R Ċ import Ġcom . app . d agger kotlin . databinding . ListItem News Binding Ċ import Ġcom . app . models . News Entity Ċ import Ġjava . util . ArrayList Ċ Ċ class ĠNews Adapter Ġ: ĠRecyclerView . Adapter < News Adapter . My ViewHolder >() Ċ { ĊĠĠĠ Ġprivate Ġvar Ġnews ItemList : ĠArrayList < News Entity > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġclick Listener Ġ: ĠR cy l cv Item Click ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠMy ViewHolder ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ: ĠListItem News Binding Ġ= ĠData Binding Util ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( LayoutInflater . from ( parent . context ), ĠR . layout . list _ item _ news , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠMy ViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠBind s Ġeach Ġdata Ġin Ġthe ĠArrayList Ġto Ġa Ġview ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠMy ViewHolder , Ġposition : ĠInt ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Model Ġ= Ġnews ItemList [ position ] ĊĠĠĠĠĠĠĠ Ġholder . data Item Binding . data Manager Ġ= Ġdata Model ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠGets Ġthe Ġnumber Ġof ĠItems Ġin Ġthe Ġlist ĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġnews ItemList . size ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ= Ġposition ĊĊĠĠĠ Ġ// ĠUpdate Data Ġmethod Ġis Ġto Ġadd Ġitems Ġin Ġthe Ġnews ItemList Ġand Ġnotify Ġthe Ġadapter Ġfor Ġthe Ġdata Ġchange . ĊĠĠĠ Ġfun Ġupdate Data ( news ItemList : ĠArrayList < News Entity >) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . news ItemList Ġ= Ġnews ItemList ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On ItemClickListener ( m ItemClickListener Ġ: ĠR cy l cv Item Click ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . click Listener Ġ= Ġm ItemClickListener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠMy ViewHolder ( data Item Layout Binding : ListItem News Binding ) Ġ: ĠRecyclerView . ViewHolder ( data Item Layout Binding . root ), ĠView . OnClickListener ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġdata Item Binding Ġ: ĠListItem News Binding Ġ= Ġdata Item Layout Binding ĊĊĠĠĠĠĠĠĠ Ġinit ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Item Layout Binding . root . tag Ġ= Ġdata Item Layout Binding . root ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ?) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( click Listener Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick Listener !!. on Item Click ( view !! , Ġadapter Position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ