package Ġcom . example . hw 5 . ui . film list . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . hw 5 . R Ċ import Ġcom . example . hw 5 . base . Base RecyclerView ItemClickListener Ċ import Ġcom . example . hw 5 . databinding . Row Favorite Film Binding Ċ import Ġcom . example . hw 5 . ui . film list . model . Favorite Film Ċ Ċ class ĠF avorite Film ListAdapter ( var Ġfavorite Film List : ĠList < Favorite Film >) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Favorite Film ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġitem ClickListener : ĠBase RecyclerView ItemClickListener < Favorite Film >? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġfavorite Film List : ĠList < Favorite Film >, ĊĠĠĠĠĠĠĠ Ġitem ClickListener : ĠBase RecyclerView ItemClickListener < Favorite Film > ĊĠĠĠ Ġ) Ġ: Ġthis ( favorite Film List ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . item ClickListener Ġ= Ġitem ClickListener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠF avorite Film ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠF avorite Film ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . row _ favorite _ film , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠF avorite Film ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfavorite Film Ġ= Ġthis . favorite Film List [ position ] ĊĠĠĠĠĠĠĠ Ġholder . populate ( favorite Film ) ĊĠĠĠĠĠĠĠ Ġholder . setOn ItemClickListener ( favorite Film , Ġthis . item ClickListener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġthis . favorite Film List . size Ċ } Ċ Ċ class ĠF avorite Film ViewHolder ( private Ġval Ġbinding : ĠRow Favorite Film Binding ) Ġ: ĊĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠ Ġfun Ġpopulate ( favorite Film : ĠF avorite Film ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . favorite Film Ġ= Ġfavorite Film ĊĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On ItemClickListener ( ĊĠĠĠĠĠĠĠ Ġfavorite Film : ĠF avorite Film , ĊĠĠĠĠĠĠĠ Ġitem ClickListener : ĠBase RecyclerView ItemClickListener < Favorite Film >? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . delete Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ClickListener !!. on Item Clicked ( favorite Film , Ġit . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . got om ov ie . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ClickListener !!. on Item Clicked ( favorite Film , Ġit . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }