package Ġcom . remember . remember . ui . home . memory _ line . configuration Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . appcompat . widget . AppCompat ImageView Ċ import Ġandroidx . appcompat . widget . AppCompat TextView Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġbr . com . arch . toolkit . delegate . view Provider Ċ import Ġbr . com . arch . toolkit . state machine . View StateMachine Ċ import Ġbr . com . arch . toolkit . state machine . config Ċ import Ġbr . com . arch . toolkit . state machine . setup Ċ import Ġbr . com . arch . toolkit . state machine . state Ċ import Ġcom . facebook . shim mer . Sh im mer Frame Layout Ċ import Ġcom . remember . common . actions . to Home Ċ import Ġcom . remember . common . actions . to Profile Ċ import Ġcom . remember . common . bottom sheet . Custom Bottom Sheet Dialog Ċ import Ġcom . remember . common . extension . show Error Ċ import Ġcom . remember . common . extension . show Success Ċ import Ġcom . remember . common . widget . Error View Ċ import Ġcom . remember . common . widget . Image TextView Ċ import Ġcom . remember . common . widget . Remember Toolbar Ċ import Ġcom . remember . extension . nav Controller Provider Ċ import Ġcom . remember . extension . setStatus Bar Ċ import Ġcom . remember . remember . Build Config Ċ import Ġcom . remember . remember . R Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel Ċ Ċ class ĠMemory Line Configuration Fragment Ġ: ĠFragment ( R . layout . app _ fragment _ memory _ line _ configuration ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmemory Line Configuration ViewModel : ĠMemory Line Configuration ViewModel Ġby ĠviewModel () ĊĠĠĠ Ġprivate Ġval Ġnav Controller : ĠNav Controller Ġby Ġnav Controller Provider () ĊĠĠĠ Ġprivate Ġval Ġnav Args : ĠMemory Line Configuration Fragment Args Ġby Ġnav Args () ĊĊĠĠĠ Ġprivate Ġval Ġroot : ĠViewGroup Ġby Ġview Provider ( R . id . root ) ĊĠĠĠ Ġprivate Ġval Ġremember Toolbar : ĠRemember Toolbar Ġby Ġview Provider ( R . id . toolbar ) ĊĠĠĠ Ġprivate Ġval Ġmemory Line Name : ĠAppCompat TextView Ġby Ġview Provider ( R . id . memory _ line _ name ) ĊĠĠĠ Ġprivate Ġval Ġedit Memory Line Name : ĠAppCompat ImageView Ġby Ġview Provider ( R . id . edit _ memory _ line _ name ) ĊĠĠĠ Ġprivate Ġval Ġadd Participant : ĠImage TextView Ġby Ġview Provider ( R . id . add _ participant ) ĊĠĠĠ Ġprivate Ġval Ġquantity Participants : ĠImage TextView Ġby Ġview Provider ( R . id . quantity _ participants ) ĊĠĠĠ Ġprivate Ġval Ġleave Memory Line : ĠImage TextView Ġby Ġview Provider ( R . id . leave _ memory _ line ) ĊĠĠĠ Ġprivate Ġval Ġdelete Memory Line : ĠImage TextView Ġby Ġview Provider ( R . id . delete _ memory _ line ) ĊĠĠĠ Ġprivate Ġval Ġshim mer : ĠSh im mer Frame Layout Ġby Ġview Provider ( R . id . shim mer _ configuration ) ĊĠĠĠ Ġprivate Ġval Ġerror View : ĠError View Ġby Ġview Provider ( R . id . error _ view ) ĊĠĠĠ Ġprivate Ġval Ġline : ĠView Ġby Ġview Provider ( R . id . line ) ĊĊĠĠĠ Ġprivate Ġval Ġview StateMachine Ġ= ĠView StateMachine () ĊĠĠĠ Ġprivate Ġval Ġstate Loading Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval Ġstate Data Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġval Ġstate Error Ġ= Ġ 2 ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset StatusBar ( R . color . status Bar Color ) ĊĠĠĠĠĠĠĠ Ġsetup Memory Line Information () ĊĠĠĠĠĠĠĠ Ġsetup View StateMachine () ĊĠĠĠĠĠĠĠ Ġsetup Listeners () ĊĠĠĠĠĠĠĠ Ġsetup Retrie vable Error () ĊĠĠĠĠĠĠĠ Ġsetup Toolbar () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġsetup Observable s () ĊĠĠĠĠĠĠĠ Ġsetup Profile () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġview StateMachine . shutdown () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup View StateMachine () Ġ{ ĊĠĠĠĠĠĠĠ Ġview StateMachine . setup Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠinitialState Ġ= Ġstate Loading ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate ( state Loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisible s ( shim mer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg ones ( memory Line Name , Ġedit Memory Line Name , Ġadd Participant , Ġline , Ġquantity Participants , Ġdelete Memory Line , Ġleave Memory Line , Ġerror View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate ( state Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisible s ( memory Line Name , Ġedit Memory Line Name , Ġadd Participant , Ġline , Ġquantity Participants , Ġdelete Memory Line , Ġleave Memory Line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg ones ( shim mer , Ġerror View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Enter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleave Memory Line . isVisible Ġ= ĠBuild Config . SHOW _ LEAVE _ MEMORY _ LINE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Memory Line Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate ( state Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisible s ( error View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg ones ( shim mer , Ġmemory Line Name , Ġedit Memory Line Name , Ġadd Participant , Ġline , Ġquantity Participants , Ġdelete Memory Line , Ġleave Memory Line ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Profile () Ġ{ ĊĠĠĠĠĠĠĠ Ġmemory Line Configuration ViewModel . profile (). observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremember Toolbar . load Avatar ( it . photo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremember Toolbar . load Avatar ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġremember Toolbar . set Avatar Visibility ( true ) ĊĠĠĠĠĠĠĠ Ġremember Toolbar . setOnClickListener Back Icon Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate Up () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġremember Toolbar . setOnClickListener Avatar Icon Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( require Context (). to Profile ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Retrie vable Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġerror View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Observable s () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Memory Line Information () Ġ{ ĊĠĠĠĠĠĠĠ Ġmemory Line Configuration ViewModel . set Memory Line Information ( nav Args . memory Line Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Memory Line Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġmemory Line Configuration ViewModel . memory Line Base Information . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ!= Ġnull ) Ġmemory Line Name . text Ġ= Ġit . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Memory Line . isVisible Ġ= Ġit . owner Id Ġ== Ġmemory Line Configuration ViewModel . userId () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġquantity Participants . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMemory Line Configuration Fragment Directions . action Memory Line Configuration Fragment To Memory Line Participants Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmemory Line Configuration ViewModel . id Memory Line ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadd Participant . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMemory Line Configuration Fragment Directions . action Memory Line Configuration Fragment To Memory Line Add Participant Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmemory Line Configuration ViewModel . id Memory Line ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġedit Memory Line Name . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Bottom Sheet Dialog . Builder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Negative Button Ġ{ Ġ_, Ġcustom Bottom Sheet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Bottom Sheet . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle ( R . string . app _ change _ memory _ line _ name _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Input Hint ( R . string . app _ change _ memory _ line _ name _ hint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Positive ButtonText ( R . string . app _ change _ memory _ line _ name _ positive _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Negative ButtonText ( R . string . app _ change _ memory _ line _ name _ negative _ button ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset DefaultValue Input ( memory Line Configuration ViewModel . name Memory Line ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Positive Button Ġ{ Ġbutton , Ġcustom Bottom Sheet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( memory Line Configuration ViewModel . name Memory Line Ġ== Ġcustom Bottom Sheet . input Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error ( R . string . app _ memory _ line _ name _ equal , Ġroot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ onClick Positive Button ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( custom Bottom Sheet . input Value . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error ( R . string . app _ memory _ line _ name _ empty , Ġroot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ onClick Positive Button ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmemory Line Configuration ViewModel . update Memory Line Name ( custom Bottom Sheet . input Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmemory Line Configuration ViewModel . setName Memory Line ( custom Bottom Sheet . input Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Success ( R . string . app _ memory _ line _ name _ success , Ġroot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Bottom Sheet . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Loading Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . on Loading ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . on Loading ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error ( R . string . app _ memory _ line _ name _ error , Ġroot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show ( parent FragmentManager ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġleave Memory Line . setOnClickListener Ġ{} ĊĊĠĠĠĠĠĠĠ Ġdelete Memory Line . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Bottom Sheet Dialog . Builder (). apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Negative Button Ġ{ Ġbutton , Ġcustom Bottom Sheet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmemory Line Configuration ViewModel . delete Memory Line (). observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Success ( R . string . app _ memory _ line _ delete _ success , Ġroot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( require Context (). to Home ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Bottom Sheet . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Loading Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . on Loading ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . on Loading ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error ( R . string . app _ memory _ line _ delete _ error , Ġroot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle ( R . string . app _ delete _ memory _ line _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Message ( R . string . app _ delete _ memory _ line _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Positive ButtonText ( R . string . app _ delete _ memory _ line _ positive _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Negative ButtonText ( R . string . app _ delete _ memory _ line _ negative _ button ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Positive Button Ġ{ Ġ_, Ġcustom Bottom Sheet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Bottom Sheet . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show ( parent FragmentManager ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Observable s () Ġ{ ĊĠĠĠĠĠĠĠ Ġmemory Line Configuration ViewModel . participants () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquantity Participants . setText ( getString ( R . string . app _ quantity _ participants , Ġit . results . count ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview StateMachine . change State ( state Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Loading Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview StateMachine . change State ( state Loading ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview StateMachine . change State ( state Error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ