package Ġio . github . c ch rist ou 3 . Cy Par king . ui . views . operator Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġio . github . c ch rist ou 3 . Cy Par king . R Ċ import Ġio . github . c ch rist ou 3 . Cy Par king . databinding . Slot Offer Item Header Binding Ċ import Ġio . github . c ch rist ou 3 . Cy Par king . ui . helper . DropDown Menu Helper . Companion . setUp Spinner Ċ import Ġio . github . c ch rist ou 3 . Cy Par king . utils . check AndSet OnClickListener Ċ Ċ /** Ċ Ġ* ĠAn Ġadapter Ġclass Ġto Ġbe Ġshown Ġas Ġa Ġthe Ġheader Ġof Ġa Ġlist Ġof Ġitems Ġvia Ġa Ġ[ Concat Adapter ]. Ċ Ġ* Ċ Ġ* Ġ@ author ĠChar al amb os ĠChrist ou Ċ Ġ* Ġ@ version Ġ 1 . 0 Ġ 3 0 / 0 8 / 2 1 Ċ Ġ*/ Ċ class ĠSlot Offer Header Adapter ( ĊĠĠĠĠĠĠĠ Ġon Duration Selected : ĠOn ItemSelected , Ġon Price Selected : ĠOn ItemSelected , Ġon Add Button Clicked : ĠView . OnClickListener ) ĊĠĠĠ Ġ: ĠRecyclerView . Adapter < Slot Offer Header Adapter . Slot Offer Header ViewHolder >() Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Has Stable Ids ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġon Add Ġby Ġlazy Ġ{ Ġon Add Button Clicked Ġ} ĊĠĠĠ Ġprivate Ġval Ġm Duration Ġby Ġlazy Ġ{ Ġon Duration Selected Ġ} ĊĠĠĠ Ġprivate Ġval Ġm Price Ġby Ġlazy Ġ{ Ġon Price Selected Ġ} ĊĊĊĠĠĠ Ġfun Ġinterface ĠOn ItemSelected Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon ItemSelected ( value : ĠFloat ?): ĠUnit ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġinfl ates Ġthe Ġrow Ġlayout Ġfrom Ġxml Ġwhen Ġneeded ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSlot Offer Header ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSlot Offer Header ViewHolder ( Slot Offer Item Header Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSlot Offer Header ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġup Ġboth Ġspin ners ĊĠĠĠĠĠĠĠ ĠsetUp Spinner ( holder . m Binding . slot Offer Item Header Fragment SD uration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġselected Duration : ĠFloat ? Ġ-> Ġm Duration . on ItemSelected ( selected Duration ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 . 0 f ) ĊĠĠĠĠĠĠĠ Ġ// ĠMinimum Ġcharge Ġamount : Ġ 0 . 5 0 Ġcent s Ġin Ġeu ros : Ġhttps :// stripe . com / docs / currencies # minimum - and - maximum - charge - amount s ĊĠĠĠĠĠĠĠ ĠsetUp Spinner ( holder . m Binding . slot Offer Item Header Fragment S Price , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġselected Price : ĠFloat ? Ġ-> Ġm Price . on ItemSelected ( selected Price ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 5 f ) ĊĊĠĠĠĠĠĠĠ Ġholder . m Binding . slot Offer Item Header Fragment Btn Add . check AndSet OnClickListener ( on Add ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTODO : ĠInvest igate Ġbug Ġand Ġfully Ġtest Ġslot Ġoffer Ġfragment Ġand Ġinteractions , ĊĠĠĠĠ Ġ* Ġ Ġalso Ġadd Ġadd Ġbutton Ġimplementation ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSlot Offer Header ViewHolder , Ġposition : ĠInt , Ġpayload s : ĠList < Any >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( payload s . isNull OrEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFull Ġupdate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Bind ViewHolder ( holder , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ// ĠPartial Ġupdate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Enabled Ġ= Ġpayload s [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isEnabled Ġis ĠBoolean ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . m Binding . slot Offer Item Header Fragment Btn Add . isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġthe Ġview Ġtype Ġof Ġthe Ġitem Ġat Ġ` position ` Ġfor Ġthe Ġpurposes ĊĠĠĠĠ Ġ* Ġof Ġview Ġre cycl ing . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġposition Ġposition Ġto Ġquery ĊĠĠĠĠ Ġ* Ġ@ return Ġinteger Ġvalue Ġidentifying Ġthe Ġtype Ġof Ġthe Ġview Ġneeded Ġto Ġrepresent Ġthe Ġitem Ġat ĊĠĠĠĠ Ġ* Ġ` position `. ĠType Ġcodes Ġneed Ġnot Ġbe Ġcontiguous . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ= ĠR . layout . slot _ offer _ item _ header ĊĊĊĠĠĠ Ġ// Ġtotal Ġnumber Ġof Ġrows ĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġ 1 ĊĊĠĠĠ Ġ// Ġstores Ġand Ġre cycles Ġviews Ġas Ġthey Ġare Ġsc rolled Ġoff Ġscreen ĊĠĠĠ Ġinner Ġclass ĠSlot Offer Header ViewHolder Ġinternal Ġconstructor ( binding : ĠSlot Offer Item Header Binding ) ĊĠĠĠĠĠĠĠ Ġ: ĠRecyclerView . ViewHolder ( binding . root . root View ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġm Binding Ġby Ġlazy Ġ{ Ġbinding Ġ} ĊĠĠĠ Ġ} Ċ }