package Ġcom . ei hr or . awesome spinner Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Adapter View Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroid . widget . Spinner Ċ import Ġandroid . widget . TextView Ċ Ċ fun Ġ< V > ĠSp inner . create Adapter ( ĊĠĠĠ Ġlayout : ĠInt , ĊĠĠĠ Ġdrop Down Layout : ĠInt , ĊĠĠĠ ĠfontSize : ĠFloat , ĊĠĠĠ Ġtype Face : ĠType face ?, ĊĠĠĠ Ġlist : ĠList < V > ?, ĊĠĠĠ Ġselected Listener : Ġ(( position : ĠInt ) Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠ Ġnothing Selected Listener : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull Ċ ) Ġ{ ĊĊĠĠĠ Ġvar Ġis Spinner Tou ched Ġ= Ġfalse ĊĊĠĠĠ Ġset On Touch Listener Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠ Ġis Spinner Tou ched Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġaa Ġ= Ġobject Ġ: ĠArray Adapter < V >( this . context , Ġlayout , Ġlist !!. to Mutable List ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠconvertView : ĠView ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠViewGroup ? ĊĠĠĠĠĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġsuper . getView ( position , ĠconvertView , Ġparent !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext view Ġ= Ġview Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext view . setTextColor ( Color . BLACK ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext view . setText Size ( Typed Value . COMPLEX _ UNIT _ SP , ĠfontSize ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Face ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view . type face Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget DropDown View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠconvertView : ĠView ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠViewGroup ĊĠĠĠĠĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġsuper . get DropDown View ( position , ĠconvertView , Ġparent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext view Ġ= Ġview Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view . setTextColor ( Color . GRAY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view . setTextColor ( Color . BLACK ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext view . setText Size ( Typed Value . COMPLEX _ UNIT _ SP , ĠfontSize ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Face ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view . type face Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġdrop Down Layout . let Ġ{ Ġaa . set DropDown View Resource ( it ) Ġ} ĊĊĠĠĠ Ġwith ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġaa ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġthis . on ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View < *> ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnothing Selected Listener ?. let Ġ{ Ġit () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠAdapter View < *> ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview : ĠView ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid : ĠLong ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Spinner Tou ched ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Listener ?. let Ġ{ Ġit ( position ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ