package Ġcom . cc or rad s . kotlin fun . network Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . cc or rad s . kotlin fun . Main App Ċ import Ġcom . cc or rad s . kotlin fun . events . Abstract Server Event Ċ import Ġcom . cc or rad s . kotlin fun . events . Me als Available Event Ċ import Ġcom . cc or rad s . kotlin fun . models . Me al Prep Ċ import Ġcom . cc or rad s . kotlin fun . models . Parent Model Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġjava . util .* Ċ Ċ class ĠMe al Prep Backend Service Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG : ĠString Ġ= ĠMe al Prep Backend Service :: class . java . simple Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsend Me al ToServer ( meal Prep : ĠMe al Prep ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMain App . component . get Backend Service (). send Me als ( Collections . singletonList ( meal Prep )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme al Prep . need Sync Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMain App . component . get Me al Db Helper (). save Me al Prep ( meal Prep ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( Me als Available Event ( Abstract Server Event . CALL _ SUCCESS FUL )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( Me als Available Event ( Abstract Server Event . CALL _ FAILED )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerr Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġerr . message , Ġerr ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( Me als Available Event ( Abstract Server Event . CALL _ FAILED )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Me als From Server () Ġ{ ĊĠĠĠĠĠĠĠ ĠMain App . component . get Backend Service (). get Me als () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Me als ( me als Ġ= Ġresponse . body () Ġas ? ĠList < Parent Model >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( Me als Available Event ( Abstract Server Event . CALL _ SUCCESS FUL )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( Me als Available Event ( Abstract Server Event . CALL _ FAILED )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerr Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġerr . message , Ġerr ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( Me als Available Event ( Abstract Server Event . CALL _ FAILED )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Me als ( me als : ĠList < Parent Model > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( me als Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( meal : ĠParent Model Ġin Ġme als ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġme al . meal Prep . should Sync Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMain App . component . get Me al Db Helper (). save Me al Prep ( meal . meal Prep ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }