package Ġcom . software for good . pri def est ival . ui . par ade Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . software for good . pri def est ival . R Ċ import Ġcom . software for good . pri def est ival . data . F avorites Storage Ċ import Ġcom . software for good . pri def est ival . data . model . Par ade Event Ċ import Ġcom . software for good . pri def est ival . ui . misc . Bind able Recycler Adapter Ċ import Ġjavax . inject . Inject Ċ Ċ abstract Ġclass ĠPar ade Adapter Ġ: ĠBind able Recycler Adapter < Par ade Event >() Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġload Par ade Events ( par ade Events : ĠList < Par ade Event >) Ċ } Ċ Ċ @ Par ade Scope Ċ class ĠDefault Par ade Adapter Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġfavor ites Storage : ĠF avorites Storage Ċ ) Ġ: ĠPar ade Adapter () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġpar ade Events Ġ= ĠlistOf < Par ade Event >() ĊĊĠĠĠ Ġinit Ġ{ Ġset Has Stable Ids ( true ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Par ade Events ( par ade Events : ĠList < Par ade Event >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . par ade Events Ġ= Ġpar ade Events ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġpar ade Events . size ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ) Ġ= Ġpar ade Events [ position ] ĊĊĠĠĠ Ġoverride Ġfun Ġnew View ( in flater : ĠLayoutInflater , Ġview Type : ĠInt , Ġparent : ĠViewGroup ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater . inflate ( R . layout . view _ par ade _ list _ item , Ġparent , Ġfalse ) !! ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( item : ĠPar ade Event , Ġview : ĠView , Ġposition : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( view Ġas ĠPar ade Item View ). bind ( item , Ġfavor ites Storage ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ) Ġ= Ġpar ade Events [ position ]. objectId . hashCode (). to Long () Ċ } Ċ