package Ġcom . fro go box . speech boost er . source Ċ Ċ import Ġcom . fro go box . speech boost er . source . model . Favorite Script Ċ import Ġcom . fro go box . speech boost er . source . model . Script Ċ import Ġcom . fro go box . speech boost er . source . model . Video Script Ċ import Ġcom . fro go box . speech boost er . source . local . F ro go Local DataSource Ċ import Ġcom . fro go box . speech boost er . source . remote . F ro go Remote DataSource Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠF ais al ĠA mir Ċ Ġ* ĠF ro go Box ĠInc ĠLicense Ċ Ġ* Ġ================================= ======== Ċ Ġ* ĠSpeech Boost er Ċ Ġ* ĠCopyright Ġ( C ) Ġ 1 8 / 0 8 / 2 0 1 9 . Ċ Ġ* ĠAll Ġrights Ġreserved Ċ Ġ* Ġ-------------------------------- --------- Ċ Ġ* ĠName ĠĠĠĠ Ġ: ĠMu ham mad ĠF ais al ĠA mir Ċ Ġ* ĠE - mail ĠĠ Ġ: Ġfa is alam ir cs @ gmail . com Ċ Ġ* ĠGithub ĠĠ Ġ: Ġgithub . com / am iris back Ċ Ġ* ĠLinked In Ġ: Ġlinked in . com / in / fa is alam ir cs Ċ Ġ* Ġ-------------------------------- --------- Ċ Ġ* ĠF ro go Box ĠSoftware ĠInd ust ries Ċ Ġ* Ġcom . fro go box . speech boost er . source Ċ Ġ* Ċ Ġ*/ Ċ open Ġclass ĠF ro go Data Repository ( private Ġval Ġremote DataSource : ĠF ro go Remote DataSource , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġlocal DataSource : ĠF ro go Local DataSource ) Ġ: ĠF ro go DataSource Ġ{ ĊĊĊĠĠĠ Ġoverride Ġfun Ġsearch Room Favorite ( ĊĠĠĠĠĠĠĠ Ġscript Id : ĠString , ĊĠĠĠĠĠĠĠ Ġcallback : ĠF ro go DataSource . Get Room Data CallBack < List < Favorite Script >> ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlocal DataSource . search Room Favorite ( script Id , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Room Script Fav ( table Id : ĠInt , Ġfavorite : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . update Room Script Fav ( table Id , Ġfavorite ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave Room Favorite Script ( data : ĠF avorite Script ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . save Room Favorite Script ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave Room Video Script ( data : ĠVideo Script ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . save Room Video Script ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Room Favorite Script ( callback : ĠF ro go DataSource . Get Room Data CallBack < List < Favorite Script >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġlocal DataSource . get Room Favorite Script ( callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Room Video Script ( callback : ĠF ro go DataSource . Get Room Data CallBack < List < Video Script >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġlocal DataSource . get Room Video Script ( callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Room Favorite Script ( ĊĠĠĠĠĠĠĠ Ġtable Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġdescription : ĠString , ĊĠĠĠĠĠĠĠ ĠdateTime : ĠString ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . update Room Favorite Script ( table Id , Ġtitle , Ġdescription , ĠdateTime ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Room Video Script ( table Id : ĠInt , Ġurl Video : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . update Room Video Script ( table Id , Ġurl Video ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Room Favorite Script ( table Id : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . delete Room Favorite Script ( table Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Room Favorite Script Id ( script Id : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . delete Room Favorite Script Id ( script Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Room Video Script ( table Id : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . delete Room Video Script ( table Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnu ke Room Favorite Script (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . nu ke Room Favorite Script () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnu ke Room Video Script (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . nu ke Room Video Script () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave Room Script ( data : ĠScript ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . save Room Script ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Room Script ( ĊĠĠĠĠĠĠĠ Ġtable Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġdescription : ĠString , ĊĠĠĠĠĠĠĠ ĠdateTime : ĠString ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . update Room Script ( table Id , Ġtitle , Ġdescription , ĠdateTime ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Room Script ( table Id : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . delete Room Script ( table Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Room Script ( callback : ĠF ro go DataSource . Get Room Data CallBack < List < Script >>) Ġ{ ĊĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . get Room Script ( callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnu ke Room Script (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal DataSource . nu ke Room Script () ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠINSTANCE : ĠF ro go Data Repository ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠReturns Ġthe Ġsingle Ġinstance Ġof Ġthis Ġclass , Ġcreating Ġit Ġif Ġnecessary . ĊĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param ĠF ro go Remote DataSource Ġbackend Ġdata Ġsource ĊĠĠĠĠĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġ[ F ro go Repository ] Ġinstance ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( F ro go Remote DataSource : ĠF ro go Remote DataSource , Ġg its Local DataSource : ĠF ro go Local DataSource ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ?: Ġsynchronized ( F ro go Data Repository :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ?: ĠF ro go Data Repository ( F ro go Remote DataSource , Ġg its Local DataSource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ ĠINSTANCE Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠUsed Ġto Ġforce Ġ[ getInstance ] Ġto Ġcreate Ġa Ġnew Ġinstance ĊĠĠĠĠĠĠĠĠ Ġ* Ġnext Ġtime Ġit 's Ġcalled . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġdestroy Instance () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠĠ Ċ }