package Ġbr . com . v ict orch abel man . mov ier ank ings . adapters Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Activity Options Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġbr . com . v ict orch abel man . mov ier ank ings . R Ċ import Ġbr . com . v ict orch abel man . mov ier ank ings . activities . Movie Detail Activity Ċ import Ġbr . com . v ict orch abel man . mov ier ank ings . databinding . Item Movie Binding Ċ import Ġbr . com . v ict orch abel man . mov ier ank ings . model . Movie Ċ Ċ class ĠMovie Adapter ( val Ġactivity : ĠActivity ) Ġ: ĠRecyclerView . Adapter < Movie Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġmovie List Ġ= ĠArrayList < Movie >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmovie Binding Ġ= ĠItem Movie Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( movie Binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmovie List . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmovie Ġ= Ġmovie List [ position ] ĊĠĠĠĠĠĠĠ Ġholder . bind ( movie ) ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠMovie Detail Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Movie Detail Activity . B UNDLE _ MOV IE , Ġmovie ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposter View Ġ= Ġholder . item View . findViewById < View >( R . id . iv _ movie _ poster ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠActivity Options . make Scene Transition Animation ( activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposter View , Ġ" poster ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . startActivity ( intent , Ġoptions . to Bundle ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Movies ( movies Ġ: ĠList < Movie >) Ġ{ ĊĠĠĠĠĠĠĠ Ġmovie List . clear () ĊĠĠĠĠĠĠĠ Ġadd Movies ( movies ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Movies ( movies Ġ: ĠList < Movie >) Ġ{ ĊĠĠĠĠĠĠĠ Ġmovie List . addAll ( movies ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( val Ġbinding : ĠItem Movie Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( movie : ĠMovie ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . movie Ġ= Ġmovie ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }