package Ġcom . example . movie app . ui . Search Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . paging . Paging Data Adapter Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . movie app . databinding . Search Item Binding Ċ import Ġcom . example . movie app . model . Playing Movies Ċ import Ġcom . example . movie app . model . search model . Search Item Ċ import Ġcom . example . movie app . ui . Home Screen . Adapters . Playing Now Adapter Ċ Ċ class ĠSearch Adapter ( val Ġinter actor Ġ: On Select Item ) Ġ: ĠP aging Data Adapter < Search Item , ĠSearch Adapter . Search ViewHolder >( ĊĠĠĠ ĠSearch Item Diff Callback () Ċ ) Ġ{ ĊĠĠĠ Ġclass ĠSearch ViewHolder ( val Ġbinder : ĠSearch Item Binding , val Ġinter actor : ĠOn Select Item ) Ġ: ĠRecyclerView . ViewHolder ( binder . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Bind ( item : ĠSearch Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinder . item Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinder . root . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinter actor . onClick Item ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠSearch Item Diff Callback Ġ: ĠDiff Util . Item Callback < Search Item >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠSearch Item , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠSearch Item ĊĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠSearch Item , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠSearch Item ĊĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSearch ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠgetItem ( position )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . on Bind ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSearch ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġbinder Ġ= ĠSearch Item Binding . inflate ( in flater , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSearch ViewHolder ( binder , inter actor ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġinterface ĠOn Select Item { ĊĠĠĠĠĠĠĠ Ġfun ĠonClick Item ( item : Search Item ) ĊĠĠĠ Ġ} Ċ }