package Ġcom . mv k . gallery ob vious . ui . main . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . mv k . gallery ob vious . Image App Ċ import Ġcom . mv k . gallery ob vious . data . model . Image Ċ import Ġcom . mv k . gallery ob vious . data . model . ImageData Ċ import Ġcom . mv k . gallery ob vious . databinding . Item View Home Main Binding Ċ import Ġcom . mv k . gallery ob vious . ui . main . utils . Image ClickListener Ċ Ċ /** Ċ Ġ* ĠRe cycler Ġview Ġadapter Ġfor Ġthe Ġmain Ġscreen Ġlisting . Ċ Ġ* Ċ Ġ* Ġ@ param Ġimage List ĠList Ġof Ġimages Ġto Ġdisplay Ġin Ġthe Ġactivity Ċ Ġ* Ġ@ param Ġimage ClickListener ĠListener Ġto Ġhandle Ġclicks Ġof Ġthe Ġimages Ċ Ġ*/ Ċ class ĠMain Gallery Adapter ( ĊĠĠĠĠĠĠĠ Ġvar Ġimage List : ĠArray < Image > ?, ĊĠĠĠĠĠĠĠ Ġvar Ġimage ClickListener : ĠImage ClickListener Ċ ) Ġ: ĠRecyclerView . Adapter < Main Gallery Adapter . Main Gallery Item ViewHolder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠMain Gallery Item ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠItem View Home Main Binding . inflate ( in flater , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠMain Gallery Item ViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠMain Gallery Item ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġimage List ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind Items ( it , Ġimage ClickListener , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġimage List ?. size Ġ?: Ġ 0 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠView Ġholder Ġto Ġdisplay Ġthe Ġimages ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġbinding ĠBinding Ġwith Ġthe Ġlayout Ġfile Ġ( item _ view _ home _ main . xml ) Ġto Ġaccess Ġit 's Ġelements ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinner Ġclass ĠMain Gallery Item ViewHolder ( var Ġbinding : ĠItem View Home Main Binding ) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠLoads Ġthe Ġimages Ġthrough ĠG lide Ġand Ġhandles Ġclick Ġof Ġeach Ġitem ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġimages ĠList Ġof Ġimages Ġto Ġshow ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġimage ClickListener ĠListener Ġto Ġhandle Ġclicks Ġon Ġeach Ġbutton ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġposition ĠPosition Ġof Ġthe Ġcurrent Ġloading Ġimage ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġbind Items ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimages : ĠArray < Image >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage ClickListener : ĠImage ClickListener , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCall Ġimage Ġservice ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage App . image Service . load Images ( url Ġ= Ġimages [ position ]. url , Ġtarget IV Ġ= Ġbinding . rv Item Home Main ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġclick Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rv Item Home Main . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage ClickListener . onClick ( ImageData ( images , Ġposition )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }