package Ġco . net guru . android . chat and roll . data . firebase Ċ Ċ import Ġco . net guru . android . chat and roll . app . App Ċ import Ġcom . google . firebase . database . Firebase Database Ċ import Ġio . reactivex . Comp letable Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġy an - c _ 0 0 0 Ġon Ġ 1 1 . 0 2 . 2 0 1 8 . Ċ Ġ*/ Ċ @ Singleton Ċ class ĠFirebase New Room Ġ@ Inject Ġconstructor ( private Ġval Ġfirebase Database : ĠFirebase Database ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPH ONE _ ROOM Ġ= Ġ" Phone _ room /" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠR OO MS Ġ= Ġ" Rooms " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdevice Online Path ( device Uuid : ĠString ) Ġ= ĠPH ONE _ ROOM . plus ( device Uuid ) ĊĠĠĠ Ġprivate Ġfun ĠR OO MS Path ( device Uuid : ĠString ) Ġ= ĠR OO MS ĊĊĠĠĠ Ġfun Ġset Online And Retrieve Random Device ( New Phone : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġfirebase Online Reference Ġ= Ġfirebase Database . getReference ( device Online Path ( App . THIS _ DEVICE _ UUID )) ĊĠĠĠĠĠĠĠ Ġwith ( firebase Online Reference ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetValue ( App . THIS _ DEVICE _ UUID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfirebase Online Reference Ġ= Ġfirebase Database . getReference ( device Online Path ( New Phone )) ĊĠĠĠĠĠĠĠ Ġwith ( firebase Online Reference ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetValue ( App . THIS _ DEVICE _ UUID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfirebase Online Reference Ġ= Ġfirebase Database . getReference ( RO O MS ) ĊĠĠĠĠĠĠĠ Ġwith ( firebase Online Reference ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetValue ( App . THIS _ DEVICE _ UUID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisconnect (): ĠComp letable Ġ= ĠComp letable . from Action Ġ{ ĊĠĠĠĠĠĠĠ Ġfirebase Database . go Offline () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconnect (): ĠComp letable Ġ= ĠComp letable . from Action Ġ{ ĊĠĠĠĠĠĠĠ Ġfirebase Database . go Online () ĊĠĠĠ Ġ} Ċ }