package Ġcom . alex zh . test app . ui . home . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . alex zh . test app . R Ċ import Ġcom . alex zh . test app . model . Task Ċ Ċ class ĠTask Adapter Ġ: ĠRecyclerView . Adapter < Task ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġitem Click : Ġ(( Task ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfavour ite Icon Click : Ġ(( Task ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġtasks Ġ= Ġmutable ListOf < Task >() ĊĊĠĠĠ Ġfun Ġset Tasks ( tasks : ĠList < Task >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . tasks . clear () ĊĠĠĠĠĠĠĠ Ġthis . tasks . addAll ( tasks ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On Item Click ( item Click : Ġ( Task ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . item Click Ġ= Ġitem Click ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On F avour ite Icon Click ( fav our ite Icon Click : Ġ( Task ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . fav our ite Icon Click Ġ= Ġfavour ite Icon Click ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠTask ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTask ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ task , Ġparent , Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfavour ite Icon Click , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Click ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠTask ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( tasks [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġtasks . size Ċ } Ċ