package Ġda . re za . spy . ui . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġda . re za . spy . R Ċ import Ġda . re za . spy . data . remote . responses . Image Result Ċ import Ġda . re za . spy . databinding . Se ar ched Item Model Ċ import Ġda . re za . spy . ui . base . Binding ViewHolder ĊĊ Ċ class ĠS ear ched Image Adapter ( val Ġlistener : On Search Item Click Lister ) Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġimage List : ĠMutable List < Image Result > Ġ= Ġmutable ListOf () ĊĊĊĠĠĠ Ġfun Ġrefresh Data ( items : ĠMutable List < Image Result >) Ġ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdiff Callback Ġ= ĠCustom Diff Util ( image List , Ġitems ) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Result Ġ= ĠDiff Util . calculate Diff ( diff Callback ) ĊĠĠĠĠĠĠĠ Ġimage List . clear () ĊĠĠĠĠĠĠĠ Ġimage List . addAll ( items ) ĊĠĠĠĠĠĠĠ Ġdiff Result . dispatch Updates To ( this ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ= ĊĠĠĠĠĠĠĠ ĠViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . sear ched _ image _ item _ model , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . binding . item Ġ= Ġimage List [ position ] ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Item Clicked ( image List [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġimage List . size ĊĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠBinding ViewHolder < Se ar ched Item Model >( view ) ĊĊĊĠĠĠ Ġinterface ĠOn Search Item Click Lister { ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Clicked ( item : Image Result ) ĊĠĠĠ Ġ} Ċ Ċ }