package Ġcom . blocks decoded . coin wave . presentation . widgets Ċ Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġbutter knife . BindView Ċ import Ġbutter knife . B utter Kn ife Ċ import Ġbutter knife . OnClick Ċ import Ġcom . blocks decoded . coin wave . R Ċ import Ġcom . blocks decoded . coin wave . presentation . sort . Coins Cache Ċ import Ġcom . blocks decoded . coin wave . presentation . sort . Coins Cache . Coin Sort Enum .* Ċ import Ġcom . blocks decoded . coin wave . presentation . sort . View Sort Enum Ċ import Ġcom . blocks decoded . coin wave . presentation . sort . View Sort Enum .* Ċ import Ġcom . blocks decoded . utils . extensions . getColor Res Ċ import Ġcom . blocks decoded . utils . extensions . inflate Ċ Ċ class ĠCoin s Header View Ġ: ĠFrame Layout Ġ{ ĊĊĠĠĠ Ġvar Ġcurrent Sort : ĠCoin s Cache . Coin Sort Enum Ġ= ĠDEFAULT ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Views () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġactive Color Ġby Ġlazy Ġ{ Ġget Color Res ( R . color . blue ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġinactive Color Ġby Ġlazy Ġ{ Ġget Color Res ( R . color . light _ text ) Ġ} ĊĊĠĠĠ Ġ@ BindView ( R . id . coins _ header _ market _ cap _ title ) ĊĠĠĠ Ġlateinit Ġvar Ġmarket Cap Title : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . coins _ header _ volume _ title ) ĊĠĠĠ Ġlateinit Ġvar Ġvolume Title : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . coins _ header _ name _ title ) ĊĠĠĠ Ġlateinit Ġvar Ġname Title : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . coins _ header _ price _ title ) ĊĠĠĠ Ġlateinit Ġvar Ġprice Title : ĠTextView ĊĊĠĠĠ Ġ@ BindView ( R . id . coins _ header _ cap _ sort _ icon ) ĊĠĠĠ Ġlateinit Ġvar Ġcap Sort Icon : ĠImageView ĊĠĠĠ Ġ@ BindView ( R . id . coins _ header _ volume _ sort _ icon ) ĊĠĠĠ Ġlateinit Ġvar Ġvolume Sort Icon : ĠImageView ĊĠĠĠ Ġ@ BindView ( R . id . coins _ header _ name _ sort _ icon ) ĊĠĠĠ Ġlateinit Ġvar Ġname Sort Icon : ĠImageView ĊĠĠĠ Ġ@ BindView ( R . id . coins _ header _ price _ sort _ icon ) ĊĠĠĠ Ġlateinit Ġvar Ġprice Sort Icon : ĠImageView ĊĊĠĠĠ Ġ@ OnClick ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . coins _ header _ market _ cap , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . coins _ header _ name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . coins _ header _ price , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . coins _ header _ volume ) ĊĠĠĠ Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . coins _ header _ market _ cap Ġ-> Ġm Listener ?. invoke ( CAP ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . coins _ header _ name Ġ-> Ġm Listener ?. invoke ( NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . coins _ header _ price Ġ-> Ġm Listener ?. invoke ( PRICE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . coins _ header _ volume Ġ-> Ġm Listener ?. invoke ( VOLUME ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm Listener : Ġ(( sort Type : ĠView Sort Enum ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context , Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . LO L LI POP ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt , Ġdef Style Res : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr , Ġdef Style Res ) ĊĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġadd View ( inflate ( R . layout . partial _ coins _ header )) ĊĊĠĠĠĠĠĠĠ ĠB utter Kn ife . bind ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Listener ( listener : Ġ( sort Type : ĠView Sort Enum ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġreset All Views () ĊĊĠĠĠĠĠĠĠ Ġset Active Color () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset All Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġarray ListOf ( name Title , Ġprice Title , Ġvolume Title , Ġmarket Cap Title ). forEach Ġ{ Ġit . setTextColor ( inactive Color ) Ġ} ĊĠĠĠĠĠĠĠ Ġarray ListOf ( name Sort Icon , Ġprice Sort Icon , Ġvolume Sort Icon , Ġcap Sort Icon ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . rotation Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setColor Filter ( inactive Color ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Active Color () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġviews Ġ= Ġwhen Ġ( current Sort ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNAME _ ASC Ġ-> ĠTrip le ( name Title , Ġname Sort Icon , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNAME _ DES Ġ-> ĠTrip le ( name Title , Ġname Sort Icon , Ġ 1 8 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMARK ET _ CAP _ ASC Ġ-> ĠTrip le ( market Cap Title , Ġcap Sort Icon , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMARK ET _ CAP _ DES Ġ-> ĠTrip le ( market Cap Title , Ġcap Sort Icon , Ġ 1 8 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV OL UME _ ASC Ġ-> ĠTrip le ( volume Title , Ġvolume Sort Icon , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV OL UME _ DES Ġ-> ĠTrip le ( volume Title , Ġvolume Sort Icon , Ġ 1 8 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPR ICE _ ASC Ġ-> ĠTrip le ( price Title , Ġprice Sort Icon , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPR ICE _ DES Ġ-> ĠTrip le ( price Title , Ġprice Sort Icon , Ġ 1 8 0 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġviews ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst . setTextColor ( active Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsecond . setColor Filter ( active Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsecond . rotation Ġ= Ġthird ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }