package Ġcom . mini warehouse . ui . form čĊč Ċ import Ġandroid . annotation . Suppress Lint č Ċ import Ġandroid . app . Progress Dialog č Ċ import Ġandroid . graphics . Bitmap Factory č Ċ import Ġandroid . graphics . Matrix č Ċ import Ġandroidx . appcompat . app . AppCompatActivity č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . view . LayoutInflater č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . animation . Animation č Ċ import Ġandroid . view . animation . Translate Animation č Ċ import Ġandroid . widget .* č Ċ import Ġandroidx . view pager . widget . ViewPager č Ċ import Ġcom . mini ware h ose . R č Ċ import Ġcom . mini warehouse . logic . db op . Produce Assembly Db Op č Ċ import Ġcom . mini warehouse . logic . db op . Produce Product Db Op č Ċ import Ġcom . mini warehouse . ui . adapter . Common Pager Adapter č Ċ import Ġcom . mini warehouse . ui . listener . Add ItemClickListener č Ċ import Ġcom . mini warehouse . ui . listener . Other ItemSelected Listener č Ċ import Ġkotlinx . android . synt hetic . main . activity _ produce _ form .* čĊč Ċ class ĠPro duce Form Ġ: ĠAppCompatActivity (), ĠView . OnClickListener , ĠView Pager . On Page ChangeListener Ġ{ čĊčĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvp ager Ġ: ĠView Pager čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġimg Cursor Ġ: ĠImageView čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġitem _ one Ġ: ĠTextView čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġitem _ two Ġ: ĠTextView čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadd Item 1 Component Ġ: ĠArrayList < View > čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadd Item 2 Component Ġ: ĠArrayList < View > čĊĠĠĠ Ġprivate Ġvar Ġadd ItemCount 1 Ġ: ĠInt Ġ= Ġ 0 čĊĠĠĠ Ġprivate Ġvar Ġadd ItemCount 2 Ġ: ĠInt Ġ= Ġ 0 čĊčĊĠĠĠ Ġprivate Ġval Ġpager 1 _ db Ġ= ĠPro duce Assembly Db Op () čĊĠĠĠ Ġprivate Ġval Ġpager 2 _ db Ġ= ĠPro duce Product Db Op () čĊčĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpager View List Ġ: ĠArrayList < View > čĊĠĠĠ Ġprivate Ġvar Ġoffset Ġ= Ġ 0 čĊĠĠĠ Ġprivate Ġvar Ġcurr Idx Ġ= Ġ 0 čĊĠĠĠ Ġprivate Ġvar Ġbmp Width Ġ= Ġ 0 čĊĠĠĠ Ġprivate Ġvar Ġone Ġ= Ġ 0 čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ produce _ form ) čĊĠĠĠĠĠĠĠ Ġcache Pager View () čĊĠĠĠĠĠĠĠ Ġcache Data () čĊĠĠĠĠĠĠĠ Ġinit Spinner () čĊĠĠĠĠĠĠĠ Ġinit Pager () čĊĠĠĠĠĠĠĠ Ġinit Button () čĊĠĠĠĠĠĠĠ Ġregister Constant Widget () čĊĠĠĠĠĠĠĠ Ġinit Submit Button () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġcache Data () Ġ{ čĊĠĠĠĠĠĠĠ Ġpager 1 _ db . prepare Data () čĊĠĠĠĠĠĠĠ Ġpager 2 _ db . prepare Data () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Suppress Lint (" Inf late Params ") čĊĠĠĠ Ġprivate Ġfun Ġcache Pager View () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġl yin flater Ġ: ĠLayoutInflater Ġ= Ġlayout Inflater čĊĠĠĠĠĠĠĠ Ġpager View List Ġ= Ġarray ListOf ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl yin flater . inflate ( R . layout . pager _ item _ produce _ assembly , Ġnull , Ġfalse ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl yin flater . inflate ( R . layout . pager _ item _ produce _ product , Ġnull , Ġfalse ) čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġinit Spinner () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// Ġdatabase Ġselect Ġresult čĊĠĠĠĠĠĠĠ Ġval Ġmaterial ItemList 1 Ġ= Ġpager 1 _ db . get Material Name List () čĊĠĠĠĠĠĠĠ Ġval Ġstorage ItemList 1 Ġ= Ġpager 1 _ db . get Storage Name List () čĊĠĠĠĠĠĠĠ Ġval Ġmaterial ItemList 2 Ġ= Ġmaterial ItemList 1 čĊĠĠĠĠĠĠĠ Ġval Ġstorage ItemList 2 Ġ= Ġstorage ItemList 1 čĊĠĠĠĠĠĠĠ Ġstorage ItemList 1 . add (" æ·»åĬł æĸ° ä»ĵåºĵ ") čĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® Spinner čĊĠĠĠĠĠĠĠ Ġif Ġ( material ItemList 1 . size Ġ> Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠAS M material Spinner Ġ= Ġpager View List [ 0 ]. findViewById < View >( R . id . produce AS MP ager Material Consume Name Spinner ) Ġas ĠSp inner čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠP DT Master ial Spinner Ġ= Ġpager View List [ 1 ]. findViewById < View >( R . id . produce PD TP ager Material Consume Name Spinner ) Ġas ĠSp inner čĊĠĠĠĠĠĠĠĠĠĠĠ ĠAS M material Spinner . adapter Ġ= ĠArray Adapter < String >( this , ĠR . layout . support _ simple _ spinner _ dropdown _ item , Ġmaterial ItemList 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠP DT Master ial Spinner . adapter Ġ= ĠArray Adapter < String >( this , ĠR . layout . support _ simple _ spinner _ dropdown _ item , Ġmaterial ItemList 2 ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġval ĠAS M location Spinner Ġ= Ġpager View List [ 0 ]. findViewById < View >( R . id . produce AS MP ager Item Location Spinner ) Ġas ĠSp inner čĊĠĠĠĠĠĠĠ Ġval ĠP DT location Spinner Ġ= Ġpager View List [ 1 ]. findViewById < View >( R . id . produce PD TP ager Item Location Spinner ) Ġas ĠSp inner čĊĠĠĠĠĠĠĠ ĠAS M location Spinner . adapter Ġ= ĠArray Adapter < String >( this , ĠR . layout . support _ simple _ spinner _ dropdown _ item , Ġstorage ItemList 1 ) čĊĠĠĠĠĠĠĠ ĠP DT location Spinner . adapter Ġ= ĠArray Adapter < String >( this , ĠR . layout . support _ simple _ spinner _ dropdown _ item , Ġstorage ItemList 2 ) čĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® Spinner éĢīæĭ© äºĭä»¶ çĽĳåĲ¬ čĊĠĠĠĠĠĠĠ Ġval ĠAS M location Listener Ġ= ĠOther ItemSelected Listener ( this , Ġpager View List [ 0 ], ĠR . id . dynamic Layout Produce Assembly Storage Spinner ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Edit Line (" æĸ° ä»ĵåºĵ åĲįç§° ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Edit Multi Line (" æĸ° ä»ĵåºĵ è¯¦æĥħ ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. finish () čĊĠĠĠĠĠĠĠ ĠAS M location Spinner . on ItemSelected Listener Ġ= ĠAS M location Listener čĊĠĠĠĠĠĠĠ Ġval ĠP DT location List ner Ġ= ĠOther ItemSelected Listener ( this , Ġpager View List [ 1 ], ĠR . id . dynamic Layout Produce Parts Storage Spinner ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Edit Line (" æĸ° ä»ĵåºĵ åĲįç§° ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Edit Multi Line (" æĸ° ä»ĵåºĵ è¯¦æĥħ ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. finish () čĊĠĠĠĠĠĠĠ ĠP DT location Spinner . on ItemSelected Listener Ġ= ĠP DT location List ner čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġinit Button () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// Ġ éħį ä»¶ é¡µéĿ¢ æ·»åĬł é¡¹çĽ® čĊĠĠĠĠĠĠĠ Ġval ĠAS M AddItem Button Ġ= Ġpager View List [ 0 ]. findViewById < View >( R . id . produce ASM Add Material Consume Item ) Ġas ĠButton čĊĠĠĠĠĠĠĠ Ġval ĠAS M Add Button Listener Ġ= ĠAdd ItemClickListener ( this , Ġpager View List [ 0 ]. findViewById < View >( R . id . dynamic Layout Produce ASM AddItem )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Spinner Line (" åİŁ æĸĻ åĲįç§° ", Ġpager 1 _ db . get Material Name List ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Edit Line (" åįł ĠĠĠĠĠĠĠ Ġæ¯ Ķ ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. finish () čĊĠĠĠĠĠĠĠ ĠAS M AddItem Button . setOnClickListener ( ASM Add Button Listener ) čĊĠĠĠĠĠĠĠ Ġadd Item 1 Component Ġ= ĠAS M Add Button Listener . getComponent () čĊĠĠĠĠĠĠĠ Ġadd ItemCount 1 Ġ= ĠAS M Add Button Listener . getComponent ItemCount () čĊĠĠĠĠĠĠĠ Ġ// Ġ äº§åĵģ é¡µéĿ¢ æ·»åĬł é¡¹çĽ® čĊĠĠĠĠĠĠĠ Ġval ĠP DT AddItem Button Ġ= Ġpager View List [ 1 ]. findViewById < View >( R . id . produce P DT Add Material Consume Item ) Ġas ĠButton čĊĠĠĠĠĠĠĠ Ġval ĠP DT Add Button Listener Ġ= ĠAdd ItemClickListener ( this , Ġpager View List [ 1 ]. findViewById < View >( R . id . dynamic Layout Produce P DT AddItem )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Spinner Line (" åİŁ æĸĻ åĲįç§° ", Ġpager 2 _ db . get Material Name List ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Edit Line (" åįł ĠĠĠĠĠĠĠ Ġæ¯ Ķ ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. finish () čĊĠĠĠĠĠĠĠ ĠP DT AddItem Button . setOnClickListener ( P DT Add Button Listener ) čĊĠĠĠĠĠĠĠ Ġadd Item 2 Component Ġ= ĠP DT Add Button Listener . getComponent () čĊĠĠĠĠĠĠĠ Ġadd ItemCount 2 Ġ= ĠP DT Add Button Listener . getComponent ItemCount () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġinit Pager () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// Ġ æİ§ä»¶ čĊĠĠĠĠĠĠĠ Ġvp ager Ġ= Ġproduce Pager čĊĠĠĠĠĠĠĠ Ġitem _ one Ġ= Ġproduce Parts Item Text čĊĠĠĠĠĠĠĠ Ġitem _ two Ġ= Ġproduce Product Item Text čĊĠĠĠĠĠĠĠ Ġimg Cursor Ġ= Ġproduce Line Img čĊĠĠĠĠĠĠĠ Ġ// Ġä¸ĭ åĪĴ çº¿ åĬ¨çĶ» çĽ¸åħ³ è®¾ç½® čĊĠĠĠĠĠĠĠ Ġbmp Width Ġ= ĠBitmap Factory . decode Resource ( resources , ĠR . mip map . line ). width čĊĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġresources . display Metrics čĊĠĠĠĠĠĠĠ Ġval Ġscreen Width Ġ= Ġdm . width Pixels čĊĠĠĠĠĠĠĠ Ġoffset Ġ= Ġ( screen Width Ġ/ Ġ 2 Ġ- Ġbmp Width ) Ġ/ Ġ 2 čĊĠĠĠĠĠĠĠ Ġval Ġmatrix Ġ= ĠMatrix () čĊĠĠĠĠĠĠĠ Ġmatrix . post Translate ( offset . toFloat (), Ġ 0 F ) čĊĠĠĠĠĠĠĠ Ġimg Cursor . image Matrix Ġ= Ġmatrix čĊĠĠĠĠĠĠĠ Ġ// Ġ ç§»åĬ¨ è·Ŀç¦» čĊĠĠĠĠĠĠĠ Ġone Ġ= Ġoffset Ġ* Ġ 2 Ġ+ Ġbmp Width čĊĠĠĠĠĠĠĠ Ġ// Ġ å¾Ģ view Pager å¡« åħħ View ï¼Į åĲĮæĹ¶ è®¾ç½® çĤ¹åĩ» äºĭä»¶ ä¸İ é¡µéĿ¢ åĪĩæį¢ äºĭä»¶ čĊĠĠĠĠĠĠĠ Ġvp ager . adapter Ġ= ĠCommon Pager Adapter ( pager View List ) čĊĠĠĠĠĠĠĠ Ġvp ager . currentItem Ġ= Ġ 0 čĊčĊĠĠĠĠĠĠĠ Ġitem _ one . setOnClickListener ( this ) čĊĠĠĠĠĠĠĠ Ġitem _ two . setOnClickListener ( this ) čĊčĊĠĠĠĠĠĠĠ Ġvp ager . add On Page ChangeListener ( this ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġinit Submit Button () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġpager Submit 1 Ġ= Ġpager View List [ 0 ]. findViewById < View >( R . id . produce AS MP ager Item Submit Btn ) Ġas ĠButton čĊĠĠĠĠĠĠĠ Ġpager Submit 1 . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Dynamic Component 1 () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠProgress Dialog ( this ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . setMessage (" ä¿ĿåŃĺ ä¸Ń âĢ¦âĢ¦ ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . isIn determinate Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . set Cancel able ( false ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġpager 1 _ db . submit Data () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dialog . is Showing ) Ġdialog . dismiss () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( res ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" ä¿ĿåŃĺ æĪĲåĬŁ ", ĠToast . LENGTH _ SHORT ). show () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠToast . makeText ( this , Ġ" ä¿ĿåŃĺ å¤±è´¥ ", ĠToast . LENGTH _ SHORT ). show () čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġpager Submit 2 Ġ= Ġpager View List [ 1 ]. findViewById < View >( R . id . produce PD TP ager Item Submit Btn ) Ġas ĠButton čĊĠĠĠĠĠĠĠ Ġpager Submit 2 . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Dynamic Component 2 () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠProgress Dialog ( this ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . setMessage (" ä¿ĿåŃĺ ä¸Ń âĢ¦âĢ¦ ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . isIn determinate Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . set Cancel able ( false ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġpager 2 _ db . submit Data () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dialog . is Showing ) Ġdialog . dismiss () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( res ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" ä¿ĿåŃĺ æĪĲåĬŁ ", ĠToast . LENGTH _ SHORT ). show () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠToast . makeText ( this , Ġ" ä¿ĿåŃĺ å¤±è´¥ ", ĠToast . LENGTH _ SHORT ). show () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġregister Constant Widget () Ġ{ čĊĠĠĠĠĠĠĠ Ġregister Constant Widget 1 () čĊĠĠĠĠĠĠĠ Ġregister Constant Widget 2 () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġregister Constant Widget 1 () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġmutable Map Of < String , ĠView >( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" name " Ġto Ġpager View List [ 0 ]. findViewById ( R . id . produce AS MP ager Item Target Name Edit ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" number " Ġto Ġpager View List [ 0 ]. findViewById ( R . id . produce AS MP ager Item Target Number Edit ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" unit " Ġto Ġpager View List [ 0 ]. findViewById ( R . id . produce AS MP ager Item Material Unit Weight Edit ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" loss _ rate " Ġto Ġpager View List [ 0 ]. findViewById ( R . id . produce AS MP ager Item Material Loss Edit ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" storage " Ġto Ġpager View List [ 0 ]. findViewById ( R . id . produce AS MP ager Item Location Spinner ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" detail " Ġto Ġpager View List [ 0 ]. findViewById ( R . id . produce AS MP ager Item Parts Detail Edit ) čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġpager 1 _ db . bind ( map ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġregister Constant Widget 2 () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġmutable Map Of < String , ĠView >( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" name " Ġto Ġpager View List [ 1 ]. findViewById ( R . id . produce PD TP ager Item Target Name Edit ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" number " Ġto Ġpager View List [ 1 ]. findViewById ( R . id . produce PD TP ager Item Target Number Edit ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" unit " Ġto Ġpager View List [ 1 ]. findViewById ( R . id . produce PD TP ager Item Material Unit Weight Edit ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" loss _ rate " Ġto Ġpager View List [ 1 ]. findViewById ( R . id . produce PD TP ager Item Material Loss Edit ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" storage " Ġto Ġpager View List [ 1 ]. findViewById ( R . id . produce PD TP ager Item Location Spinner ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" detail " Ġto Ġpager View List [ 1 ]. findViewById ( R . id . produce PD TP ager Item Parts Detail Edit ) čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġpager 2 _ db . bind ( map ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġload Dynamic Component 1 () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġstorage Map Ġ= Ġmutable Map Of < String , ĠView >() čĊĠĠĠĠĠĠĠ Ġval Ġstorage Spinner Ġ= Ġpager View List [ 0 ]. findViewById < View >( R . id . produce AS MP ager Item Location Spinner ) Ġas ĠSp inner čĊĠĠĠĠĠĠĠ Ġif Ġ( storage Spinner . selected Item Position Ġ+ Ġ 1 Ġ== Ġstorage Spinner . count ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġstorage Spinner . on ItemSelected Listener Ġas ĠOther ItemSelected Listener čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġlistener . getComponent () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Map [" new _ storage _ name "] Ġ= Ġcomponent [ 0 ] čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Map [" new _ storage _ detail "] Ġ= Ġcomponent [ 1 ] čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġpager 1 _ db . bind ( storage Map ) čĊčĊĠĠĠĠĠĠĠ Ġpager 1 _ db . set Dynamic Component ( addItem 1 Component . size Ġ/ Ġadd ItemCount 1 ) čĊĠĠĠĠĠĠĠ Ġval Ġmaterial Map Ġ= Ġmutable Map Of < String , ĠView >( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" new _ material _ name _ 0 " Ġto Ġpager View List [ 0 ]. findViewById ( R . id . produce AS MP ager Material Consume Name Spinner ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" new _ material _ weight _ 0 " Ġto Ġpager View List [ 0 ]. findViewById ( R . id . produce AS MM aterial Consume Number Edit ) čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġwhile Ġ( i ++ Ġ< Ġadd Item 1 Component . size Ġ/ Ġadd ItemCount 1 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaterial Map [" new _ material _ name _$ i "] Ġ= Ġadd Item 1 Component [( i Ġ- Ġ 1 ) Ġ* Ġ 2 ] čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaterial Map [" new _ material _ weight _$ i "] Ġ= Ġadd Item 1 Component [( i Ġ- Ġ 1 ) Ġ* Ġ 2 Ġ+ Ġ 1 ] čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġpager 1 _ db . bind ( material Map ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġload Dynamic Component 2 () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġstorage Map Ġ= Ġmutable Map Of < String , ĠView >() čĊĠĠĠĠĠĠĠ Ġval Ġstorage Spinner Ġ= Ġpager View List [ 1 ]. findViewById < View >( R . id . produce PD TP ager Item Location Spinner ) Ġas ĠSp inner čĊĠĠĠĠĠĠĠ Ġif Ġ( storage Spinner . selected Item Position Ġ+ Ġ 1 Ġ== Ġstorage Spinner . count ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġstorage Spinner . on ItemSelected Listener Ġas ĠOther ItemSelected Listener čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġlistener . getComponent () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Map [" new _ storage _ name "] Ġ= Ġcomponent [ 0 ] čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Map [" new _ storage _ detail "] Ġ= Ġcomponent [ 1 ] čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġpager 2 _ db . bind ( storage Map ) čĊčĊĠĠĠĠĠĠĠ Ġpager 2 _ db . set Dynamic Component ( addItem 2 Component . size Ġ/ Ġadd ItemCount 2 ) čĊĠĠĠĠĠĠĠ Ġval Ġmaterial Map Ġ= Ġmutable Map Of < String , ĠView >( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" new _ material _ name _ 0 " Ġto Ġpager View List [ 1 ]. findViewById ( R . id . produce PD TP ager Material Consume Name Spinner ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" new _ material _ weight _ 0 " Ġto Ġpager View List [ 1 ]. findViewById ( R . id . produce P DT Material Consume Number Edit ) čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġwhile Ġ( i ++ Ġ< Ġadd Item 2 Component . size Ġ/ Ġadd ItemCount 2 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaterial Map [" new _ material _ name _$ i "] Ġ= Ġadd Item 2 Component [ i Ġ* Ġ 2 ] čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaterial Map [" new _ material _ weight _$ i "] Ġ= Ġadd Item 2 Component [ i Ġ* Ġ 2 Ġ+ Ġ 1 ] čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġpager 2 _ db . bind ( material Map ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ( v Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( v . id ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . produce Parts Item Text Ġ-> Ġvp ager . currentItem Ġ= Ġ 0 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . produce Product Item Text Ġ-> Ġvp ager . currentItem Ġ= Ġ 1 čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġanimation Ġ: ĠAnimation čĊĠĠĠĠĠĠĠ Ġwhen Ġ( position ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġif Ġ( curr Idx Ġ== Ġ 1 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimation Ġ= ĠTranslate Animation ( one . toFloat (), Ġ 0 F , Ġ 0 F , Ġ 0 F ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġif Ġ( curr Idx Ġ== Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimation Ġ= ĠTranslate Animation ( 0 F , Ġone . toFloat (), Ġ 0 F , Ġ 0 F ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġcurr Idx Ġ= Ġposition čĊĠĠĠĠĠĠĠ Ġanimation . fill After Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġanimation . duration Ġ= Ġ 3 0 0 čĊĠĠĠĠĠĠĠ Ġimg Cursor . start Animation ( animation ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( position : ĠInt , Ġposition Offset : ĠFloat , Ġposition Offset Pixels : ĠInt ) Ġ{ čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{ čĊĠĠĠ Ġ} č Ċ } čĊ