package Ġcom . example . mv vm . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . example . mv vm . R Ċ import Ġcom . example . mv vm . databinding . News Item Binding Ċ import Ġcom . example . mv vm . databinding . News Source Item Binding Ċ import Ġcom . example . mv vm . model . News Article Ċ Ċ class ĠNews Adapter ( private Ġval Ġcontext : ĠContext , Ġprivate Ġvar Ġarticles : ĠList < News Article > ?) ĊĠĠĠ Ġ: ĠRecyclerView . Adapter < News Adapter . News ViewHolder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( p 0 : ĠViewGroup , Ġp 1 : ĠInt ): ĠNews ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ: ĠNews Item Binding Ġ= ĠData Binding Util . inflate ( LayoutInflater . from ( context ), ĠR . layout . news _ item , Ġp 0 , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠNews ViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġarticles ?. let Ġ{ Ġreturn Ġit . size Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( p 0 : ĠNews ViewHolder , Ġp 1 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġarticles ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp 0 . bind ( it [ p 1 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠNews ViewHolder ( private Ġval Ġbinding : ĠNews Item Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( article : ĠNews Article ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . article Ġ= Ġarticle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Pending Bindings () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }