package Ġcom . decimal ab . easy task . view . adapt or Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . decimal ab . easy task . R Ċ import Ġcom . decimal ab . easy task . databinding . Custom Task ListView Binding Ċ import Ġcom . decimal ab . easy task . model . local . entity . Task Entity Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠSh ak il ĠAh med ĠSh aj Ġon Ġ 1 6 , April , 2 0 2 0 . Ċ Ġ* Ġsh ak il ah med sh aj @ gmail . com Ċ Ġ*/ Ċ class ĠTask Adapter ( private Ġval Ġtask List : ĠArrayList < Task Entity >) Ġ: Ġ// ArrayList < Task Response >) ĊĠĠĠ ĠRecyclerView . Adapter < Task Adapter . ViewHolder >() Ġ{ ĊĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtask CallBack : ĠTask CallBack ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠCustom Task ListView Binding Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . custom _ task _ list _ view , Ġparent , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( binding ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtask List . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata : ĠTask Entity Ġ= Ġtask List [ position ] Ġ// data : ĠTask Response ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( data . status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" PENDING " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . bg _ color Ġ= ĠR . color . status _ pending ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" STARTED " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . bg _ color Ġ= ĠR . color . status _ started ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . bg _ color Ġ= ĠR . color . status _ completed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . task List Binding . task Ġ= Ġdata ĊĊĠĠĠĠĠĠĠ Ġholder . set Task CallBack ( task CallBack ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Task CallBack ( task CallBack : ĠTask CallBack ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . task CallBack Ġ= Ġtask CallBack ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( binding : ĠCustom Task ListView Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ), ĊĠĠĠĠĠĠĠ ĠView . OnClickListener , ĠView . On Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtask List Binding : ĠCustom Task ListView Binding Ġ= Ġbinding ĊĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġtask CallBack : ĠTask CallBack ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask List Binding . root . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask List Binding . root . setOn Long ClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Task CallBack ( task CallBack : ĠTask CallBack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . task CallBack Ġ= Ġtask CallBack ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( v Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask CallBack . on Task Click ( v , Ġadapter Position , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Long Click ( v : ĠView ?): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( v Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask CallBack . on Task Click ( v , Ġadapter Position , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊ Ċ }