package Ġio . github . d roid ka igi . conf sched 2 0 2 0 . staff . ui . view model Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . as LiveData Ċ import Ġandroidx . lifecycle . live Data Ċ import Ġio . github . d roid ka igi . conf sched 2 0 2 0 . ext . combine Ċ import Ġio . github . d roid ka igi . conf sched 2 0 2 0 . ext . to App Error Ċ import Ġio . github . d roid ka igi . conf sched 2 0 2 0 . ext . to Loading State Ċ import Ġio . github . d roid ka igi . conf sched 2 0 2 0 . model . App Error Ċ import Ġio . github . d roid ka igi . conf sched 2 0 2 0 . model . Load State Ċ import Ġio . github . d roid ka igi . conf sched 2 0 2 0 . model . Staff Contents Ċ import Ġio . github . d roid ka igi . conf sched 2 0 2 0 . model . repository . Staff Repository Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠStaff s ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġstaff Repository : ĠStaff Repository Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġdata Ġclass ĠUi Model ( ĊĠĠĠĠĠĠĠ Ġval ĠisLoading : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġerror : ĠApp Error ?, ĊĠĠĠĠĠĠĠ Ġval Ġstaff Contents : ĠStaff Contents ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠEMPTY Ġ= ĠUi Model ( false , Ġnull , ĠStaff Contents . EMPTY ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġstaff Contents Load State : ĠLive Data < Load State < Staff Contents >> Ġ= Ġlive Data Ġ{ ĊĠĠĠĠĠĠĠ Ġemit Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Repository . staff s () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Loading State () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as LiveData () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġstaff Repository . refresh () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġui Model : ĠLive Data < Ui Model > Ġ= Ġcombine ( ĊĠĠĠĠĠĠĠ Ġinitial Value Ġ= ĠUi Model . EMPTY , ĊĠĠĠĠĠĠĠ Ġlive Data 1 Ġ= Ġstaff Contents Load State ĊĠĠĠ Ġ) Ġ{ Ġ_, Ġload State Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġstaff Contents Ġ= Ġwhen Ġ( load State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLoad State . Loaded Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload State . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStaff Contents . EMPTY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠUi Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġload State . isLoading , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġload State . getError IfExists (). to App Error (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Contents Ġ= Ġstaff Contents ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ