package Ġde . hpi . android . news . presentation . list Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġde . hpi . android . core . presentation . base . Base Adapter Ċ import Ġde . hpi . android . core . presentation . base . Base ViewHolder Ċ import Ġde . hpi . android . news . databinding . News Item Article Binding Ċ import Ġde . hpi . android . news . domain . Article Ċ Ċ class ĠArticle Adapter ( val Ġon Article Selected : Ġ( Article ) Ġ-> ĠUnit ) Ġ: ĊĠĠĠ ĠBase Adapter < Article , ĠArticle Adapter . ViewHolder , ĠNews Item Article Binding >() Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠNews Item Article Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old : ĠArticle , Ġnew : ĠArticle ) Ġ= Ġold . id Ġ== Ġnew . id ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old : ĠArticle , Ġnew : ĠArticle ) Ġ= Ġold . title Ġ== Ġnew . title ĊĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( binding : ĠNews Item Article Binding ) Ġ: ĠBase ViewHolder < Article , ĠNews Item Article Binding >( binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Set () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . article Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Article Selected ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ