package Ġcom . github . mj are mc z uk . polit ical prepared ness . network Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . github . mj are mc z uk . polit ical prepared ness . network . models . Address Ċ import Ġcom . github . mj are mc z uk . polit ical prepared ness . network . models . E lection Ċ import Ġcom . github . mj are mc z uk . polit ical prepared ness . network . models . Represent ative Response Ċ import Ġcom . github . mj are mc z uk . polit ical prepared ness . network . models . State Ċ import Ġcom . github . mj are mc z uk . polit ical prepared ness . repository . E lection DataSource Ċ import Ġcom . github . mj are mc z uk . polit ical prepared ness . repository . Result Ċ import Ġkotlinx . coroutines . Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠNetwork DataSource ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapi Service : ĠC iv ics ApiService , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġio Dispatcher : ĠCor outine Dispatcher , Ċ ) Ġ: ĠE lection DataSource Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ up coming E lection s : ĠMutable LiveData < Result < List < E lection >>> Ġ= ĠMutable LiveData () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget E lection s (): ĠResult < List < E lection >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( io Dispatcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( api Service . get E lection s (). election s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Failure ( ex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ up coming E lection s . post Value ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Details ( election Id : ĠInt , Ġaddress : ĠString ): ĠResult < State ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( io Dispatcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( api Service . get V oter Info ( address , Ġelection Id ). state ?. first ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Failure ( ex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Represent atives ( address : ĠAddress ): ĠResult < Represent ative Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( io Dispatcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( api Service . get Represent atives ( address . to Formatted String ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : Ġjava . lang . Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Failure ( ex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġobserver E lection s (): ĠLive Data < Result < List < E lection >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ_ up coming E lection s ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsave E lection s ( election s : ĠList < E lection >) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġdo Ġnothing ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġmark As Saved ( election : ĠE lection ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġdo Ġnothing ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete All () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġdo Ġnothing ĊĠĠĠ Ġ} Ċ }