package Ġcom . example . android . polit ical prepared ness . ui _ screens . election Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . example . android . polit ical prepared ness . R Ċ import Ġcom . example . android . polit ical prepared ness . Result Ċ import Ġcom . example . android . polit ical prepared ness . databinding . Fragment E lection Binding Ċ import Ġcom . example . android . polit ical prepared ness . ui _ screens . election . adapter . E lection ListAdapter Ċ import Ġcom . example . android . polit ical prepared ness . ui _ screens . election . adapter . OnClickListener Ċ Ċ class ĠE lection s Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment E lection Binding ĊĊĠĠĠ Ġ// TODO : ĠDeclare ĠViewModel ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠE lection s ViewModel Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠviewModel Factory Ġ= ĠE lection s ViewModel Factory ( require Context ()) ĊĠĠĠĠĠĠĠ ĠViewModel Provider ( this , ĠviewModel Factory ). get ( E lection s ViewModel :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . get Up coming E lection s () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment E lection Binding . inflate ( in flater ) ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġ// TODO : ĠAdd ĠViewModel Ġvalues Ġand Ġcreate ĠViewModel ĊĠĠĠĠĠĠĠ Ġ// TODO : ĠAdd Ġbinding Ġvalues ĊĠĠĠĠĠĠĠ Ġbinding . election s ViewModel Ġ= ĠviewModel ĊĊĠĠĠĠĠĠĠ Ġ// TODO : ĠLink Ġelection s Ġto Ġvot er Ġinfo ĊĊĠĠĠĠĠĠĠ Ġ// TODO : ĠInit iate Ġre cycler Ġadapters ĊĠĠĠĠĠĠĠ ĠsetUp Up coming E lection s RecyclerView ( binding ) ĊĊĠĠĠĠĠĠĠ ĠsetUp Saved E lection s RecyclerView ( binding ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Saved E lection s RecyclerView ( binding : ĠFragment E lection Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsaved E lection s Adapter Ġ= ĠE lection ListAdapter ( OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE lection s Fragment Directions . action E lection s Fragment To V oter Info Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . re cyclerView Saved E lection s . adapter Ġ= Ġsaved E lection s Adapter ĊĊĠĠĠĠĠĠĠ ĠviewModel . saved E lection s . observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Fetching Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Loading ( E lection . Saved ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . saved E lection s Progress . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsaved E lection s Adapter . add Header And Submit List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . header _ saved _ election s ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error ( E lection . Saved ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Up coming E lection s RecyclerView ( binding : ĠFragment E lection Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġupcoming E lection s Adapter Ġ= ĠE lection ListAdapter ( OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE lection s Fragment Directions . action E lection s Fragment To V oter Info Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . re cyclerView Up coming E lection s . adapter Ġ= Ġupcoming E lection s Adapter ĊĊĠĠĠĠĠĠĠ Ġ// TODO : ĠPopulate Ġre cycler Ġadapters ĊĠĠĠĠĠĠĠ ĠviewModel . up coming E lection s . observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Fetching Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Loading ( E lection . Up coming ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . up coming E lection s Progress . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupcoming E lection s Adapter . add Header And Submit List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . header _ up coming _ election s ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . data . election s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error ( E lection . Up coming ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ ĠviewModel . get Saved E lection s () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Loading ( election : ĠE lection ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( election ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠE lection . Up coming Ġ-> Ġbinding . up coming E lection s Progress . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠE lection . Saved Ġ-> Ġbinding . saved E lection s Progress . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Error ( election : ĠE lection ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( election ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠE lection . Up coming Ġ-> Ġbinding . up coming E lection s Progress . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠE lection . Saved Ġ-> Ġbinding . saved E lection s Progress . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Error Ġloading Ġdata ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsealed Ġclass ĠE lection Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠUp coming Ġ: ĠE lection () ĊĠĠĠĠĠĠĠ Ġobject ĠSaved Ġ: ĠE lection () ĊĠĠĠ Ġ} Ċ }