package Ġcom . happy places . adapters Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . happy places . R Ċ import Ġcom . happy places . activities . Add Happy Place Activity Ċ import Ġcom . happy places . activities . MainActivity Ċ import Ġcom . happy places . database . Database Handler Ċ import Ġcom . happy places . models . Happy Place Model Ċ import Ġkotlinx . android . synt hetic . main . item _ happy _ place . view .* Ċ Ċ open Ġclass ĠH appy Places Adapter ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġvar Ġlist : ĠArrayList < Happy Place Model > Ċ ) Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġon CL ick Listener : ĠOn ClickListener ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠIn fl ates Ġthe Ġitem Ġviews Ġwhich Ġis Ġdesigned Ġin Ġxml Ġlayout Ġfile ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMy ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ happy _ place , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠBind s Ġeach Ġitem Ġin Ġthe ĠArrayList Ġto Ġa Ġview ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġlist [ position ] ĊĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠMy ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . iv _ place _ image . setImage URI ( Uri . parse ( model . image )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . tv Title . text Ġ= Ġmodel . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . tv Description . text Ġ= Ġmodel . description ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( on CL ick Listener Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon CL ick Listener !!. onClick ( position , Ġmodel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset OnClickListener ( on ClickListener : ĠOn ClickListener ){ ĊĠĠĠĠĠĠĠ Ġthis . on CL ick Listener Ġ= ĠonClick Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnotify Edit Item ( activity : ĠActivity , Ġposition : ĠInt , Ġrequest Code : ĠInt ){ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠAdd Happy Place Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( MainActivity . EXTRA _ PLACE _ DETAILS , Ġlist [ position ]) ĊĠĠĠĠĠĠĠ Ġactivity . startActivity For Result ( intent , Ġrequest Code ) ĊĠĠĠĠĠĠĠ Ġnotify Item Changed ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove At ( position : ĠInt ){ ĊĠĠĠĠĠĠĠ Ġval Ġdb Handler Ġ= ĠDatabase Handler ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġis Deleted Ġ= Ġdb Handler . delete Happy Place ( list [ position ]) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Deleted Ġ> Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . remove At ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Item Removed ( position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn ClickListener { ĊĠĠĠĠĠĠĠ Ġfun ĠonClick ( position : ĠInt , Ġmodel : ĠH appy Place Model ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠMy ViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ċ }