package Ġpl . tot emp ot em . square on etest . ui . mov iel ist Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġpl . tot emp ot em . square on etest . R Ċ import Ġpl . tot emp ot em . square on etest . databinding . Movie ListItem Binding Ċ import Ġpl . tot emp ot em . square on etest . model . Movie ĊĊ Ċ class ĠMov ies Adapter ( private Ġval Ġlistener : ĠMovie ClickListener ): ĠRecyclerView . Adapter < Movies Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmovies Ġ= ĠArrayList < Movie >() ĊĊĠĠĠ Ġinterface ĠMovie ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Movie Click ( id : ĠString ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( private Ġval Ġbinding : ĠMovie ListItem Binding , Ġprivate Ġval Ġlistener : ĠMovie ClickListener ): ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovie : ĠMovie ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( movie : ĠMovie ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . movie Ġ= Ġmovie ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ Ġlistener . on Movie Click ( movie . id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . title . text Ġ= Ġmovie . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( movie . has Post er ()) ĠPic asso . with ( item View . context ). load ( movie . poster ). into ( binding . poster ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġbinding . poster . setImage Resource ( R . drawable . no _ poster ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġmovies . size ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMovie ListItem Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( movies [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Items ( items : ĠList < Movie >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . movies . clear () ĊĠĠĠĠĠĠĠ Ġadd Items ( items ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Items ( items : ĠList < Movie >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . movies . addAll ( items ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear Items () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . movies . clear () ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ }