/** Ċ Ġ* ĠSPDX - License - Identifier : ĠI SC Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 4 - 2 0 1 9 ĠBit mark . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġan ĠI SC Ċ Ġ* Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ package Ġcom . bit mark . standard mobile . util . li ved ata Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġio . reactivex .* Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠRx LiveData Transformer Ġ@ Inject Ġconstructor () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Rx LiveData Transformer " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġmaybe ( source : ĠMaybe < T >): ĠLive Data < Resource < T >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠMutable LiveData < Resource < T >>() ĊĠĠĠĠĠĠĠ Ġsubscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . observe On ( Android Schedulers . main Thread ()). do On Subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . loading ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe ({ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . success ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . error ( throwable , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġsingle ( source : ĠSingle < T >): ĠLive Data < Resource < T >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠMutable LiveData < Resource < T >>() ĊĠĠĠĠĠĠĠ Ġsubscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . observe On ( Android Schedulers . main Thread ()). do On Subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . loading ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe Ġ{ Ġdata , Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġthrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . error ( throwable , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . success ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcomplet able ( source : ĠComp letable ): ĠLive Data < Resource < Any >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠMutable LiveData < Resource < Any >>() ĊĠĠĠĠĠĠĠ Ġsubscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . observe On ( Android Schedulers . main Thread ()). do On Subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . loading ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . error ( throwable , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġobservable ( source : ĠObservable < T >): ĠLive Data < Resource < T >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠMutable LiveData < Resource < T >>() ĊĠĠĠĠĠĠĠ Ġsubscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . observe On ( Android Schedulers . main Thread ()). do On Subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . loading ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe ({ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . success ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . error ( throwable , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġflow able ( source : ĠFlow able < T >): ĠLive Data < Resource < T >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠMutable LiveData < Resource < T >>() ĊĠĠĠĠĠĠĠ Ġsubscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . observe On ( Android Schedulers . main Thread ()). do On Subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . loading ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe ({ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . success ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . error ( throwable , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠResource . success ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubscribe ( dis posable : ĠDis posable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( dis posable ) ĊĠĠĠ Ġ} Ċ }