package Ġcom . kick starter . ui . view holders . discovery drawer Ċ Ċ import Ġandroid . view . View Ċ import Ġcom . kick starter . databinding . Discovery Drawer Parent Filter View Binding Ċ import Ġcom . kick starter . libs . utils . Object Utils Ċ import Ġcom . kick starter . ui . adapters . data . Navigation Drawer Data Ċ import Ġcom . kick starter . ui . view holders . KS ViewHolder Ċ Ċ class ĠParent Filter ViewHolder ( ĊĠĠĠ Ġprivate Ġval Ġbinding : ĠDiscovery Drawer Parent Filter View Binding , ĊĠĠĠ Ġprivate Ġval Ġdelegate : ĠDelegate Ċ ) Ġ: ĠK S ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġitem : ĠNavigation Drawer Data . Section . Row ? Ġ= Ġnull ĊĊĠĠĠ Ġinterface ĠDelegate Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġparent Filter ViewHolder Row Click ( view Holder : ĠParent Filter ViewHolder , Ġrow : ĠNavigation Drawer Data . Section . Row ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġbind Data ( data : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Ġ= ĠObject Utils . requireNonNull ( data Ġas ĠNavigation Drawer Data . Section . Row ?, ĠNavigation Drawer Data . Section . Row :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġcontext () ĊĠĠĠĠĠĠĠ Ġbinding . filter TextView . text Ġ= Ġitem ?. params ()?. filter String ( context , Ġenvironment (). ks String (), Ġfalse , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġif Ġ( item ?. root Is Expanded () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . expand Button . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . collapse Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . expand Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . collapse Button . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . filter View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Click () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrow Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġdelegate . parent Filter ViewHolder Row Click ( this , Ġitem !! ) ĊĠĠĠ Ġ} Ċ } Ċ