package Ġio . ex zo coin . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . core . view . isVisible Ċ import Ġio . ex zo coin . views . helpers . Layout Helper Ċ import Ġkotlinx . android . synt hetic . main . view _ settings _ item . view .* Ċ Ċ abstract Ġclass ĠSettings View Base Ġ@ Jvm Over loads Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 ) ĊĠĠĠ Ġ: ĠConstraint Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsingle Line Height Ġ= Ġ 4 8 f ĊĠĠĠ Ġprivate Ġval Ġdouble Line Height Ġ= Ġ 6 0 f ĊĊĠĠĠ Ġfun Ġshow Subtitle ( text : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsettings Subtitle . text Ġ= Ġtext ĊĠĠĠĠĠĠĠ Ġsettings Subtitle . isVisible Ġ= Ġtext Ġ!= Ġnull ĊĠĠĠĠĠĠĠ Ġlayout Params ?. height Ġ= ĠLayout Helper . dp ( if Ġ( text Ġ== Ġnull ) Ġsingle Line Height Ġelse Ġdouble Line Height , Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Title ( text : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsettings Title . text Ġ= Ġtext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Icon ( drawable : ĠDrawable ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsettings Icon . isVisible Ġ= Ġdrawable Ġ!= Ġnull ĊĠĠĠĠĠĠĠ Ġsettings Icon . setImage Drawable ( drawable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset List Position ( list Position : ĠList Position ) Ġ{ ĊĠĠĠĠĠĠĠ ĠfindViewById < View >( R . id . frame )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setBackground Resource ( list Position . get Background ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset List Position ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset List Position ( List Position . getList Position ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset As Double Line () Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Params . height Ġ= ĠLayout Helper . dp ( double Line Height , Ġcontext ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠList Position ( val Ġid : ĠInt ) Ġ{ ĊĠĠĠ ĠSingle ( 0 ), ĊĠĠĠ ĠFirst ( 1 ), ĊĠĠĠ ĠMiddle ( 2 ), ĊĠĠĠ ĠLast ( 3 ); ĊĊĠĠĠ Ġfun Ġget Background (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFirst Ġ-> ĠR . drawable . rounded _ law rence _ background _ top ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMiddle Ġ-> ĠR . drawable . rounded _ law rence _ background _ middle ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLast Ġ-> ĠR . drawable . rounded _ law rence _ background _ bottom ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Ġ-> ĠR . drawable . rounded _ law rence _ background _ single ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmap Ġ= Ġvalues (). associate By ( List Position :: id ) ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetList Position ( id : ĠInt ): ĠList Position Ġ= Ġmap [ id ] Ġ?: ĠMiddle ĊĠĠĠĠĠĠĠ Ġfun ĠgetList Position ( size : ĠInt , Ġposition : ĠInt ): ĠList Position Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ== Ġ 1 Ġ-> ĠSingle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ== Ġ 0 Ġ-> ĠFirst ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ== Ġsize Ġ- Ġ 1 Ġ-> ĠLast ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠMiddle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ