package Ġgithub . com . vik rame zh il . dv u . views . wheel Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . LinearLayout . HORIZONTAL Ċ import Ġandroid . widget . LinearLayout . VERTICAL Ċ import Ġandroidx . annotation . Attr Res Ċ import Ġgithub . com . vik rame zh il . dv u . R Ċ import Ġgithub . com . vik rame zh il . dv u . databinding . Layout Dv uw v Binding Ċ import Ġkotlinx . android . synt hetic . main . layout _ dv uw v . view .* Ċ Ċ /** Ċ Ġ* ĠD roid ĠView ĠUtils Ġ- ĠW heel ĠView Ċ Ġ* Ġ@ author Ġv ik rame zh il Ċ Ġ*/ Ċ Ċ class ĠD vu Wheel View Ġ@ Jvm Over loads Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġ@ Attr Res Ġdef Style Attr : ĠInt Ġ= Ġ 0 ): ĠFrame Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġbinding : ĠLayout Dv uw v Binding ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠD vu Wv Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġproperties Ġ= Ġobject : ĠD vu Wv Props () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġitems List : ĠArrayList < String > Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġbg Color : ĠInt Ġ= ĠColor . BLACK ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġselected Item Bg Color : ĠInt Ġ= ĠColor . BLACK ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġselected Item Txt Color : ĠInt Ġ= ĠColor . WHITE ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġun selected Item Bg Color : ĠInt Ġ= ĠColor . BLACK ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġun selected Item Txt Color : ĠInt Ġ= ĠColor . WHITE ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġdivider Color : ĠInt Ġ= ĠColor . WHITE ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġenable Item Highlight : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġshow Divider : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġitem Txt Bold : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġitem Txt Italic : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġinfinite Scrolling : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġscale Down Enabled : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġscrolling : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġitem Txt Size : ĠFloat Ġ= Ġresources . get Dimension ( R . dim en . dv u _ wv _ item _ txt _ size ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġselected Item Txt Alpha : ĠFloat Ġ= Ġ 1 f ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġun selected Item Txt Alpha : ĠFloat Ġ= Ġ 1 f ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġheight : ĠInt Ġ= Ġresources . get Dimension Pixel Size ( R . dim en . dv u _ wv _ min _ height ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġv Padding : ĠInt Ġ= Ġresources . get Dimension Pixel Size ( R . dim en . dv u _ wv _ v _ padding ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġh Padding : ĠInt Ġ= Ġresources . get Dimension Pixel Size ( R . dim en . dv u _ wv _ h _ padding ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġitem TextStyle : ĠInt Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġselected Item Pos : ĠInt Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġorientation : ĠInt Ġ= ĠH ORIZONTAL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġon D vu Wv Listener : ĠOn D vu Wv Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠĠĠĠĠ Ġlayout Inflater . inflate ( R . layout . layout _ dv uw v , Ġthis ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠLayout Dv uw v Binding . inflate ( layout Inflater ) ĊĊĠĠĠĠĠĠĠ Ġminimum Height Ġ= Ġproperties . height ĊĊĠĠĠĠĠĠĠ Ġinit ( context , Ġattrs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitializes Ġthe Ġview Ġattributes ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĠThe Ġview Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġattrs ĠAttributeSet ĠThe Ġview Ġattributes ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( attrs Ġ== Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġtyped Array Ġ= Ġcontext . theme . obtain Styled Attributes ( attrs , ĠR . style able . D vu Wheel View , Ġ 0 , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġtyped Array . getResource Id ( R . style able . D vu Wheel View _ dv u Wv Wheel Items , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( items Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . items List Ġ= Ġtyped Array . resources . getString Array ( items ). to Collection ( ArrayList ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . item TextStyle Ġ= Ġtyped Array . getResource Id ( R . style able . D vu Wheel View _ dv u Wv Item Txt Style , Ġproperties . item TextStyle ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . bgColor Ġ= Ġtyped Array . getInt ( R . style able . D vu Wheel View _ dv u Wv Bg Color , ĠColor . BLACK ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Bg Color Ġ= Ġtyped Array . getInt ( R . style able . D vu Wheel View _ dv u Wv SelectedItem Bg Color , Ġproperties . bgColor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Txt Color Ġ= Ġtyped Array . getInt ( R . style able . D vu Wheel View _ dv u Wv SelectedItem Txt Color , ĠColor . WHITE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . un selected Item Bg Color Ġ= Ġtyped Array . getInt ( R . style able . D vu Wheel View _ dv u Wv Un selected Item Bg Color , Ġproperties . bgColor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . un selected Item Txt Color Ġ= Ġtyped Array . getInt ( R . style able . D vu Wheel View _ dv u Wv Un selected Item Txt Color , ĠColor . WHITE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . divider Color Ġ= Ġtyped Array . getInt ( R . style able . D vu Wheel View _ dv u Wv Divider Color , ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . divider Color Ġ= Ġtyped Array . getInt ( R . style able . D vu Wheel View _ dv u Wv Divider Color , ĠColor . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . divider Color Ġ= Ġtyped Array . getInt ( R . style able . D vu Wheel View _ dv u Wv Divider Color , ĠColor . WHITE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . show Divider Ġ= Ġtyped Array . getBoolean ( R . style able . D vu Wheel View _ dv u Wv Show Divider , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . item Txt Bold Ġ= Ġtyped Array . getBoolean ( R . style able . D vu Wheel View _ dv u Wv Item Txt Bold , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . item Txt Italic Ġ= Ġtyped Array . getBoolean ( R . style able . D vu Wheel View _ dv u Wv Item Txt Italic , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . infinite Scrolling Ġ= Ġtyped Array . getBoolean ( R . style able . D vu Wheel View _ dv u Wv Infinite Scrolling , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . scale Down Enabled Ġ= Ġtyped Array . getBoolean ( R . style able . D vu Wheel View _ dv u Wv Scale Down Enabled , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . orientation Ġ= Ġif ( typed Array . getBoolean ( R . style able . D vu Wheel View _ dv u Wv Orientation Vertical , Ġfalse )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV ERT ICAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH ORIZONTAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . item Txt Size Ġ= Ġtyped Array . get Dimension ( R . style able . D vu Wheel View _ dv u Wv Item Txt Size , Ġproperties . item Txt Size ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . un selected Item Txt Alpha Ġ= Ġtyped Array . get Float ( R . style able . D vu Wheel View _ dv u Wv Un selected Item Txt Alpha , Ġproperties . un selected Item Txt Alpha ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Pos Ġ= Ġtyped Array . getInt ( R . style able . D vu Wheel View _ dv u Wv Default SelectedItem Pos , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtyped Array . recycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitial izing Ġthe Ġwheel Ġview ĊĠĠĠĠĠĠĠ Ġinit Wheel View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Size Changed ( w : ĠInt , Ġh : ĠInt , Ġold w : ĠInt , Ġold h : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Size Changed ( w , Ġh , Ġold w , Ġold h ) ĊĊĠĠĠĠĠĠĠ Ġproperties . height Ġ= Ġh ĊĠĠĠĠĠĠĠ Ġif Ġ( properties . orientation Ġ== ĠV ERT ICAL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . v Padding Ġ= Ġ( h / 2 ) Ġ- Ġproperties . v Padding ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd vu _ wv . set Padding ( 0 , Ġproperties . v Padding , Ġ 0 , Ġproperties . v Padding ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . h Padding Ġ= Ġ( w / 2 ) Ġ- Ġproperties . h Padding ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd vu _ wv . set Padding ( properties . h Padding , Ġ 0 , Ġproperties . h Padding , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadapter ?. update ( properties ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitializes Ġthe Ġwheel Ġview ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Wheel View () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSetting Ġthe Ġbackground Ġcolor ĊĠĠĠĠĠĠĠ Ġd vu _ wv . set BackgroundColor ( properties . bgColor ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠLayout Ġmanager ĊĠĠĠĠĠĠĠ Ġd vu _ wv . layout Manager Ġ= ĠD vu Wv Slider Manager ( context , Ġproperties . orientation , Ġproperties . scale Down Enabled , Ġobject : ĠOn D vu Wv Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( position : ĠInt , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . scroll ing Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ!= Ġproperties . selected Item Pos ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Pos Ġ= Ġposition ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSending Ġan Ġupdate Ġwhen Ġan Ġitem Ġis Ġselected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon D vu Wv Listener ?. on ItemSelected ( position , Ġproperties . items List [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. update ( properties ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Scrolling () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . scroll ing Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. update ( properties ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSending Ġan Ġupdate Ġwhen Ġthe Ġwheel Ġis Ġscrolling ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon D vu Wv Listener ?. on Scrolling () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠW heel ĠAdapter ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠD vu Wv Adapter ( context , Ġproperties , Ġobject : ĠOn D vu Wv Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( position : ĠInt , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . scroll ing Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ!= Ġproperties . selected Item Pos ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Pos Ġ= Ġposition ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠScroll ing Ġto Ġthe Ġselected Ġitem Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd vu _ wv . smooth Scroll To Position ( position ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSending Ġan Ġupdate Ġwhen Ġan Ġitem Ġis Ġselected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon D vu Wv Listener ?. on ItemSelected ( position , Ġproperties . items List [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Scrolling () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSending Ġan Ġupdate Ġwhen Ġthe Ġwheel Ġis Ġscrolling ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon D vu Wv Listener ?. on Scrolling () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSetting Ġthe Ġadapter ĊĠĠĠĠĠĠĠ Ġd vu _ wv . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġ// ĠRefresh ing Ġthe Ġwheel ĊĠĠĠĠĠĠĠ Ġrefresh Wheel ( properties . selected Item Pos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRefresh ing Ġthe Ġwheel ĊĠĠĠĠ Ġ* Ġ@ param Ġposition ĠInt ĠThe Ġscroll Ġposition ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġrefresh Wheel ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprev Position Ġ= Ġproperties . selected Item Pos ĊĠĠĠĠĠĠĠ Ġif Ġ( properties . items List . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġ 0 Ġ|| Ġposition Ġ>= Ġproperties . items List . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Pos Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Pos Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFind ing Ġinitial Ġscroll Ġto Ġposition Ġto Ġprevent Ġlong Ġanimation Ġwhen Ġthere Ġare ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlot Ġof Ġitems Ġin Ġthe Ġlist Ġduring Ġsmooth Ġscroll ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscroll To Position Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Pos Ġ> Ġprev Position Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠScroll Ġdown Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Pos Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Pos Ġ< Ġprev Position Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠScroll Ġup Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Pos Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . selected Item Pos ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( scrollTo Position Ġ>= Ġ 0 Ġ&& Ġ Ġscroll To Position Ġ< Ġproperties . items List . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd vu _ wv . scrollTo Position ( scrollTo Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġd vu _ wv . smooth Scroll To Position ( properties . selected Item Pos ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . enable Item Highlight Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. update ( properties ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġwheel Ġitems ĊĠĠĠĠ Ġ* Ġ@ param Ġitems List ĠArrayList < String > ĠThe Ġitems Ġlist ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Wheel Items ( items List : ĠArrayList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġproperties . items List Ġ= Ġitems List ĊĠĠĠĠĠĠĠ Ġrefresh Wheel ( 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġwheel Ġitems ĊĠĠĠĠ Ġ* Ġ@ param Ġitems List ĠArrayList < String > ĠThe Ġitems Ġlist ĊĠĠĠĠ Ġ* Ġ@ param Ġscroll To Pos ĠInt ĠThe Ġscroll Ġto Ġposition ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Wheel Items ( items List : ĠArrayList < String >, Ġscroll To Pos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproperties . items List Ġ= Ġitems List ĊĠĠĠĠĠĠĠ Ġrefresh Wheel ( scrollTo Pos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠScroll s Ġbased Ġon Ġthe Ġposition ĊĠĠĠĠ Ġ* Ġ@ param Ġscroll To Pos ĠInt ĠThe Ġscroll Ġto Ġposition ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġscroll To Position ( scrollTo Pos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrefresh Wheel ( scrollTo Pos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠScroll s Ġbased Ġon Ġthe Ġitem Ġname ĊĠĠĠĠ Ġ* Ġ@ param Ġitem Name ĠString ĠThe Ġscroll Ġto Ġitem Ġname ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġscroll To Item ( itemName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrefresh Wheel ( properties . items List . indexOf ( itemName )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġthe Ġcurrent Ġselected Ġwheel Ġitem ĊĠĠĠĠ Ġ* Ġ@ return ĠString ? ĠThe Ġcurrent Ġselected Ġwheel Ġitem ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetCurrent Selected Wheel Item (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( properties . selected Item Pos Ġ>= Ġ 0 Ġ&& Ġproperties . selected Item Pos Ġ< Ġproperties . items List . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . items List [ properties . selected Item Pos ] ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġthe Ġcurrent Ġselected Ġwheel Ġitem Ġposition ĊĠĠĠĠ Ġ* Ġ@ return ĠInt ĠThe Ġcurrent Ġselected Ġwheel Ġitem Ġposition ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetCurrent Selected Wheel Item Position (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġproperties . selected Item Pos ĊĠĠĠ Ġ} Ċ }