package Ġcom . example . gallery app . adapter Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . gallery app . databinding . View holder Photo Item Binding Ċ import Ġcom . example . gallery app . extensions . load Center Crop Ċ Ċ class ĠPhoto ListAdapter ( ĊĠĠĠ Ġprivate Ġval Ġremove Photo Listener : Ġ( Uri ) Ġ-> ĠUnit Ċ ) Ġ: ĠRecyclerView . Adapter < Photo ListAdapter . Product Item ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġimage Uri List : ĠList < Uri > Ġ= ĠlistOf () ĊĊĠĠĠ Ġinner Ġclass ĠProduct Item ViewHolder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠView holder Photo Item Binding ĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind Data ( data : ĠUri ) Ġ= Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphoto ImageView . load Center Crop ( data . toString (), Ġ 8 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind Views ( data : ĠUri ) Ġ= Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Photo Listener ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠProduct Item ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠView holder Photo Item Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠProduct Item ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠProduct Item ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind Data ( image Uri List [ position ]) ĊĠĠĠĠĠĠĠ Ġholder . bind Views ( image Uri List [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġimage Uri List . size ĊĊĠĠĠ Ġfun Ġset Photo List ( image Uri List : ĠList < Uri >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . image Uri List Ġ= Ġimage Uri List ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ } Ċ