package Ġcom . ez ored . sample . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ez ored . domain . Todo Ċ import Ġcom . ez ored . sample . R Ċ import Ġjava . util .* Ċ Ċ class ĠTodo Adapter Ġ: ĠRecyclerView . Adapter < Todo Adapter . ViewHolder > Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext ĊĠĠĠ Ġprivate Ġval Ġlist Data : ĠArrayList < Todo >? ĊĠĠĠ Ġprivate Ġvar Ġlistener : ĠTodo Adapter Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġlist Data : ĠArrayList < Todo > ?) Ġ: Ġsuper () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġthis . list Data Ġ= Ġlist Data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . list _ item _ todo , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlist Data ?. let Ġ{ Ġlist Data Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtodo Ġ= Ġlist Data [ position ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . tv Id . text Ġ= ĠString . format ( Locale . getDefault (), Ġ" ID : Ġ% d ", Ġtodo . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . tv Title . text Ġ= ĠString . format ( Locale . getDefault (), Ġ" Title : Ġ% s ", Ġtodo . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . tv Body . text Ġ= ĠString . format ( Locale . getDefault (), Ġ" Body : Ġ% s ", Ġtodo . body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . tv CreatedAt . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( Locale . getDefault (), Ġ" Created Ġat : Ġ% s ", Ġtodo . createdAt ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( todo . done ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . iv Icon . setImage Resource ( R . drawable . ic _ item _ on ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . iv Icon . setImage Resource ( R . drawable . ic _ item _ off ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . iv Icon . setColor Filter ( Context Compat . getColor ( context , ĠR . color . black )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist Data ?. size Ġ?: Ġ 0 ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Listener ( listener : ĠTodo Adapter Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠTodo Adapter Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Todo Item Click ( view : ĠView , Ġtodo : ĠTodo ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ), ĊĠĠĠĠĠĠĠ ĠView . OnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtv Id : ĠTextView Ġ= ĠitemView . findViewById ( R . id . tv _ id ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Title : ĠTextView Ġ= ĠitemView . findViewById ( R . id . tv _ title ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Body : ĠTextView Ġ= ĠitemView . findViewById ( R . id . tv _ body ) ĊĠĠĠĠĠĠĠ Ġval Ġtv CreatedAt : ĠTextView Ġ= ĠitemView . findViewById ( R . id . tv _ created _ at ) ĊĠĠĠĠĠĠĠ Ġval Ġiv Icon : ĠImageView Ġ= ĠitemView . findViewById ( R . id . iv _ icon ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Todo Item Click ( view , Ġlist Data ! ![ adapter Position ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ