/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠDie go ĠFig uer ed o Ġdo ĠN asc imento . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġbr . com . die gon asc imento . k oin presentation . persistence . repository Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġbr . com . die gon asc imento . k oin presentation . model . Result Fil ms Ċ import Ġbr . com . die gon asc imento . k oin presentation . network . Request ResultCode Ċ import Ġbr . com . die gon asc imento . k oin presentation . network . Request Result Value Ċ import Ġbr . com . die gon asc imento . k oin presentation . network . star w ars . Star W ars Client Ċ import Ġbr . com . die gon asc imento . k oin presentation . persistence . dao . Fil ms Dao Ċ import Ġjava . util . concurrent . Executor ĊĊ Ċ class ĠFil ms Repository ( private Ġvar Ġstar War Api : ĠStar W ars Client , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġfil ms Dao : ĠFil ms Dao , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġexecutor : ĠExecutor ) Ġ: ĠBase Repository (), ĠFil ms Repository Contract Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Fil ms (): ĠLive Data < Request Result Value < Result Fil ms >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠMutable LiveData < Request Result Value < Result Fil ms >>() ĊĊĠĠĠĠĠĠĠ Ġexecutor . execute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Request ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresponse Ġ= Ġstar War Api . get Api (). get Fil ms (). execute () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest ResultCode Ġ= ĠRequest ResultCode . valueOf ( response . code ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠRequest Result Value ( response . body (), Ġrequest ResultCode ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfil ms Dao . delete Fil ms () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ()?. results ?. forEach Ġ{ Ġfil ms Dao . insert Film ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . post Value ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . post Value ( get Fil ms Data Base ( response . code ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġdata . post Value ( get Fil ms Data Base ()) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdata ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Fil ms Data Base ( errorCode : ĠInt Ġ= Ġ 9 9 9 ): ĠRequest Result Value < Result Fil ms > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Fil ms Ġ= ĠResult Fil ms () ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠRequest Result Value ( result Fil ms , ĠRequest ResultCode . valueOf ( errorCode )) ĊĠĠĠĠĠĠĠ Ġresult Fil ms . results Ġ= Ġfil ms Dao . get Fil ms () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ }