package Ġim . ze go . white bo ar dex ample . widget . drawer layout Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġim . ze go . white bo ar dex ample . R Ċ import Ġim . ze go . white bo ar dex ample . util . dp 2 px Ċ import Ġim . ze go . white bo ar dex ample . widget . On RecyclerView Item Touch Listener Ċ import Ġkotlinx . android . synt hetic . main . layout _ drawer _ right . view .* Ċ Ċ class ĠFile Excel View Ġ: ĠRelative Layout Ġ{ ĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) ĊĊĠĠĠ Ġprivate Ġvar Ġon Excel Click : Ġ( Int ) Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġprivate Ġvar Ġfile ListAdapter : ĠFile Excel Adapter ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . layout _ drawer _ right , Ġthis , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġset BackgroundColor ( Color . WHITE ) ĊĠĠĠĠĠĠĠ Ġright _ drawer _ title . text Ġ= Ġcontext . getString ( R . string . sheet _ list ) ĊĠĠĠĠĠĠĠ Ġright _ drawer _ divider . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġmain _ drawer _ list . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile ListAdapter Ġ= ĠFile Excel Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . adapter Ġ= Ġfile ListAdapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Vertical ScrollBar Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdivider Ġ= ĠRe cycler Divider ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). also Ġ{ Ġdivider Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdivider . set Padding ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdp 2 px ( context , Ġ 1 1 f ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdp 2 px ( context , Ġ 1 1 f ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdivider . set Height ( dp 2 px ( context , Ġ 0 . 5 f ). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdivider . setColor ( Color . parse Color ("# ede ff 3 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . addItem Decoration ( divider ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtouch Listener Ġ= Ġobject Ġ: ĠOn RecyclerView Item Touch Listener ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( vh : ĠRecyclerView . ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vh . adapter Position Ġ== ĠRecyclerView . NO _ POSITION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Excel Click . invoke ( vh . adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add On Item Touch Listener ( touch Listener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Excel Clicked Listener ( on Excel Click : Ġ( Int ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . on Excel Click Ġ= Ġon Excel Click ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Touch Event ( event : ĠMotion Event ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate List ( name List : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġfile ListAdapter . update List ( name List ) ĊĠĠĠĠĠĠĠ Ġfile ListAdapter . notify DataSet Changed () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠFile Excel Adapter Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġlist Ġ= Ġmutable ListOf < String >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview : ĠView Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ file _ list , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname TextView Ġ= Ġholder . item View . findViewById < TextView >( R . id . item _ file _ name ) ĊĠĠĠĠĠĠĠ Ġval Ġdynamic TextView Ġ= Ġholder . item View . findViewById < TextView >( R . id . item _ file _ dynamic ) ĊĠĠĠĠĠĠĠ Ġdynamic TextView . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġname TextView . text Ġ= Ġlist [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate List ( name List : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġlist . clear () ĊĠĠĠĠĠĠĠ Ġlist . addAll ( name List ) ĊĠĠĠ Ġ} Ċ }