package Ġuk . n hs . n hs x . covid 1 9 . android . app . widgets Ċ Ċ import Ġandroid . R . attr Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġkotlinx . android . synt hetic . main . view _ status _ option . view . status Option Icon Ċ import Ġkotlinx . android . synt hetic . main . view _ status _ option . view . status Option Icon Container Ċ import Ġkotlinx . android . synt hetic . main . view _ status _ option . view . status Option Link Indicator Ċ import Ġkotlinx . android . synt hetic . main . view _ status _ option . view . status Option Text Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . R Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . util . view utils . dp To Px Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . util . view utils . setUp Button Type Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . util . view utils . setUp Link Type With Browser Warning Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . util . view utils . getString Ċ Ċ open Ġclass ĠStatus Option View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠLinearLayout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġvar Ġtext : ĠString ? Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Option Text . text Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġattr Is External Link : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinitialize Views () ĊĠĠĠĠĠĠĠ Ġapply Attributes ( context , Ġattrs ) ĊĠĠĠĠĠĠĠ ĠsetUp Accessibility () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Accessibility () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( attr Is External Link ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Link Type With Browser Warning ( status Option Text . text ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Button Type ( status Option Text . text ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Views () Ġ{ ĊĠĠĠĠĠĠĠ ĠView . inflate ( context , ĠR . layout . view _ status _ option , Ġthis ) ĊĠĠĠĠĠĠĠ Ġconfigure Layout () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġapply Attributes ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . theme . obtain Styled Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Status Option View , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattr Option Icon Ġ= Ġget Drawable ( R . style able . Status Option View _ option Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattr Option Icon BackgroundColor Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Color ( R . style able . Status Option View _ option Icon BackgroundColor , Ġ- 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠgetString ( context , ĠR . style able . Status Option View _ option Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattr Is External Link Ġ= Ġget Boolean ( R . style able . Status Option View _ option External Link , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Option Text . text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Option Text . set Padding Relative ( 1 6 . dp To Px . toInt (), Ġ 0 , Ġ 0 , Ġ 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Option Icon Container . background Tint List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor State List . valueOf ( attr Option Icon BackgroundColor ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġattr Option Icon ?. is Auto Mir rored Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Option Icon . setImage Drawable ( attr Option Icon ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink Indicator Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . get Drawable ( if Ġ( attr Is External Link ) ĠR . drawable . ic _ link _ status _ option _ view Ġelse ĠR . drawable . ic _ chevron _ right ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlink Indicator ?. is Auto Mir rored Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Option Link Indicator . setImage Drawable ( link Indicator ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġminimum Height Ġ= Ġ 5 6 . dp To Px . toInt () ĊĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER _ VERTICAL ĊĠĠĠĠĠĠĠ Ġset Background Resource ( R . drawable . status _ option _ background ) ĊĠĠĠĠĠĠĠ Ġset Selectable Item Foreground () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Selectable Item Foreground () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Value Ġ= ĠTyped Value () ĊĠĠĠĠĠĠĠ Ġcontext . theme . resolve Attribute ( attr . selectable Item Background , Ġout Value , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġforeground Ġ= Ġcontext . get Drawable ( out Value . resourceId ) ĊĠĠĠ Ġ} Ċ } Ċ