package Ġorg . wit . guild manager app . adapters Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġkotlinx . android . synt hetic . main . fragment _ create _ player .* Ċ import Ġkotlinx . android . synt hetic . main . recycler _ view _ item . view .* Ċ import Ġorg . wit . guild manager app . R Ċ import Ġorg . wit . guild manager app . listeners . Item RecyclerView Listener Ċ import Ġorg . wit . guild manager app . models . Item Model Ċ import Ġorg . wit . guild manager app . view Models . Item ViewModel Ċ Ċ class ĠItem Model Adapter Ġ: ĠRecyclerView . Adapter < Item Model Adapter . Item ViewModel >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġitems Ġ= Ġmutable ListOf < Item Model >() ĊĠĠĠ Ġvar Ġlistener : ĠItem RecyclerView Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġview Type : ĠInt ĊĠĠĠ Ġ) Ġ= ĠItem ViewModel ( ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . recycler _ view _ item , Ġparent , Ġfalse ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġitems . size ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠItem ViewModel , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . view . text _ view _ name . text Ġ= Ġitems [ position ]. name ĊĊĠĠĠĠĠĠĠ Ġholder . view . delete _ item . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on RecyclerView Button Click ( it , Ġitems [ position ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Items ( items : ĠList < Item Model >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . items Ġ= Ġitems Ġas ĠMutable List < Item Model > ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġadd Item ( item : ĠItem Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! items . contains ( item )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġitems . indexOf ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . item Deleted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems . remove At ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems [ index ] Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠItem ViewModel ( val Ġview : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ċ }