package Ġmaxim mak ar ov . any list . list Ċ Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġkotlinx . android . synt hetic . main . item _ item . view .* Ċ import Ġmaxim mak ar ov . any list . R Ċ import Ġmaxim mak ar ov . any list . item . Item Ċ Ċ /** Ċ Ġ* Ġ@ author ĠMax im ĠM ak ar ov Ċ Ġ* Ġ@ since Ġ 0 9 . 0 5 . 2 0 1 7 Ċ Ġ*/ Ċ class ĠList Adapter ( var Ġcallback : ĠIList Adapter Callback ) Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġitems : ĠMutable List < Item > Ġ= ĠArrayList () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem ViewHolder ( LayoutInflater . from ( parent . context ). inflate ( R . layout . item _ item , Ġparent , Ġfalse )) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( view Holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġholder Ġ= ĠviewHolder Ġas ĠItem ViewHolder ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġitems [ position ] ĊĊĠĠĠĠĠĠĠ Ġholder . item View . checkbox . isChecked Ġ= Ġitem . isChecked ĊĠĠĠĠĠĠĠ Ġholder . item View . checkbox . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . isChecked Ġ= Ġis Checked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . update Item ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . item View . layout _ naming . setOnClickListener Ġ{ Ġcallback . open Sub List ( item ) Ġ} ĊĠĠĠĠĠĠĠ Ġholder . item View . text _ name . text Ġ= Ġitem . name ĊĠĠĠĠĠĠĠ Ġholder . item View . text _ description . text Ġ= Ġitem . description ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitems . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Items ( items : ĠMutable List < Item >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . items Ġ= Ġitems ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Item ( item : ĠItem ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitems . add ( item ) ĊĠĠĠĠĠĠĠ Ġnotify Item Inserted ( item Count Ġ- Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠItem ViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ċ }