package Ġcom . sw . har uka . helper . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroidx . databinding . Observable List Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . sw . har uka . BR Ċ Ċ abstract Ġclass ĠBinding View Adapter < T >( context : ĠContext , Ġprotected Ġval Ġlist : ĠObservable List < T >): ĠRecyclerView . Adapter < Binding ViewHolder < ViewData Binding >>() Ġ{ ĊĊĠĠĠ Ġprotected Ġval Ġm LayoutInflater : ĠLayoutInflater Ġ= ĠLayoutInflater . from ( context ) ĊĊĠĠĠ Ġvar Ġitem Presenter : ĠItem Click Presenter < T >? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġitem Decorator : ĠItem Decorator ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠBinding ViewHolder < ViewData Binding >, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġlist [ position ] ĊĠĠĠĠĠĠĠ Ġholder . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . binding . set Variable ( BR . item , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . binding . set Variable ( BR . presenter , Ġitem Presenter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . binding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġitem Decorator ?. decorator ( holder , Ġposition , ĠgetItem ViewType ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġlist . size ĊĊĠĠĠ Ġfun ĠgetItem ( position : ĠInt ): ĠT ? Ġ= Ġlist [ position ] ĊĊĠĠĠ Ġinterface ĠItem Click Presenter < in ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Click ( v : ĠView , Ġitem : ĠAny ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠItem Long Click Presenter < in ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Long Click ( v : ĠView , Ġitem : ĠAny ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠItem Decorator Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġdecorator ( holder : ĠBinding ViewHolder < ViewData Binding > ?, Ġposition : ĠInt , Ġview Type : ĠInt ) ĊĠĠĠ Ġ} Ċ Ċ }