package Ġcom . al wan . google books app . ui . main Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . al wan . google books app . data . source . local . entity . Book Entity Ċ import Ġcom . al wan . google books app . databinding . Item Book Binding Ċ import Ġcom . al wan . google books app . utils . load Image Ċ Ċ class ĠBook Adapter ( private Ġval Ġcallback : ĠBook Callback ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Book Adapter . Book ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlist Book Ġ= ĠArrayList < Book Entity >() ĊĊĠĠĠ Ġfun Ġset Book ( book Entities : ĠArrayList < Book Entity > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġlist Book . clear () ĊĠĠĠĠĠĠĠ Ġbook Entities ?. let Ġ{ Ġlist Book . addAll ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠBook Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Book Click ( book : ĠBook Entity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠBook ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Book Binding Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem Book Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠBook ViewHolder ( item Book Binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠBook ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( list Book [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġlist Book . size ĊĊĠĠĠ Ġinner Ġclass ĠBook ViewHolder ( private Ġval Ġbinding : ĠItem Book Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( book : ĠBook Entity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Title Book . text Ġ= Ġbook . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Author Book . text Ġ= Ġbook . authors ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Categories . text Ġ= Ġbook . categories ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg Book . load Image ( book . thumbnail Links ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . setOnClickListener Ġ{ Ġcallback . on Book Click ( book ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }