package Ġscheduler . org . challenge tracker . ui . view Challenge Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġscheduler . org . challenge tracker . R Ċ import Ġscheduler . org . challenge tracker . entity . Challenge Ċ Ċ class ĠView Challenge Adapter ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext ?, ĊĠĠĠ Ġprivate Ġval Ġchallenges : ĠMutable List < Challenge >, ĊĠĠĠ Ġprivate Ġval Ġview Challenge Notifier : ĠView Challenge Notifier Ċ ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < View Challenge ViewHolder >(), ĠView Challenge Listener Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Challenge ( adapter Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Challenge Notifier . delete Challenge ( challenges [ adapter Position ], Ġadapter Position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġedit Challenge ( adapter Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Challenge Notifier . edit Challenge ( challenges [ adapter Position ]) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( adapter Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Challenge Notifier . on ItemSelected ( challenges [ adapter Position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠView Challenge ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠView Challenge ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . view _ challenge , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġthis ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠView Challenge ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . setData ( challenges [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġchallenges . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Success ( adapter Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġis Selected Challenge Ġ= Ġchallenges [ adapter Position ]. isSelected ĊĠĠĠĠĠĠĠ Ġchallenges . remove At ( adapter Position ) ĊĠĠĠĠĠĠĠ Ġif ( isSelected Challenge Ġ&& Ġchallenges . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchallenges [ 0 ]. isSelected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Challenge Notifier . update Challenge ( challenges [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠView Challenge Listener Ġ{ ĊĠĠĠ Ġfun Ġdelete Challenge ( adapter Position : ĠInt ) ĊĊĠĠĠ Ġfun Ġedit Challenge ( adapter Position : ĠInt ) ĊĊĠĠĠ Ġfun Ġon ItemSelected ( adapter Position : ĠInt ) Ċ } Ċ