package Ġdev . yun z ai . m ili brary . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġdev . yun z ai . m ili brary . R Ċ import Ġdev . yun z ai . m ili brary . data . model . Book Ċ import Ġdev . yun z ai . m ili brary . databinding . Item Long Book Binding Ċ Ċ class ĠBook Long ListAdapter ( ĊĠĠĠ Ġprivate Ġval Ġclick Listener : Ġ(( Book ) Ġ-> ĠUnit )? Ġ= Ġnull Ċ ) Ġ: ĠRecyclerView . Adapter < Book Long ListAdapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlist Ġ= Ġarray ListOf < Book >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠItem Long Book Binding Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Binding Util . inflate ( LayoutInflater . from ( parent . context ), ĠR . layout . item _ long _ book , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġlist [ position ] ĊĠĠĠĠĠĠĠ Ġwith ( holder . binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextView . text Ġ= Ġitem . title Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextView . text Ġ= Ġitem . title Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor TextView . text Ġ= Ġitem . authors Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory TextView . text Ġ= Ġitem . category Name Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublish Date TextView . text Ġ= Ġitem . pub Date Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcom . bump tech . glide . G lide . with ( holder . item View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( item . thumbnail ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. thumbnail ( 0 . 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( book Image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Listener ?. invoke ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġlist . size ĊĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . list . clear () ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd ( list : ĠArrayList < Book >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Size Ġ= Ġthis . list . size ĊĠĠĠĠĠĠĠ Ġthis . list . addAll ( list ) ĊĠĠĠĠĠĠĠ Ġnotify Item Range Changed ( current Size , Ġthis . list . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( val Ġbinding : ĠItem Long Book Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ċ } Ċ