package Ġde . br lo . hop fen . feature . home Ċ Ċ import Ġde . br lo . hop fen . feature . data . Listing Ċ import Ġde . br lo . hop fen . feature . repository . Repository Ċ import Ġio . ash dav ies . rx . r xf ire base . Child Event Ċ import Ġio . ash dav ies . rx . r xf ire base . R xF ire base Database Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Single Ċ import Ġjavax . inject . Inject Ċ Ċ internal Ġclass ĠList ings Repository Ġ@ Inject Ġconstructor ( private Ġval Ġde serial iser : ĠGson Deserial iser < Listing >) Ġ: ĠRepository < String , ĠListing > Ġ{ ĊĊĠ Ġoverride Ġfun Ġget ( key : ĠString ): ĠSingle < Listing > Ġ{ ĊĠĠĠ Ġreturn ĠgetInstance ( CHILD _ LIST INGS , Ġkey ) ĊĠĠĠĠĠĠĠ Ġ. on Single Value Event () ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . getValue < Listing >( Listing :: class . java ) !! Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetAll (): ĠObservable < Listing > Ġ{ ĊĠĠĠ Ġreturn ĠR xF ire base Database . getInstance ( CHILD _ LIST INGS ) ĊĠĠĠĠĠĠĠ Ġ. limit To Last ( QUERY _ LIMIT ) ĊĠĠĠĠĠĠĠ Ġ. orderBy Child ( QUERY _ ORDER ) ĊĠĠĠĠĠĠĠ Ġ. on Child Event ( Child Event . Type . CHILD _ AD DED ) ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġde serial iser . de serial ise ( it . snapshot (), ĠListing :: class . java ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. to Observable () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġput ( value : ĠListing , Ġresolver : Ġ( Listing ) Ġ-> ĠString ): ĠComp letable Ġ{ ĊĠĠĠ Ġreturn ĠgetInstance ( CHILD _ LIST INGS , Ġvalue . uuid ). setValue ( value ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠgetInstance ( var arg Ġargs : ĠCharSequence ): ĠR xF ire base Database Ġ{ ĊĠĠĠ Ġreturn ĠR xF ire base Database . getInstance ( args . join ToString ("/ ")) ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠCH ILD _ LIST INGS Ġ= Ġ" listing " ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠQUERY _ ORDER Ġ= Ġ" created " ĊĠĠĠ Ġprivate Ġconst Ġval ĠQUERY _ LIMIT Ġ= Ġ 1 0 0 ĊĠ Ġ} Ċ } Ċ