package Ġag h . vote 7 . poll Ċ Ċ import Ġag h . vote 7 . R Ċ import Ġag h . vote 7 . utils . Dependency Provider Ċ import Ġag h . vote 7 . utils . get ViewModel Ċ import Ġag h . vote 7 . utils . observe Event Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . navigation . nav Args Ċ import Ġkotlinx . android . synt hetic . main . activity _ poll .* Ċ Ċ class ĠPoll Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġargs Ġby Ġnav Args < Poll Activity Args >() ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠPoll ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvote Button : ĠMenuItem ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ poll ) ĊĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ Ġon Back Pressed () Ġ} ĊĊĠĠĠĠĠĠĠ Ġvote Button Ġ= Ġtoolbar . menu . add (" Vote "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetShow As Action ( MenuItem . SHOW _ AS _ ACTION _ ALWAYS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On MenuItem ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Vote Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġquestion Adapter Ġ= ĠQuestion RecyclerView Adapter ( this ) ĊĠĠĠĠĠĠĠ Ġquestion RecyclerView . adapter Ġ= Ġquestion Adapter ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġget ViewModel Ġ{ ĠDependency Provider . poll ViewModel ( args . poll Id ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . is Vote Button Enabled . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvote Button . isVisible Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . title . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . question ViewModels . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquestion Adapter . questions Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . show Snackbar . observe Event ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġit , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . show Confirmation Modal . observe Event ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( it . content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cancel able ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" OK ") Ġ{ Ġ_, Ġ_ Ġ-> Ġit . on Confirm Clicked () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button (" Cancel ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ ĠviewModel . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ ĠviewModel . on Pause () ĊĠĠĠ Ġ} Ċ } Ċ