package Ġcom . pr asan . app leg ames . repository Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . pr asan . app leg ames . model . Game Response Ċ import Ġcom . pr asan . app leg ames . network . Game Api Ċ import Ġcom . pr asan . app leg ames . persistence . Entry Dao Ċ import Ġkotlinx . coroutines .* Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠMain Repository Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġentry Dao : ĠEntry Dao , ĊĠĠĠ Ġprivate Ġval Ġgame Api : ĠGame Api Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġget Entry List (): ĠLive Data < List < Game Response . Entry >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlive Data Ġ= ĠMutable LiveData < List < Game Response . Entry >>() ĊĠĠĠĠĠĠĠ ĠGlobal Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentry List Ġ= Ġasync ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ async Ġentry Dao . getEntry List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data . post Value ( entry List . await ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( live Data . value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġgame Api . get Feed Response () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data . post Value ( response . body () !!. feed . entry ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġif Ġ(! response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d ( response . message ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlive Data ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlive Data ĊĠĠĠ Ġ} Ċ }