package Ġ` in `. tech now olf . ip scanner . ui . custom Views Ċ Ċ import Ġ` in `. tech now olf . ip scanner . R Ċ import Ġ` in `. tech now olf . ip scanner . databinding . Label Value View Binding Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . core . content . Context Compat Ċ Ċ class ĠLabel Value View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġval Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠConstraint Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding : ĠLabel Value View Binding Ġ= ĊĠĠĠĠĠĠĠ ĠLabel Value View Binding . inflate ( LayoutInflater . from ( context ), Ġthis , Ġtrue ) ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġvar Ġlabel Text : ĠString Ġ= Ġ" Label " ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġvar Ġvalue Text : ĠString Ġ= Ġ" Content " ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġ@ Drawable Res ĊĠĠĠ Ġvar Ġstart Image Src : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġobtain Attributes () ĊĠĠĠĠĠĠĠ Ġsetup Views () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobtain Attributes () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtyped Array Ġ= Ġcontext . obtain Styled Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Label Value View , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdef Style Attr , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġlabel Text Ġ= Ġtyped Array . getString ( R . style able . Label Value View _ label Text ). or Empty () ĊĠĠĠĠĠĠĠ Ġvalue Text Ġ= Ġtyped Array . getString ( R . style able . Label Value View _ value Text ). or Empty () ĊĠĠĠĠĠĠĠ Ġstart Image Src Ġ= Ġtyped Array . getResource Id ( R . style able . Label Value View _ start Image Src , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġtyped Array . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( start Image Src Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . iv Start Icon . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . iv Start Icon . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . iv Start Icon . setImage Drawable ( Context Compat . get Drawable ( context , Ġstart Image Src )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . tv Label . text Ġ= Ġlabel Text ĊĠĠĠĠĠĠĠ Ġif Ġ( value Text . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Value . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Value . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Value . text Ġ= Ġvalue Text ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġfun Ġset Label ( label Text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . label Text Ġ= Ġlabel Text ĊĠĠĠĠĠĠĠ Ġbinding . tv Label . text Ġ= Ġlabel Text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġfun ĠsetValue ( value Text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . value Text Ġ= Ġvalue Text ĊĠĠĠĠĠĠĠ Ġbinding . tv Value . text Ġ= Ġvalue Text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġfun Ġset Start Image (@ Drawable Res Ġstart Image Src : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . start Image Src Ġ= Ġstart Image Src ĊĠĠĠĠĠĠĠ Ġbinding . iv Start Icon . setImage Drawable ( Context Compat . get Drawable ( context , Ġstart Image Src )) ĊĠĠĠ Ġ} Ċ } Ċ