package Ġmk . web factory . template . feature . home . ui . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . paging . Paging Data Adapter Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġmk . web factory . template . model . movie . Show Ċ import Ġmk . web factory . view binder adapter . Binder ViewHolder Ċ import Ġmk . web factory . view binder adapter . View Binder Adapter Ċ Ċ class ĠShow Item View Adapter ( item ClickListener : Ġ( Show ) Ġ-> ĠUnit ) Ġ: ĊĠĠĠ ĠP aging Data Adapter < Show , ĠB inder ViewHolder >( REPO _ COMP AR ATOR ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠRE PO _ COMP AR ATOR Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Show >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠShow , Ġnew Item : ĠShow ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item Ġ== Ġnew Item ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠShow , Ġnew Item : ĠShow ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġbinder Adapter : ĠView Binder Adapter Ġ= ĠView Binder Adapter () ĊĠĠĠĠĠĠĠ Ġ. addView Binder ( Movie Type Binder ( item ClickListener )) ĊĠĠĠĠĠĠĠ Ġ. addView Binder ( Tv Show Type Binder ( item ClickListener )) ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠB inder ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbinder Adapter . create ViewHolder ( parent , Ġview Type , ĠLayoutInflater . from ( parent . context )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠB inder ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinder Adapter . bind ViewHolder ( holder , ĠgetItem ( position ) !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbinder Adapter . getItem ViewType ( getItem ( position )) ĊĠĠĠ Ġ} Ċ }