package Ġru . surf studio . android . recycler . extension . sample . controller Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġkotlinx . android . synt hetic . main . item _ list _ sl iding _ sample . view .* Ċ import Ġru . surf studio . android . easy adapter . controller . Bind able Item Controller Ċ import Ġru . surf studio . android . recycler . extension . sample . R Ċ import Ġru . surf studio . android . recycler . extension . sample . view . Delete Sl iding Button View Ċ import Ġru . surf studio . android . recycler . extension . sample . view . F avorites Sl iding Button View Ċ import Ġru . surf studio . android . recycler . extension . sample . view . Share Sl iding Button View Ċ import Ġru . surf studio . android . recycler . extension . slide . Bind able Sl iding ViewHolder Ċ Ċ internal Ġclass ĠSl iding Item Controller ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġon Share Clicked : Ġ() Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġon F avorites Clicked : Ġ() Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠonDelete Clicked : Ġ() Ġ-> ĠUnit Ċ ) Ġ: ĠBind able Item Controller < String , ĠSl iding Item Controller . Holder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( data : ĠString ) Ġ= Ġdata ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ViewHolder ( parent : ĠViewGroup ) Ġ= ĠH older ( parent ) ĊĊĠĠĠ Ġinner Ġclass ĠH older ( parent : ĠViewGroup ) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBind able Sl iding ViewHolder < String >( parent , ĠR . layout . item _ list _ sl iding _ sample ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtitle Tv Ġ= ĠitemView . sl iding _ item _ title _ tv ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġleft Buttons Ġ= ĠlistOf ( Share Sl iding Button View ( context )) ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġright Buttons Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorites Sl iding Button View ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDelete Sl iding Button View ( context ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Button Clicked ( button View : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Button Clicked ( button View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( button View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠF avorites Sl iding Button View Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdemo Ġpurpose Ġonly , Ġdon 't Ġchange Ġstate Ġof Ġview Ġthis Ġway ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton View . isIn F avorites Ġ= Ġ! button View . isIn F avorites ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġbetter Ġcall Ġcallback Ġbelow Ġand Ġupdate Ġlist Ġfrom Ġpresenter . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon F avorites Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠShare Sl iding Button View Ġ-> Ġon Share Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDelete Sl iding Button View Ġ-> ĠonDelete Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind Button ( data : ĠString , Ġbutton View : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( button View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠF avorites Sl iding Button View Ġ-> Ġbutton View . isIn F avorites Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( data : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . bind ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Tv . text Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }