package Ġcom . te j pr at ap sing h . firestore offline first . firestore Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . google . firebase . firestore . Document Reference Ċ import Ġcom . google . firebase . firestore . Firebase Fire store Ċ import Ġcom . google . firebase . firestore . k tx . firestore Settings Ċ import Ġcom . te j pr at ap sing h . firestore offline first . database . Fire store Room Manager Ċ import Ġcom . te j pr at ap sing h . firestore offline first . database . table . Fire store Local Settings Ċ import Ġcom . te j pr at ap sing h . firestore offline first . database . table . Fire store Sync Master Ċ import Ġcom . te j pr at ap sing h . firestore offline first . database . table . Fire store Sync Tracker Ċ import Ġcom . te j pr at ap sing h . firestore offline first . extensions . getFirst OrNull Ċ import Ġcom . te j pr at ap sing h . firestore offline first . interfaces . Firebase Offline Document Ċ import Ġcom . te j pr at ap sing h . firestore offline first . utilities . Utils Ċ import Ġjava . util .* Ċ Ċ open Ġclass ĠFire store Offline Manager Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Fire store Sync Manager " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠFire store Offline Manager ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠFire store Offline Manager Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( instance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( Fire store Offline Manager :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ= ĠFire store Offline Manager () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġfire store Local Settings : ĠFire store Local Settings ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġfires ore Room Manager : ĠFire store Room Manager ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġfirebase UserId : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġfire store : ĠFirebase Fire store ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitial ise ĠFirebase ĠOff line ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġapplication Context Ġapplication Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġfire store Ġcurrent Ġfire store Ġinstance ĊĠĠĠĠ Ġ* Ġ@ param Ġfirebase UserId ĠUser ĠId Ġfrom ĠFirebase ĠAuth ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinitialise ( ĊĠĠĠĠĠĠĠ Ġapplication Context : ĠContext , ĊĠĠĠĠĠĠĠ Ġfire store : ĠFirebase Fire store , ĊĠĠĠĠĠĠĠ Ġfirebase UserId : ĠString ĊĠĠĠ Ġ): ĠFire store Offline Manager Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= Ġfire store Settings Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Persistence Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfire store . firestore Settings Ġ= Ġsettings ĊĠĠĠĠĠĠĠ Ġthis . firestore Ġ= Ġfire store ĊĊĠĠĠĠĠĠĠ Ġthis . firebase UserId Ġ= Ġfirebase UserId ĊĊĠĠĠĠĠĠĠ Ġfires ore Room Manager Ġ= ĠFire store Room Manager . getInstance ( application Context ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfire store Local Settings Dao : ĠFire store Local Settings . DataAccess Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfires ore Room Manager !!. firestore Local Settings Dao () ĊĠĠĠĠĠĠĠ Ġif Ġ( firestore Local Settings Dao . getAll Local Settings (). isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Local Settings Ġ= Ġfire store Local Settings Dao . getAll Local Settings ()[ 0 ] ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreate Ġsettings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Local Settings Ġ= ĠFire store Local Settings ( 1 , ĠUUID . randomUUID (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Local Settings Dao . insert ( firestore Local Settings !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAfter Ġa Ġrestore , Ġlet Ġthis Ġlibrary Ġknow Ġtill Ġwhere Ġyou Ġhave Ġrestored ĠData ĊĠĠĠĠ Ġ* ĠCall Ġthis Ġfunction Ġfor Ġevery Ġtable ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcollection Name Ġtable / collection ĠName ĊĠĠĠĠ Ġ* Ġ@ param Ġdownloaded T ill Ġtill Ġwhich Ġpoint Ġyou Ġhave Ġrestored Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinitialise Sync Master ( ĊĠĠĠĠĠĠĠ Ġcollection Name : ĠString , ĊĠĠĠĠĠĠĠ Ġdownloaded T ill : ĠLong ĊĠĠĠ Ġ): ĠFire store Offline Manager Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Fire store Initial ised () ĊĠĠĠĠĠĠĠ Ġvar Ġfire store Sync Master : ĠFire store Sync Master ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfires ore Room Manager !!. firestore Sync Master Dao () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Sync Master By Collection Name ( collection Name Ġ= Ġcollection Name ). getFirst OrNull () ĊĊĠĠĠĠĠĠĠ Ġvar Ġis Create : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( firestore Sync Master Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Master Ġ= ĠFire store Sync Master ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollection Name Ġ= Ġcollection Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownloaded T ill Ġ= Ġdownloaded T ill ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Create Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( firestore Sync Master . downloaded T ill Ġ< Ġdownloaded T ill ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġhave Ġolder Ġdownloaded Ġtill , Ġjust Ġbump Ġit Ġup ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Master . downloaded T ill Ġ= Ġdownloaded T ill ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Create ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfires ore Room Manager !!. firestore Sync Master Dao (). insert ( firestore Sync Master ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfires ore Room Manager !!. firestore Sync Master Dao (). update ( firestore Sync Master ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġcom . te j pr at ap sing h . firestore offline first . firestore . Fire store Offline Manager . initial ise Sync Master ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlist Ġof Ġsync Ġmaster Ġto Ġbe Ġinitial ised ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinitialise Sync M asters ( sync Master List : ĠList < Fire store Sync Master >): ĠFire store Offline Manager Ġ{ ĊĠĠĠĠĠĠĠ Ġsync Master List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialise Sync Master ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollection Name Ġ= Ġit . collection Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownloaded T ill Ġ= Ġit . downloaded T ill ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun Ġcheck Fire store Initial ised () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . firestore Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Fire store Ġnot Ġinitial ised : Ġcall Ġinitialise ( Firebase Fire store ) Ġbefore Ġusing Ġany Ġother Ġfunction ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġdata Ġto Ġbe Ġsynced Ġwith Ġfire store ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcollection Name Ġtable / collection ĠName ĊĠĠĠĠ Ġ* Ġ@ param Ġcustom Fire store Id ĠCustom Ġfire store Id , Ġif Ġnull Ġthen Ġid Ġis Ġrandomly Ġgenerated Ġby Ġfire store ĊĠĠĠĠ Ġ* Ġ@ param Ġdocument To Save Ġdata Ġto Ġbe Ġsaved , Ġmust Ġimplement ĠFirebase Offline Document Ġinterface ĊĠĠĠĠ Ġ* Ġ@ see Ġcom . te j pr at ap sing h . firestore offline first . interfaces . Firebase Offline Document ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun Ġ< T Ġ: ĠFirebase Offline Document > Ġadd Data ( ĊĠĠĠĠĠĠĠ Ġcollection Name : ĠString , ĊĠĠĠĠĠĠĠ Ġcustom Fire store Id : ĠString ?, ĊĠĠĠĠĠĠĠ Ġdocument To Save : ĠT ĊĠĠĠ Ġ): ĠFire store Sync Tracker Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Fire store Initial ised () ĊĊĠĠĠĠĠĠĠ Ġval Ġdocument Reference : ĠDocument Reference Ġ= Ġfire store !!. collection ( collection Name ). document () ĊĠĠĠĠĠĠĠ Ġval Ġfire store Id : ĠString Ġ= Ġcustom Fire store Id Ġ?: Ġdocument Reference . id ĊĊĠĠĠĠĠĠĠ Ġval Ġcreated On : ĠLong Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġupdated On : ĠLong Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġupdated By : ĠString Ġ= Ġfire store Local Settings !!. device Installation Id ĊĠĠĠĠĠĠĠ Ġval Ġdata : ĠString Ġ= ĠUtils . getMap ToJson ( document To Save . firestore Document Representation ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġfire store Sync Tracker : ĠFire store Sync Tracker Ġ= ĠFire store Sync Tracker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Id Ġ= Ġfire store Id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġfirebase UserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollection Name Ġ= Ġcollection Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreated On Ġ= Ġcreated On , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdated On Ġ= Ġupdated On , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdated By Ġ= Ġupdated By , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdated Loc ally Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeleted Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġfires ore Room Manager !!. firestore Sync Tracker Dao (). insert ( firestore Sync Tracker ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfire store Sync Tracker ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠData Ġto Ġbe Ġupdated Ġand Ġthen Ġsynced Ġwith Ġfire store ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcollection Name Ġtable / collection ĠName ĊĠĠĠĠ Ġ* Ġ@ param Ġfire store Id Ġfire store Id Ġto Ġupdate ĊĠĠĠĠ Ġ* Ġ@ param Ġdocument To Save Ġdata Ġto Ġbe Ġsaved , Ġmust Ġimplement ĠFirebase Offline Document Ġinterface ĊĠĠĠĠ Ġ* Ġ@ see Ġcom . te j pr at ap sing h . firestore offline first . interfaces . Firebase Offline Document ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun Ġ< T Ġ: ĠFirebase Offline Document > Ġupdate Data ( ĊĠĠĠĠĠĠĠ Ġcollection Name : ĠString , ĊĠĠĠĠĠĠĠ Ġfire store Id : ĠString , ĊĠĠĠĠĠĠĠ Ġdocument To Save : ĠT ĊĠĠĠ Ġ): ĠFire store Sync Tracker Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Fire store Initial ised () ĊĊĠĠĠĠĠĠĠ Ġval Ġcreated On : ĠLong Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġupdated On : ĠLong Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġupdated By : ĠString Ġ= Ġfire store Local Settings !!. device Installation Id ĊĠĠĠĠĠĠĠ Ġval Ġdata : ĠString Ġ= ĠUtils . getMap ToJson ( document To Save . firestore Document Representation ()) ĊĊĠĠĠĠĠĠĠ Ġvar Ġfire store Sync Tracker : ĠFire store Sync Tracker ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfires ore Room Manager !!. firestore Sync Tracker Dao () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Sync Tracker ById ( collection Name Ġ= Ġcollection Name , Ġfire store Id Ġ= Ġfire store Id ). getFirst OrNull () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( firestore Sync Tracker Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġis Ġnew Ġdata , Ġcreate Ġnew Ġone ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Tracker Ġ= ĠFire store Sync Tracker ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Id Ġ= Ġfire store Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġfirebase UserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollection Name Ġ= Ġcollection Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreated On Ġ= Ġcreated On , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdated On Ġ= Ġupdated On , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdated By Ġ= Ġupdated By , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdated Loc ally Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeleted Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfires ore Room Manager !!. firestore Sync Tracker Dao (). insert ( firestore Sync Tracker ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġis Ġan Ġold Ġdata , ĠUpdated Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Tracker . updated On Ġ= Ġupdated On ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Tracker . updated By Ġ= Ġupdated By ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Tracker . updated Loc ally Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Tracker . data Ġ= Ġdata ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfires ore Room Manager !!. firestore Sync Tracker Dao (). update ( firestore Sync Tracker ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfire store Sync Tracker ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠData Ġto Ġbe Ġdeleted Ġand Ġsynced Ġwith Ġfire store Ġto Ġbe Ġdeleted Ġon Ġother Ġdevices ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcollection Name Ġtable / collection ĠName ĊĠĠĠĠ Ġ* Ġ@ param Ġfire store Id Ġfire store Id Ġto Ġupdate ĊĠĠĠĠ Ġ* Ġ@ param Ġdocument To Save Ġdata Ġto Ġbe Ġsaved , Ġmust Ġimplement ĠFirebase Offline Document Ġinterface ĊĠĠĠĠ Ġ* Ġ@ see Ġcom . te j pr at ap sing h . firestore offline first . interfaces . Firebase Offline Document ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun Ġdelete Data ( ĊĠĠĠĠĠĠĠ Ġcollection Name : ĠString , ĊĠĠĠĠĠĠĠ Ġfire store Id : ĠString ĊĠĠĠ Ġ): ĠFire store Sync Tracker Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Fire store Initial ised () ĊĊĠĠĠĠĠĠĠ Ġval Ġcreated On : ĠLong Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġupdated On : ĠLong Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġupdated By : ĠString Ġ= Ġfire store Local Settings !!. device Installation Id ĊĊĠĠĠĠĠĠĠ Ġvar Ġfire store Sync Tracker : ĠFire store Sync Tracker ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfires ore Room Manager !!. firestore Sync Tracker Dao () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Sync Tracker ById ( collection Name Ġ= Ġcollection Name , Ġfire store Id Ġ= Ġfire store Id ). getFirst OrNull () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( firestore Sync Tracker Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġis Ġnew Ġdata , Ġcreate Ġnew Ġone ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Tracker Ġ= ĠFire store Sync Tracker ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Id Ġ= Ġfire store Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġfirebase UserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollection Name Ġ= Ġcollection Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreated On Ġ= Ġcreated On , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdated On Ġ= Ġupdated On , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdated By Ġ= Ġupdated By , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdated Loc ally Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeleted Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfires ore Room Manager !!. firestore Sync Tracker Dao (). insert ( firestore Sync Tracker ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġis Ġan Ġold Ġdata , ĠUpdated Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Tracker . updated On Ġ= Ġupdated On ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Tracker . updated By Ġ= Ġupdated By ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Tracker . updated Loc ally Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Tracker . deleted Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire store Sync Tracker . data Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfires ore Room Manager !!. firestore Sync Tracker Dao (). update ( firestore Sync Tracker ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfire store Sync Tracker ĊĠĠĠ Ġ} Ċ }