package Ġcom . program mer gab ut . sol at ku y . data Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . live Data Ċ import Ġcom . program mer gab ut . sol at ku y . base . Base Repository Ċ import Ġcom . program mer gab ut . sol at ku y . data . local . dao . Ms Ay ah Dao Ċ import Ġcom . program mer gab ut . sol at ku y . data . local . dao . Ms Fav Sur ah Dao Ċ import Ġcom . program mer gab ut . sol at ku y . data . local . dao . Ms Sur ah Dao Ċ import Ġcom . program mer gab ut . sol at ku y . data . local . local entity . Ms Ay ah Ċ import Ġcom . program mer gab ut . sol at ku y . data . local . local entity . Ms Fav Sur ah Ċ import Ġcom . program mer gab ut . sol at ku y . data . local . local entity . Ms Sur ah Ċ import Ġcom . program mer gab ut . sol at ku y . data . remote . ApiResponse Ċ import Ġcom . program mer gab ut . sol at ku y . data . remote . api . All Sur ah Service Ċ import Ġcom . program mer gab ut . sol at ku y . data . remote . api . Read Sur ah Ar Service Ċ import Ġcom . program mer gab ut . sol at ku y . data . remote . api . Read Sur ah En Service Ċ import Ġcom . program mer gab ut . sol at ku y . data . remote . json . q uran all sur ah Json . All Sur ah Response Ċ import Ġcom . program mer gab ut . sol at ku y . data . remote . json . read sur ah Json Ar . Read Sur ah Ar Response Ċ import Ġcom . program mer gab ut . sol at ku y . data . remote . json . read sur ah Json En . Read Sur ah En Response Ċ import Ġcom . program mer gab ut . sol at ku y . util . Context Providers Ċ import Ġcom . program mer gab ut . sol at ku y . util . Resource Ċ import Ġkotlinx . coroutines .* Ċ import Ġjava . util .* Ċ Ċ class ĠFake Q uran Repository Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġms Fav Sur ah Dao : ĠMs Fav Sur ah Dao , ĊĠĠĠ Ġprivate Ġval Ġms Sur ah Dao : ĠMs Sur ah Dao , ĊĠĠĠ Ġprivate Ġval Ġms Ay ah Dao : ĠMs Ay ah Dao , ĊĠĠĠ Ġprivate Ġval Ġread Sur ah En Service : ĠRead Sur ah En Service , ĊĠĠĠ Ġprivate Ġval Ġall Sur ah Service : ĠAll Sur ah Service , ĊĠĠĠ Ġprivate Ġval Ġread Sur ah Ar Service : ĠRead Sur ah Ar Service , ĊĠĠĠ Ġprivate Ġval Ġcontext Providers : ĠContext Providers , Ċ ): Base Repository (), ĠQ uran Repository Ġ{ ĊĊĠĠĠ Ġ/* ĠMs Fav Sur ah Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġobserve List Fav Sur ah () Ġ= Ġms Fav Sur ah Dao . observe Fav Sur ah s () ĊĠĠĠ Ġoverride Ġfun Ġobserve Fav Sur ah By Sur ah ID ( sur ah ID : ĠInt ) Ġ= Ġms Fav Sur ah Dao . observe Fav Sur ah By Sur ah ID ( sur ah ID ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinsert Fav Sur ah ( ms Fav Sur ah : ĠMs Fav Sur ah ) Ġ= Ġms Fav Sur ah Dao . insert Ms Sur ah ( ms Fav Sur ah ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete Fav Sur ah ( ms Fav Sur ah : ĠMs Fav Sur ah ) Ġ= Ġms Fav Sur ah Dao . delete Ms Fav Sur ah ( ms Fav Sur ah ) ĊĊĠĠĠ Ġ/* ĠRemote Ġ*/ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfetch Read Sur ah En ( sur ah ID : ĠInt ): ĠDeferred < Read Sur ah En Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCor outine Scope ( Dispatch ers . IO ). async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġresponse : ĠRead Sur ah En Response ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġexecute ( read Sur ah En Service . fetch Read Sur ah En ( sur ah ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status Ġ= Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( ex : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= ĠRead Sur ah En Response () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status Ġ= Ġ"- 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . message Ġ= Ġex . message . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfetch All Sur ah (): ĠDeferred < All Sur ah Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCor outine Scope ( Dispatch ers . IO ). async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġresponse : ĠAll Sur ah Response ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġexecute ( all Sur ah Service . fetch All Sur ah ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status Ġ= Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( ex : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= ĠAll Sur ah Response () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status Ġ= Ġ"- 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . message Ġ= Ġex . message . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetAll Sur ah (): ĠLive Data < Resource < List < Ms Sur ah >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠNetwork Bound Resource < List < Ms Sur ah >, ĠAll Sur ah Response >( context Providers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġload From DB (): ĠLive Data < List < Ms Sur ah >> Ġ= Ġms Sur ah Dao . get Sur ah s () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġshould Fetch ( data : ĠList < Ms Sur ah >? ): ĠBoolean Ġ= Ġdata Ġ== Ġnull Ġ|| Ġdata . isEmpty () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Call (): ĠLive Data < ApiResponse < All Sur ah Response >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlive Data Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( context Providers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġresponse : ĠAll Sur ah Response ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġexecute ( all Sur ah Service . fetch All Sur ah ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( ApiResponse . success ( response )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= ĠAll Sur ah Response () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . message Ġ= Ġex . message . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( ApiResponse . error ( ex . message . toString (), Ġresponse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsave Call Result ( data : ĠAll Sur ah Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġall Sur ah Ġ= Ġdata . data . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMs Sur ah ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenglish Name Ġ= Ġit . english Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenglish Name LowerCase Ġ= Ġit . english Name Translation . lowercase ( Locale . ROOT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenglish Name Translation Ġ= Ġit . english Name Translation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġit . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ= Ġit . number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnumberOf Ay ah s Ġ= Ġit . numberOf Ay ah s , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre vel ation Type Ġ= Ġit . re vel ation Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġms Sur ah Dao . insert Sur ah s ( all Sur ah ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}. as LiveData () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfetch Read Sur ah Ar ( sur ah ID : ĠInt ): ĠDeferred < Read Sur ah Ar Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCor outine Scope ( Dispatch ers . IO ). async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġresponse Ġ: ĠRead Sur ah Ar Response ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġexecute ( read Sur ah Ar Service . fetch Read Sur ah Ar ( sur ah ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status Ġ= Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( ex : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= ĠRead Sur ah Ar Response () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status Ġ= Ġ"- 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . message Ġ= Ġex . message . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Ay ah By Sur ah ID ( sur ah ID : ĠInt ): ĠLive Data < Resource < List < Ms Ay ah >>> Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} Ċ Ċ }