@ file : Suppress (" unused ", Ġ" UN CHECK ED _ CAST ") Ċ Ċ package Ġcom . android . input number . lib Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . widget . LinearLayout Ċ import Ġcom . android . input number . lib . callback . On Input Number Callback Ċ import Ġcom . android . input number . lib . dialog . Input Number Edit Dialog Ċ import Ġcom . android . input number . lib . ex . support FragmentManager Ċ import Ġcom . android . input number . lib . ex . toast Ċ import Ġkotlinx . android . synt hetic . main . layout _ input _ number . view .* Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠInput Number Ċ Ġ* Ċ Ġ* Ġ> ĠInput Ġnumerical Ġvalues Ġwith Ġa Ġcustom izable Ġrange . Ċ Ġ*/ Ċ class ĠInput Number View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠLinearLayout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNUMBER _ STATE _ NORMAL Ġ= Ġ 0 x 9 0 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNUMBER _ STATE _ MIN Ġ= Ġ 0 x 9 0 2 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNUMBER _ STATE _ MAX Ġ= Ġ 0 x 9 0 3 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNUMBER _ STATE _ ALL Ġ= Ġ 0 x 9 0 4 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġon Input Number Callback : ĠOn Input Number Callback ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġminimum Ġvalue Ġthat Ġcan Ġbe Ġentered , Ġdefault : Ġ` 1 ` ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġminimum : ĠInt Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ>= Ġmaximum ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit State () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġmaximum Ġvalue Ġthat Ġcan Ġbe Ġentered , Ġdefault : Ġ[ Int . MAX _ VALUE ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġmaximum : ĠInt Ġ= ĠInt . MAX _ VALUE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ<= Ġminimum ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit State () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġstep Ġsize Ġfor Ġeach Ġinput , Ġdefault : Ġ` 1 ` ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġstep : ĠInt Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( step Ġ< Ġ 1 ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit State () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġcurrent Ġnumber , Ġdefault : Ġ` 1 ` ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġnumber : ĠInt Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( check Update Number ( value )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Number Change State () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġwhether Ġto Ġallow Ġediting Ġinput ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġis Edit : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Edit Click ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġinput Ġon Ġor Ġoff ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġis Enabled Input : ĠBoolean Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Enable Input ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġorientation Ġ= ĠH ORIZONTAL ĊĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- Ġå¯¹ é½Ĳ æĸ¹å¼ı ä¸Ń å¿ħé¡» åŃĺåľ¨ Ġ` Gravity . CENTER _ VERTICAL ` ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- Ġ` Gravity . CENTER _ VERTICAL ` Ġmust Ġbe Ġpresent Ġin Ġthe Ġalignment ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- Ġ åĲ¦åĪĻ åľ¨ æŁĲ äºĽ æĥħåĨµä¸ĭ Ġ( e . g . Ġ` Dialog Fragment ` Ġ éĩįæĸ° æī§è¡Į æĺ¾ç¤º åĬ¨çĶ» ï¼Į ä½Ĩ æİ§ä»¶ çĪ¶ å¸ĥå±Ģ ä¸Ń æľª è®¾ç½® æŃ¤ å¯¹ é½Ĳ æĸ¹å¼ı ) Ġä¼ļ åĩºçİ° æİ§ä»¶ éĶĻ ä½į çļĦéĹ®é¢ĺ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- ĠOtherwise , Ġin Ġsome Ġcases Ġ( e . g . Ġ` Dialog Fragment ` Ġre - exec utes Ġthe Ġdisplay Ġanimation , Ġbut Ġthis Ġalignment Ġis Ġnot Ġset Ġin Ġthe Ġcontrol Ġparent Ġlayout ), Ġthere Ġwill Ġbe Ġa Ġcontrol Ġmis alignment Ġproblem ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- ĠåĴĮ åľ¨ ĠXML Ġè®¾ç½® Ġ` android : gravity =" end | center _ vertical "` Ġ çŃī ä»· ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- ĠE quivalent Ġto Ġsetting Ġ` android : gravity =" end | center _ vertical "` Ġin ĠXML ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . END . or ( Gravity . CENTER _ VERTICAL ) ĊĠĠĠĠĠĠĠ Ġinf late ( context , ĠR . layout . layout _ input _ number , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Finish Inf late () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Finish Inf late () ĊĠĠĠĠĠĠĠ Ġshow Number Change State () ĊĠĠĠĠĠĠĠ Ġset ClickListener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit State () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isEnabled Input ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠPredict Ġthe Ġresult Ġof Ġthe Ġnext Ġinput Ġin Ġadvance ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Next Max Ġ= Ġnumber Ġ+ Ġstep Ġ> Ġmaximum ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Next Min Ġ= Ġnumber Ġ- Ġstep Ġ< Ġminimum ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Next Max Ġ&& Ġis Next Min Ġ-> Ġchange State ( NUMBER _ STATE _ ALL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ== Ġminimum Ġ|| Ġis Next Min Ġ-> Ġchange State ( NUMBER _ STATE _ MIN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ== Ġmaximum Ġ|| Ġis Next Max Ġ-> Ġchange State ( NUMBER _ STATE _ MAX ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġchange State ( NUMBER _ STATE _ NORMAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset ClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn Number Left ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcal Number ( number , Ġstep , Ġfalse ) Ġ Ġ// ĠReduce ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn Number Right ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcal Number ( number , Ġstep , Ġtrue ) Ġ// ĠPlus ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchange Edit Click ( is Edit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchange Edit Click ( is Edit : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Edit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Number Center ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Edit Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Number Center ?. is Clickable Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Number Center ?. setOnClickListener ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Edit Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager ?. let Ġ{ Ġfm Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput Number Edit Dialog . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Ġ= Ġminimum , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaximum Ġ= Ġmaximum ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Result Ġ= Ġ{ Ġ// ĠDouble Ġcheck ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( check Update Number ( it )) Ġupdate CallBack ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show ( fm , Ġ" IN ED ialog -${ UUID . randomUUID () }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġthe Ġnumber Ġis Ġwithin Ġthe Ġmaximum Ġand Ġminimum Ġrange ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcheck Update Number ( number : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// return Ġnumber Ġin Ġminimum .. maximum ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue Ġ// ĠNo Ġmore Ġcheck ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalculate Ġthe Ġnumber ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcal Number ( current Number : ĠInt , Ġstep : ĠInt , Ġis Addition : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemp Number Ġ= Ġcal Number ( is Addition , Ġcurrent Number , Ġstep ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Addition ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( temp Number Ġ> Ġmaximum ) Ġ{ Ġ Ġ// ĠMaybe Ġa Ġcallback Ġcan Ġbe Ġbetter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Maximum Ġinput Ġ$ maximum ". toast ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange State ( NUMBER _ STATE _ MAX ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate CallBack ( temp Number ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCalculate Ġthe Ġnext Ġresult Ġin Ġadvance Ġand Ġset Ġthe Ġbutton Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġnext Number Ġ= Ġcal Number ( is Addition , Ġtemp Number , Ġstep ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġ( next Number Ġ> Ġmaximum ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġchange State ( NUMBER _ STATE _ MAX ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ//} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( temp Number Ġ< Ġminimum ) Ġ{ Ġ Ġ// ĠMaybe Ġa Ġcallback Ġcan Ġbe Ġbetter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Minimum Ġinput Ġ$ minimum ". toast ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange State ( NUMBER _ STATE _ MIN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate CallBack ( temp Number ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCalculate Ġthe Ġnext Ġresult Ġin Ġadvance Ġand Ġset Ġthe Ġbutton Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġnext Number Ġ= Ġcal Number ( is Addition , Ġtemp Number , Ġstep ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġ( next Number Ġ< Ġminimum ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġchange State ( NUMBER _ STATE _ MIN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ//} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcal Number ( is Addition : ĠBoolean , Ġcurrent Number : ĠInt , Ġstep : ĠInt ) Ġ= Ġif Ġ( is Addition ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Number Ġ+ Ġstep ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Number Ġ- Ġstep ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdate Ġbutton Ġstate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġchange State ( state : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNUMBER _ STATE _ ALL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Number Left ?. isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Number Right ?. isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNUMBER _ STATE _ MAX Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Number Left ?. isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Number Right ?. isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNUMBER _ STATE _ MIN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Number Left ?. isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Number Right ?. isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNUMBER _ STATE _ NORMAL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Number Left ?. isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Number Right ?. isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdate Ġnumber Ġand Ġcall Ġback ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġupdate CallBack ( new Number : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġupdate Block Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate ( new Number ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfailed Block Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġnumber Ġfailed ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon Input Number Callback ?. on Update Need Confirmation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ= Ġnew Number , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Block Ġ= Ġupdate Block , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfailed Block Ġ= Ġfailed Block ĊĠĠĠĠĠĠĠ Ġ) Ġ?: Ġupdate Block () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġcalculation Ġand Ġcheck Ġpass Ġresults Ġare Ġupdated Ġby Ġthis Ġmethod , ĊĠĠĠĠ Ġ* ĠIf Ġthe Ġcheck Ġfails Ġor Ġother Ġconditions Ġare Ġnot Ġmet , Ġdo Ġnot Ġcall Ġthis Ġmethod ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġupdate ( new Number : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnumber Ġ= Ġnew Number ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDisplay Ġquantity Ġand Ġupdate Ġstatus ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Number Change State () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Number () ĊĠĠĠĠĠĠĠ Ġinit State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDisplay Ġnumber Ġto ĠUI ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Number () Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn Number Center ?. text Ġ= Ġ"$ number " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTurn Ġinput Ġon Ġor Ġoff ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġchange Enable Input ( isEnabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn Number Left ?. isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ Ġbtn Number Center ?. isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ Ġbtn Number Right ?. isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ Ġinit State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRestore Ġnumber Ġto Ġminimum ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrestore Number 2 Minimum () Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate CallBack ( minimum ) ĊĠĠĠ Ġ} Ċ Ċ }