package Ġh us ay nh ake em . com . about page Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Resources Ċ import Ġandroidx . annotation . Color Res Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġkotlinx . android . synt hetic . main . layout _ item . view .* Ċ Ċ private Ġval ĠTAG Ġ= Ġ" About ĠPage " Ċ private Ġval ĠRESOURCE _ TYPE _ DRAW ABLE Ġ= Ġ" drawable " Ċ private Ġval ĠRESOURCE _ TYPE _ COLOR Ġ= Ġ" color " Ċ Ċ internal Ġfun Ġadd Item ( layout Inflater : ĠLayoutInflater , Ġcontext : ĠContext , Ġelements Group : ĠViewGroup , Ġ@ Drawable Res Ġicon : ĠInt , Ġ@ Color Res Ġicon Tint : ĠInt , Ġtitle : ĠString ): ĠView Ġ{ ĊĠĠĠ Ġval ĠitemView Ġ= Ġview From Item ( layout Inflater , Ġcontext , Ġicon , Ġicon Tint , Ġtitle ) ĊĠĠĠ Ġelements Group . addView ( item View ) ĊĠĠĠ Ġadd Separator ( layout Inflater , Ġcontext , Ġelements Group ) ĊĠĠĠ Ġreturn ĠitemView Ċ } Ċ Ċ internal Ġfun Ġadd Item ( layout Inflater : ĠLayoutInflater , Ġcontext : ĠContext , Ġelements Group : ĠViewGroup , Ġview : ĠView ) Ġ{ ĊĠĠĠ Ġelements Group . addView ( view ) ĊĠĠĠ Ġadd Separator ( layout Inflater , Ġcontext , Ġelements Group ) Ċ } Ċ Ċ internal Ġfun Ġadd Item ( layout Inflater : ĠLayoutInflater , Ġcontext : ĠContext , Ġelements Group : ĠViewGroup , Ġitem : ĠItem ) Ġ{ ĊĠĠĠ Ġval ĠitemView Ġ= Ġlayout Inflater . inflate ( R . layout . layout _ item , Ġnull ) ĊĠĠĠ ĠitemView . tv _ item _ title . text Ġ= Ġitem . title ĊĠĠĠ Ġwhen Ġ( item . icon ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull Ġ-> ĠitemView . iv _ item _ icon . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠitemView . iv _ item _ icon . setImage Drawable ( Context Compat . get Drawable ( context , Ġitem . icon )) ĊĠĠĠ Ġ} ĊĠĠĠ ĠitemView . setOnClickListener ( item . on ClickListener ) ĊĠĠĠ Ġadd Item ( layout Inflater , Ġcontext , Ġelements Group , ĠitemView ) Ċ } Ċ Ċ private Ġfun Ġview From Item ( layout Inflater : ĠLayoutInflater , Ġcontext : ĠContext , Ġ@ Drawable Res Ġicon : ĠInt , Ġ@ Color Res Ġicon Tint : ĠInt , Ġtitle : ĠString ): ĠView Ġ{ ĊĠĠĠ Ġval ĠitemView Ġ= Ġlayout Inflater . inflate ( R . layout . layout _ item , Ġnull ) ĊĠĠĠ ĠitemView . iv _ item _ icon . setImage Drawable ( Context Compat . get Drawable ( context , Ġicon )) ĊĠĠĠ ĠitemView . iv _ item _ icon . setColor Filter ( Context Compat . getColor ( context , Ġicon Tint ), Ġandroid . graphics . Port er D uff . Mode . SRC _ IN ); ĊĠĠĠ ĠitemView . tv _ item _ title . text Ġ= Ġtitle ĊĠĠĠ Ġreturn ĠitemView Ċ } Ċ Ċ private Ġfun Ġadd Separator ( layout Inflater : ĠLayoutInflater , Ġcontext : ĠContext , Ġelements Group : ĠViewGroup ) Ġ{ ĊĠĠĠ Ġelements Group . addView ( layout Inflater . inflate ( R . layout . layout _ separator , Ġnull ), ĠViewGroup . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , Ġcontext . resources . get Dimension Pixel Size ( R . dim en . separator _ height ))) Ċ } Ċ Ċ internal Ġfun Ġset View Background ( context : ĠContext , Ġview : ĠView , Ġbackground : ĠInt ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbackground Type : ĠString Ġ= Ġcontext . resources . getResource TypeName ( background ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( background Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRESOURCE _ TYPE _ DRAW ABLE Ġ-> Ġview . background Ġ= ĠContext Compat . get Drawable ( context , Ġbackground ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRESOURCE _ TYPE _ COLOR Ġ-> Ġview . set BackgroundColor ( Context Compat . getColor ( context , Ġbackground )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠResources . NotFoundException (" Background Ġresource Ġmust Ġbe Ġa Ġdrawable Ġor Ġcolor ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠResources . NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġe . message ?. let Ġ{ ĠLog . e ( TAG , Ġit ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ