package Ġcom . example . todo app čĊč Ċ import Ġandroid . content . Context č Ċ import Ġandroid . graphics . Color č Ċ import Ġandroid . view . LayoutInflater č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . ViewGroup č Ċ import Ġandroid . widget . ImageView č Ċ import Ġandroid . widget . TextView č Ċ import Ġandroidx . constraint layout . widget . Constraint Layout č Ċ import Ġandroidx . recyclerview . widget . RecyclerView čĊčĊč Ċ class ĠNotes RV Adapter ( private Ġval Ġcontext : ĠContext , Ġprivate Ġval Ġlistener : ĠIn Notes RV Adapter ) Ġ: ĠRecyclerView . Adapter < Notes RV Adapter . Note ViewHolder > (){ čĊčĊĠĠĠ Ġval Ġall Notes Ġ= ĠArrayList < Note >() čĊĠĠĠ Ġinner Ġclass ĠNote ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ){ čĊĠĠĠĠĠĠĠ Ġval Ġlinear Layout Ġ= ĠitemView . findViewById < Constraint Layout >( R . id . recycler layout ) čĊĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= ĠitemView . findViewById < TextView >( R . id . text ) !! čĊĠĠĠĠĠĠĠ Ġval Ġdelete Button Ġ= ĠitemView . findViewById < ImageView >( R . id . delete Button ) !! čĊĠĠĠĠĠĠĠ Ġ// val Ġcompleted = ĠitemView . findViewById < ImageView >( R . id . completed ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠNote ViewHolder Ġ{ čĊĠĠĠĠĠĠĠ Ġval ĠviewHolder Ġ= ĠNote ViewHolder ( LayoutInflater . from ( context ). inflate ( R . layout . item _ note , parent , false )) čĊĠĠĠĠĠĠĠ ĠviewHolder . delete Button . setOnClickListener { čĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Item Clicked ( all Notes [ view Holder . adapter Position ]) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn ĠviewHolder čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠNote ViewHolder , Ġposition : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġcurrent Note Ġ= Ġall Notes [ position ] čĊĠĠĠĠĠĠĠ Ġholder . linear Layout . set BackgroundColor ( Color . parse Color ( current Note . color )) čĊĠĠĠĠĠĠĠ Ġholder . textView . text = current Note . text č Ċ // ĠĠĠĠĠĠĠ Ġholder . textView . set BackgroundColor ( Color . parse Color ( current Note . color )) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġall Notes . size čĊĠĠĠ Ġ} čĊĠĠĠ Ġfun Ġupdate List ( new List : ĠList < Note >) Ġ: ĠString { čĊĠĠĠĠĠĠĠ Ġall Notes . clear () čĊĠĠĠĠĠĠĠ Ġall Notes . addAll ( new List ) čĊĠĠĠĠĠĠĠ Ġval Ġcount = Ġitem Count čĊĠĠĠĠĠĠĠ Ġval Ġhead text Ġ= Ġ"$ count ĠTasks ĠAvailable " čĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () čĊĠĠĠĠĠĠĠ Ġreturn Ġhead text čĊĠĠĠ Ġ} čĊč Ċ // ĠĠĠ Ġfun Ġupdate tick ( new List : ĠList < Note >, Ġcount : ĠInt ) Ġ: ĠString { č Ċ // ĠĠĠĠĠĠĠ Ġall Notes . clear () č Ċ // ĠĠĠĠĠĠĠ Ġall Notes . addAll ( new List ) č Ċ // ĠĠĠĠĠĠĠ Ġval Ġcount 1 = Ġcount č Ċ // ĠĠĠĠĠĠĠ Ġval Ġhead text Ġ= Ġ"$ count 1 ĠTasks ĠDone " č Ċ // ĠĠĠĠĠĠĠ Ġnotify DataSet Changed () č Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġhead text č Ċ // ĠĠĠ Ġ} čĊč Ċ } čĊč Ċ interface ĠIn Notes RV Adapter { čĊĠĠĠ Ġfun Ġon Item Clicked ( note : ĠNote ){ čĊčĊĠĠĠ Ġ} č Ċ } čĊčĊ