package Ġid . r sd iz . the game db . mobile . developer . adapter Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġid . r sd iz . the game db . core . domain . model . De velopers Ċ import Ġid . r sd iz . the game db . mobile . developer . R Ċ import Ġid . r sd iz . the game db . mobile . developer . databinding . Item Developer List Binding Ċ Ċ class ĠDevelopers Adapter Ġ: ĠRecyclerView . Adapter < De velopers Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġdevelopers : ĠMutable List < De velopers > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġprivate Ġvar Ġon Item Click : Ġ(( De velopers ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġset De velopers ( developers : ĠList < De velopers >) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( this . developers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd All ( developers ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On ItemClickListener ( listener : Ġ(( De velopers ) Ġ-> ĠUnit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Item Click Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġview Type : ĠInt ĊĠĠĠ Ġ): ĠDevelopers Adapter . ViewHolder Ġ= ĊĠĠĠĠĠĠĠ ĠViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem Developer List Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠDevelopers Adapter . ViewHolder , Ġposition : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ Ġholder . bind ( developers [ position ]) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġdevelopers . size ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( private Ġval Ġbinding : ĠItem Developer List Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( developers : ĠDevelopers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Name . text Ġ= Ġdevelopers . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Games Count . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . context . getString ( R . string . games _ count _ value , Ġdevelopers . games Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers . image Background ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠRequest Options (). center Crop () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( root . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( Uri . parse ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( developers Image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Click ?. invoke ( developers [ binding Adapter Position ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ