package Ġcom . pet it pre . easy be lo te . ui ĊĊ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġcom . google . android . material . chip . Chip Ċ import Ġcom . pet it pre . easy be lo te . R Ċ import Ġcom . pet it pre . easy be lo te . databinding . Fragment Game Round Binding Ċ import Ġcom . pet it pre . easy be lo te . easy Be lo te Ċ import Ġcom . pet it pre . easy be lo te . model . Declaration Ċ import Ġcom . pet it pre . easy be lo te . utils . setOn Done Listener Ċ Ċ class ĠGame Round Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġnav Args < Game Round Fragment Args >(). value ĊĠĠĠĠĠĠĠ Ġval Ġgame Id Ġ= Ġargs . game Id ĊĠĠĠĠĠĠĠ Ġval Ġround Id Ġ= Ġargs . round Id ĊĠĠĠĠĠĠĠ Ġval Ġb idding Ġ= Ġargs . b idding ĊĊĠĠĠĠĠĠĠ Ġval Ġplaying ViewModel : ĠGame Round ViewModel Ġ= ĠViewModel Providers ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewModel Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame Round ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (). easy Be lo te . game Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġround Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb idding ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( Game Round ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠData Binding Util . inflate < Fragment Game Round Binding >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , ĠR . layout . fragment _ game _ round , Ġcontainer , Ġfalse ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġplaying ViewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġview Lifecycle Owner ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose . setOnClickListener Ġ{ Ġit . find Nav Controller (). navigate Up () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate . setOnClickListener Ġ{ Ġplaying ViewModel . update Scores Ġ{ Ġit . find Nav Controller (). navigate Up () Ġ} Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Score . setOn Done Listener Ġ{ Ġplaying ViewModel . set Team Score ( true , Ġit . text . toString ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġother Score . setOn Done Listener ({ Ġplaying ViewModel . set Team Score ( false , Ġit . text . toString ()) Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġcreate Chip ( parent : ĠViewGroup , Ġteam : ĠBoolean , Ġdeclaration : ĠLive Data < Available Declaration >): ĠCh ip Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchip Ġ= Ġ( in flater . inflate ( R . layout . declaration , Ġparent , Ġfalse ) Ġas ĠCh ip ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchip . setOn Checked ChangeListener Ġ{ Ġbutton View , Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplaying ViewModel . set Declaration ( team , Ġbutton View . tag Ġas ĠDeclaration , Ġis Checked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeclaration . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġd Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchip . setText ( d . declaration . text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchip . tag Ġ= Ġd . declaration ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . addView ( chip ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġchip ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaying ViewModel . team 1 Declaration . forEach Ġ{ Ġdeclaration Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Chip ( my Declarations , Ġtrue , Ġdeclaration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaying ViewModel . team 2 Declaration . forEach Ġ{ Ġdeclaration Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Chip ( other Declarations , Ġfalse , Ġdeclaration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} Ċ }