package Ġedu . am rit a . am rit ac afe . model Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . Base Adapter Ċ import Ġedu . am rit a . am rit ac afe . R Ċ import Ġedu . am rit a . am rit ac afe . menu . MenuItem Ċ import Ġedu . am rit a . am rit ac afe . menu . Regular Order Item Ċ import Ġedu . am rit a . am rit ac afe . menu . TO PP ING Ċ import Ġkotlinx . android . synt hetic . main . item _ order . view .* ĊĊ Ċ class ĠOrder Adapter ( context : ĠContext ) Ġ: ĠBase Adapter () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġinflater : ĠLayoutInflater Ġ= ĊĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ĊĠĠĠ Ġprivate Ġval Ġorder List : ĠMutable List < Regular Order Item > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġval Ġorder Items : ĠList < Regular Order Item > Ġ= Ġorder List ĊĊĠĠĠ Ġvar Ġorder Changed : Ġ() Ġ-> ĠUnit Ġ= Ġ{} Ġ// ĠRe placed Ġby Ġcorrect Ġcallback Ġin Ġmain activity ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġorder List . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġorder List [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġposition . to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove ( item : ĠRegular Order Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġorder List . removeAll Ġ{ Ġit Ġ== Ġitem Ġ} ĊĠĠĠĠĠĠĠ Ġupdate All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd ( addItem : ĠMenuItem ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfound Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlist ToCheck Ġ= Ġorder List ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( addItem . category Ġ== ĠTOP PING ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ToCheck Ġ= Ġlist ToCheck . sub List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ToCheck . indexOf Last Ġ{ Ġit . menuItem . category Ġ!= ĠTOP PING Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ToCheck . size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( existing Item Ġin Ġlist ToCheck ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( addItem . code Ġ== Ġexisting Item . menuItem . code Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item . category Ġ== Ġexisting Item . menuItem . category Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexisting Item . comment Ġ== Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexisting Item . quantity ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" in creasing ! Ġ${ existing Item . quantity }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfound Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! found ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder List . add ( Regular Order Item ( addItem )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder List [ 0 ]. increment () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate All () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 1 ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġorder List . clear () ĊĠĠĠĠĠĠĠ Ġupdate All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate All () Ġ{ ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġorder Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreuse Or Inf late ( view : ĠView ?, Ġparent : ĠViewGroup ) Ġ= ĊĠĠĠĠĠĠĠ Ġview Ġ?: Ġinflater . inflate ( R . layout . item _ order , Ġparent , Ġfalse ). apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorder Item View Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount _ TV . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" in creasing Ġamount Ġof Ġb la Ġb la ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġtag Ġas ĠInt ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder List [ position ] Ġ= Ġorder List [ position ]. increment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment _ ET . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠInput Method Manager ). show Soft Input ( this , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcancel _ button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove ( order List [ tag Ġas ĠInt ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomment _ ET . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( p 0 : ĠEdit able ?) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġorder Item View . tag Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder List [ position ] Ġ= Ġorder Items [ position ]. edit Comment ( p 0 . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġreuse Or Inf late ( convert View , Ġparent ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġposition ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder List [ position ]. let Ġ{ Ġorder Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= Ġorder Item . menuItem . code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount _ TV . text Ġ= Ġorder Item . quantity . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice _ TV . text Ġ= Ġorder Item . price Without Top p ings . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment _ ET . setText ( order Item . comment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment _ ET . visibility Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( order Item . comment . isNotBlank ()) ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }