package Ġorg . simple . clin ic . help Ċ Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Single Ċ import Ġorg . simple . clin ic . sync . Model Sync Ċ import Ġorg . simple . clin ic . sync . Sync Config Ċ import Ġjava . io . IOException Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Named Ċ Ċ class ĠHelp Sync Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġsync Api : ĠHelp Api , ĊĠĠĠ Ġprivate Ġval Ġsync Repository : ĠHelp Repository , ĊĠĠĠ Ġ@ Named (" sync _ config _ daily ") Ġprivate Ġval Ġconfig Provider : ĠSingle < Sync Config > Ċ ) Ġ: ĠModel Sync Ġ{ ĊĊĠ Ġoverride Ġfun Ġsync (): ĠComp letable Ġ= ĠComp letable . merge Array Delay Error ( push (), Ġpull ()) ĊĊĠ Ġoverride Ġfun Ġpush (): ĠComp letable Ġ= ĠComp letable . complete () ĊĊĠ Ġoverride Ġfun Ġpull (): ĠComp letable Ġ= ĊĠĠĠĠĠ Ġsync Api ĊĠĠĠĠĠĠĠĠĠ Ġ. help () ĊĠĠĠĠĠĠĠĠĠ Ġ. flatMap Comp letable ( sync Repository :: update Help ) ĊĊĠ Ġoverride Ġfun Ġsync Config () Ġ= Ġconfig Provider ĊĊĠ Ġfun Ġpull With Result (): ĠSingle < Help Pull Result > Ġ{ ĊĠĠĠ Ġreturn Ġpull () ĊĠĠĠĠĠĠĠ Ġ. to Single Default ( Help Pull Result . Success Ġas ĠHelp Pull Result ) ĊĠĠĠĠĠĠĠ Ġ. onError Return Ġ{ Ġcause Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( cause ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠIOException Ġ-> ĠHelp Pull Result . Network Error ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠHelp Pull Result . Other Error ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ