package Ġcom . block eq . stell ar wallet . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . graphics . drawable . Drawable Container Ċ import Ġandroid . graphics . drawable . Gradient Drawable Ċ import Ġandroid . graphics . drawable . State List Drawable Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . text . InputType Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . widget . LinearLayout Ċ import Ġcom . block eq . stell ar wallet . R Ċ import Ġcom . block eq . stell ar wallet . adapters . Custom Array Adapter Ċ import Ġcom . block eq . stell ar wallet . models . Selection Model Ċ import Ġkotlinx . android . synt hetic . main . view _ custom _ selector . view .* Ċ Ċ class ĠCustom Selector Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġdef Style : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠLinearLayout ( context , Ġattrs , Ġdef Style ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠINPUT _ TYPE _ NUMBER Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġval ĠINPUT _ TYPE _ DECIMAL Ġ= Ġ 2 ĊĠĠĠ Ġprivate Ġval ĠINPUT _ TYPE _ TEXT Ġ= Ġ 3 ĊĠĠĠ Ġprivate Ġval ĠINPUT _ TYPE _ EMAIL Ġ= Ġ 4 ĊĠĠĠ Ġprivate Ġval ĠINPUT _ TYPE _ NONE Ġ= Ġ 5 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . view _ custom _ selector , Ġthis , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġattrs ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtyped Array Ġ= Ġcontext . obtain Styled Attributes ( it , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Custom Selector , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Hint ( typed Array . getString ( R . style able . Custom Selector _ hint ) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Color ( typed Array . getColor ( R . style able . Custom Selector _ custom Stroke Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , ĠR . color . al to ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset InputType ( typed Array . getInt ( R . style able . Custom Selector _ input Type , Ġ 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtyped Array . recycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Hint ( hint : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġedit Text . hint Ġ= Ġhint ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Color ( color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġedit Text S ld Ġ= Ġedit Text . background Ġas ĠState List Drawable ĊĠĠĠĠĠĠĠ Ġval Ġedit Text Bg Children Ġ= Ġ( edit Text S ld . constant State Ġas ĠDrawable Container . Drawable Container State ). children ĊĠĠĠĠĠĠĠ Ġval Ġedit Text Disabled Gd Ġ= Ġedit Text Bg Children [ 0 ] Ġas ĠGradient Drawable ĊĠĠĠĠĠĠĠ Ġval Ġedit Text Enabled Gd Ġ= Ġedit Text Bg Children [ 1 ] Ġas ĠGradient Drawable ĊĠĠĠĠĠĠĠ Ġedit Text Disabled Gd . set Stroke ( Typed Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 f , Ġresources . display Metrics ). toInt (), Ġcolor ) ĊĠĠĠĠĠĠĠ Ġedit Text Enabled Gd . set Stroke ( Typed Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 f , Ġresources . display Metrics ). toInt (), Ġcolor ) ĊĠĠĠĠĠĠĠ Ġval Ġspinner Gd Ġ= Ġspinner Container . background Ġas ĠGradient Drawable ĊĠĠĠĠĠĠĠ Ġspinner Gd . set Stroke ( Typed Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 f , Ġresources . display Metrics ). toInt (), Ġcolor ) ĊĠĠĠĠĠĠĠ Ġspinner Gd . setColor ( color ) ĊĠĠĠĠĠĠĠ Ġspinner . set Popup Background Drawable ( Color Drawable ( color )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset InputType ( input Type : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( input Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINPUT _ TYPE _ NUMBER Ġ-> Ġedit Text . input Type Ġ= ĠInput Type . TYPE _ CLASS _ NUMBER ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINPUT _ TYPE _ DECIMAL Ġ-> Ġedit Text . input Type Ġ= ĠInput Type . TYPE _ CLASS _ NUMBER Ġor ĠInput Type . TYPE _ NUMBER _ FLAG _ DECIMAL ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINPUT _ TYPE _ TEXT Ġ-> Ġedit Text . input Type Ġ= ĠInput Type . TYPE _ CLASS _ TEXT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINPUT _ TYPE _ EMAIL Ġ-> Ġedit Text . input Type Ġ= ĠInput Type . TYPE _ CLASS _ TEXT Ġor ĠInput Type . TYPE _ TEXT _ VARI ATION _ EMAIL _ ADDRESS ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINPUT _ TYPE _ NONE Ġ-> Ġedit Text . input Type Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġedit Text . input Type Ġ= ĠInput Type . TYPE _ CLASS _ TEXT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Selection Values ( values : ĠMutable List < Selection Model >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcustom Array Adapter Ġ= ĠCustom Array Adapter ( context , ĠR . layout . view _ generic _ spinner _ item , Ġvalues ) ĊĠĠĠĠĠĠĠ Ġspinner . adapter Ġ= Ġcustom Array Adapter ĊĠĠĠ Ġ} Ċ Ċ }