package Ġcom . ky aw ht ut . test . adapter . view holder Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . ev ren co sk un . table view . IT ableView Ċ import Ġcom . ev ren co sk un . table view . adapter . recyclerview . holder . Abstract Sorter ViewHolder Ċ import Ġcom . ev ren co sk un . table view . sort . Sort State Ċ import Ġcom . ky aw ht ut . test . R Ċ import Ġcom . ky aw ht ut . test . vo . TableColumn Header VO Ċ import Ġkotlinx . android . synt hetic . main . table _ column _ header _ layout . view .* Ċ Ċ /** Ċ Ġ* Ġ@ author Ġk yaw ht ut Ċ Ġ* Ġ@ date Ġ 0 7 / 0 4 / 2 0 2 0 Ċ Ġ*/ Ċ class ĠTable Column Header ViewHolder ( private Ġval Ġview : ĠView , Ġprivate Ġval Ġtable : ĠI TableView ) Ġ: ĊĠĠĠ ĠAbstract Sorter ViewHolder ( view ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcontainer : ĠConstraint Layout Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġview . column _ header _ container ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġtv Cell Data : ĠTextView Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġview . column _ header _ textView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind ( data : ĠTable Column Header VO , Ġcolumn Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtv Cell Data . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġdata . data ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontainer . layout Params . width Ġ= ĠLinearLayout . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġcontainer . maxWidth Ġ= Ġ 4 0 0 ĊĠĠĠĠĠĠĠ Ġrequest Layout () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġtv Cell Data . request Layout () ĊĠĠĠĠĠĠĠ Ġcontainer . request Layout () ĊĠĠĠĠĠĠĠ Ġview . request Layout () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetSelected ( selection State : ĠSelection State ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setSelected ( selection State ) ĊĊĠĠĠĠĠĠĠ Ġcontainer . set BackgroundColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( selection State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSelection State . SELECTED Ġ-> ĠR . color . selected _ background _ color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSelection State . UN SELECTED Ġ-> ĠR . color . un selected _ background _ color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . color . un selected _ background _ color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtv Cell Data . setTextColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( selection State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSelection State . SELECTED Ġ-> ĠR . color . color Black ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . color . color Black ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sorting Status Changed ( p Sort State : ĠSort State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Sorting Status Changed ( p Sort State ) ĊĠĠĠĠĠĠĠ Ġcontainer . layout Params . width Ġ= ĠLinearLayout . LayoutParams . WRAP _ CONTENT ĊĊĠĠĠĠĠĠĠ Ġcontrol Sort State ( p Sort State ) ĊĊĠĠĠĠĠĠĠ Ġrequest Layout () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcontrol Sort State ( st ort State : ĠSort State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* btn Sort . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( st ort State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSort State . ASC ENDING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Image Resource ( R . drawable . ic _ arrow _ drop _ down _ black ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSort State . DESC ENDING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Image Resource ( R . drawable . ic _ arrow _ drop _ up _ black ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġvisibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}*/ ĊĠĠĠ Ġ} Ċ } Ċ