package Ġcom . long le . sof user . presentation . adapter Ċ Ċ import Ġandroidx . databinding . Observable List Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ /** Ċ Ġ* ĠObservable RecyclerView Adapter Ġis Ġused Ġto Ġallow Ġchanges Ġto ĠObservable List Ġto Ġupdate Ġthe ĠRecyclerView Ċ Ġ*/ Ċ abstract Ġclass ĠObservable RecyclerView Adapter < T , ĠH older : ĠRecyclerView . ViewHolder >( ĊĠĠĠ Ġprivate Ġval Ġitems : ĠObservable List < T > Ċ ) Ġ: ĠRecyclerView . Adapter < Holder >() Ġ{ ĊĊĠ Ġlateinit Ġvar Ġon ItemClickListener : Ġ( item : ĠAny ) Ġ-> ĠUnit ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġitems . add On List Changed Callback ( object : ĠObservable List . On List Changed Callback < Observable List < T >>() Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠonChanged ( sender : ĠObservable List < T > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Removed ( sender : ĠObservable List < T > ?, Ġposition Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnotify Item Range Removed ( position Start , Ġitem Count ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Moved ( sender : ĠObservable List < T > ?, Ġfrom Position : ĠInt , Ġto Position : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Inserted ( sender : ĠObservable List < T > ?, Ġposition Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnotify Item Range Inserted ( position Start , Ġitem Count ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Changed ( sender : ĠObservable List < T > ?, Ġposition Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnotify Item Range Changed ( position Start , Ġitem Count ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġitems . size ĊĊĠ Ġfun ĠgetItem ( i : ĠInt ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġitems [ i ] ĊĠ Ġ} ĊĊĠ Ġfun Ġget Items (): ĠObservable List < T > Ġ{ ĊĠĠĠ Ġreturn Ġitems ĊĠ Ġ} Ċ } Ċ