package Ġcom . github . al unic us . cin em alist . feature . movie . presentation . popular movies Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . paging . Paged ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . github . al unic us . cin em alist . R Ċ import Ġcom . github . al unic us . cin em alist . databinding . Item Pop ular Movie Binding Ċ import Ġcom . github . al unic us . cin em alist . extensions . load Image Ċ import Ġcom . github . al unic us . cin em alist . feature . movie . domain . model . Pop ular Movie Ċ Ċ class ĠPop ular Movies Adapter ( private Ġval ĠonClick : Ġ( movie Id : ĠInt ) Ġ-> ĠUnit ) Ġ: ĊĠĠĠ ĠP aged ListAdapter < Pop ular Movie , ĠPop ular Movies Adapter . ViewHolder >( Pop ular Movie Diff Util ()) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠItem Pop ular Movie Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġprivate Ġval Ġitems Ġ= Ġmutable ListOf < Pop ular Movie >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠItem Pop ular Movie Binding ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠgetItem ( position )?. let Ġ{ Ġholder . bind ( it , ĠonClick ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Items ( list : ĠList < Pop ular Movie >) Ġ{ ĊĠĠĠĠĠĠĠ Ġitems . clear () ĊĠĠĠĠĠĠĠ Ġitems . addAll ( list ) ĊĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( binding : ĠItem Pop ular Movie Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġposter Ġ= Ġbinding . popular Movie Post er ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġname Ġ= Ġbinding . popular Movie Name ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( movie : ĠPop ular Movie , ĠonClick : Ġ( movie Id : ĠInt ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmovie . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . text Ġ= Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposter . load Image ( poster Path , ĠR . drawable . movie _ placeholder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĠonClick ( id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }