package Ġio . nova foundation . nova . common . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Color Res Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . constraint layout . widget . Group Ċ import Ġco il . Image Loader Ċ import Ġco il . load Ċ import Ġco il . transform . Rounded C orners Transformation Ċ import Ġio . nova foundation . nova . common . R Ċ import Ġio . nova foundation . nova . common . di . Feature Utils Ċ import Ġio . nova foundation . nova . common . utils . dp F Ċ import Ġio . nova foundation . nova . common . utils . get Accent Color Ċ import Ġio . nova foundation . nova . common . utils . get Enum Ċ import Ġio . nova foundation . nova . common . utils . getResource Id OrNull Ċ import Ġio . nova foundation . nova . common . utils . make G one Ċ import Ġio . nova foundation . nova . common . utils . make Visible Ċ import Ġio . nova foundation . nova . common . utils . set Drawable End Ċ import Ġio . nova foundation . nova . common . utils . setTextColor Res Ċ import Ġio . nova foundation . nova . common . utils . setText Or Hide Ċ import Ġio . nova foundation . nova . common . utils . setVisible Ċ import Ġio . nova foundation . nova . common . utils . use Attributes Ċ import Ġkotlinx . android . synt hetic . main . view _ table _ cell . view . table Cell Content Ċ import Ġkotlinx . android . synt hetic . main . view _ table _ cell . view . table Cell Image Ċ import Ġkotlinx . android . synt hetic . main . view _ table _ cell . view . table Cell Title Ċ import Ġkotlinx . android . synt hetic . main . view _ table _ cell . view . table CellValue Divider Ċ import Ġkotlinx . android . synt hetic . main . view _ table _ cell . view . table CellValue Primary Ċ import Ġkotlinx . android . synt hetic . main . view _ table _ cell . view . table CellValue Progress Ċ import Ġkotlinx . android . synt hetic . main . view _ table _ cell . view . table CellValue Secondary Ċ Ċ private Ġval ĠICON _ T INT _ DEFAULT Ġ= ĠR . color . white _ 6 4 Ċ Ċ open Ġclass ĠTable Cell View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style : ĠInt Ġ= Ġ 0 , Ċ ) Ġ: ĠConstraint Layout ( context , Ġattrs , Ġdef Style ) Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠField Style Ġ{ ĊĠĠĠĠĠĠĠ ĠTEXT , ĠLINK ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġtitle : ĠTextView ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtable Cell Title ĊĊĠĠĠ Ġval Ġvalue Primary : ĠTextView ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtable CellValue Primary ĊĊĠĠĠ Ġval Ġvalue Secondary : ĠTextView ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtable CellValue Secondary ĊĊĠĠĠ Ġval Ġimage : ĠImageView ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtable Cell Image ĊĊĠĠĠ Ġprivate Ġval Ġvalue Progress : ĠProgress Bar ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtable CellValue Progress ĊĊĠĠĠ Ġprivate Ġval Ġcontent Group : ĠGroup ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtable Cell Content ĊĊĠĠĠ Ġprivate Ġval Ġimage Loader : ĠImage Loader Ġby Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĊĠĠĠĠĠĠĠ ĠFeature Utils . get Common Api ( context ). image Loader () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠView . inflate ( context , ĠR . layout . view _ table _ cell , Ġthis ) ĊĊĠĠĠĠĠĠĠ Ġset Background Resource ( R . drawable . bg _ primary _ list _ item ) ĊĊĠĠĠĠĠĠĠ Ġattrs ?. let Ġ{ Ġapply Attributes ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetTitle ( title Res : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtable Cell Title . setText ( title Res ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetTitle ( title : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtable Cell Title . text Ġ= Ġtitle ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Image ( src : ĠDrawable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġimage . setImage Drawable ( src ) ĊĠĠĠĠĠĠĠ Ġimage . make Visible () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Image ( url : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġurl ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage . make Visible () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage . load ( url , Ġimage Loader ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformations ( Rounded C orners Transformation ( 1 0 . dp F ( context ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Progress () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontent Group . make G one () ĊĠĠĠĠĠĠĠ Ġvalue Progress . make Visible () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Divider Visible ( visible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtable CellValue Divider . setVisible ( visible ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Divider Color (@ Color Res Ġcolor Res : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtable CellValue Divider . set BackgroundColor ( context . getColor ( color Res )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Primary Value Icon (@ Drawable Res Ġicon : ĠInt , Ġ@ Color Res Ġt int : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtable CellValue Primary . set Drawable End ( icon , Ġwidth In Dp Ġ= Ġ 1 6 , Ġpadding In Dp Ġ= Ġ 8 , Ġt int Ġ= Ġt int ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Primary Value Style ( style : ĠField Style ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( style ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠField Style . TEXT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Primary . setTextColor Res ( R . color . white ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠField Style . LINK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Primary . setTextColor ( context . get Accent Color ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetTitle Icon (@ Drawable Res Ġicon : ĠInt ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtable Cell Title . set Drawable End ( icon , Ġwidth In Dp Ġ= Ġ 1 6 , Ġpadding In Dp Ġ= Ġ 4 , Ġt int Ġ= ĠICON _ T INT _ DEFAULT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Value ( primary : ĠString , Ġsecondary : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontent Group . make Visible () ĊĊĠĠĠĠĠĠĠ Ġvalue Primary . text Ġ= Ġprimary ĊĠĠĠĠĠĠĠ Ġvalue Secondary . setText Or Hide ( secondary ) ĊĊĠĠĠĠĠĠĠ Ġvalue Progress . make G one () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġapply Attributes ( attrs : ĠAttributeSet ) Ġ= Ġcontext . use Attributes ( attrs , ĠR . style able . TableCell View ) Ġ{ Ġtyped Array Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġtyped Array . getString ( R . style able . TableCell View _ title ) ĊĠĠĠĠĠĠĠ ĠsetTitle ( title ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdivider Visible Ġ= Ġtyped Array . getBoolean ( R . style able . TableCell View _ divider Visible , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġset Divider Visible ( divider Visible ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdivider Color Ġ= Ġtyped Array . getResource Id OrNull ( R . style able . TableCell View _ divider Color ) ĊĠĠĠĠĠĠĠ Ġdivider Color ?. let (:: set Divider Color ) ĊĊĠĠĠĠĠĠĠ Ġval Ġprimary Value Icon Ġ= Ġtyped Array . getResource Id OrNull ( R . style able . TableCell View _ primary Value Icon ) ĊĠĠĠĠĠĠĠ Ġprimary Value Icon ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprimary Value Icon Tint Ġ= Ġtyped Array . getResource Id ( R . style able . TableCell View _ primary Value Icon Tint , ĠICON _ T INT _ DEFAULT ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Primary Value Icon ( primary Value Icon , Ġprimary Value Icon Tint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġprimary Value Style Ġ= Ġtyped Array . get Enum ( R . style able . TableCell View _ primary Value Style , Ġdefault Ġ= ĠField Style . TEXT ) ĊĠĠĠĠĠĠĠ Ġset Primary Value Style ( primary Value Style ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtitle Icon Ġ= Ġtyped Array . getResource Id OrNull ( R . style able . TableCell View _ title Icon ) ĊĠĠĠĠĠĠĠ Ġtitle Icon ?. let (:: setTitle Icon ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠTable Cell View . show Value Or Hide ( primary : ĠString ?, Ġsecondary : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġif Ġ( primary Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Value ( primary , Ġsecondary ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġset Visible ( primary Ġ!= Ġnull ) Ċ } Ċ