package Ġcom . van pr a . material bare x ample Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġco il . api . load Ċ import Ġkotlinx . android . synt hetic . main . bottom _ sheet _ menu _ items . view .* Ċ Ċ data Ġclass ĠMenuItem ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġimage : ĠInt Ċ ) Ċ Ċ class ĠMenuItem Adapter ( private Ġval Ġlistener : Ġ( String ) Ġ-> ĠUnit ) Ġ: ĊĠĠĠ ĠList Adapter < MenuItem , ĠMenuItem Adapter . ViewHolder >( Format Differ ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( parent . inflate ( R . layout . bottom _ sheet _ menu _ items , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġholder . bind Item ( item ) ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" ITEM ", Ġitem . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ( item . name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( v : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( v ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġview : ĠView Ġ= Ġv ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind Item ( item : ĠMenuItem ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . item . text Ġ= Ġitem . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . item Image . load ( item . image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠViewGroup . inflate (@ Layout Res Ġlayout Res : ĠInt , Ġattach To Root : ĠBoolean Ġ= Ġfalse ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLayoutInflater . from ( context ). inflate ( layout Res , Ġthis , Ġattach To Root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠFormat Differ Ġ: ĠDiff Util . Item Callback < MenuItem >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠMenuItem , Ġnew Item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠMenuItem , Ġnew Item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ