package Ġmy . hand book . ui . drawer Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġmy . hand book . databinding . Item Drawer Divider Binding Ċ import Ġmy . hand book . databinding . Item Drawer Link Binding Ċ import Ġmy . hand book . databinding . Item Drawer Product Binding Ċ import Ġmy . hand book . databinding . Item Drawer Section Binding Ċ Ċ sealed Ġclass ĠDraw er Item ViewHolder < T Ġ: ĠDraw er Item >( ĊĠĠĠ Ġview : ĠView Ċ ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġbind ( item Ġ: ĠT ) ĊĊĠĠĠ Ġclass ĠSection ViewHolder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠItem Drawer Section Binding , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġadapter Listener : ĠDraw er Adapter . Drawer Adapter Listener ĊĠĠĠ Ġ) Ġ: ĠDraw er Item ViewHolder < Drawer Item . Section Item >( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( item : ĠDraw er Item . Section Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsection Item Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Ġ= Ġadapter Listener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Pending Bindings () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠDiv ider ViewHolder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠItem Drawer Divider Binding ĊĠĠĠ Ġ) Ġ: ĠDraw er Item ViewHolder < Drawer Item . Divider Item >( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( item : ĠDraw er Item . Divider Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . divider Item Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠLink ViewHolder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠItem Drawer Link Binding , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġadapter Listener : ĠDraw er Adapter . Drawer Adapter Listener ĊĠĠĠ Ġ) Ġ: ĠDraw er Item ViewHolder < Drawer Item . Link Item >( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( item : ĠDraw er Item . Link Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Item Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Ġ= Ġadapter Listener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Pending Bindings () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠProduct ViewHolder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠItem Drawer Product Binding , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġadapter Listener : ĠDraw er Adapter . Drawer Adapter Listener ĊĠĠĠ Ġ) Ġ: ĠDraw er Item ViewHolder < Drawer Item . Product Item >( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( item : ĠDraw er Item . Product Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Item Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Ġ= Ġadapter Listener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Pending Bindings () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ