package Ġnet . ys library . mon ot weet y . base Ċ Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . dis pos ables . Serial Disposable Ċ import Ġio . reactivex . functions . Consumer Ċ Ċ class ĠSkip Until Completed Consumer < T >( val Ġdo On Subscribe : Ġ( T , Ġ() Ġ-> ĠUnit ) Ġ-> ĠUnit ) Ġ: ĠConsumer < T > Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġloading : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġfun Ġaccept ( t : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġloading Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdo On Subscribe ( t ) Ġ{ Ġloading Ġ= Ġfalse Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T > ĠObservable < T >. subscribe When Completed ( do On Subscribe : Ġ( t : ĠT , Ġcompleted : Ġ() Ġ-> ĠUnit ) Ġ-> ĠUnit ): ĠDis posable Ġ{ ĊĠĠĠ Ġreturn Ġsubscribe ( Skip Until Completed Consumer ( do On Subscribe )) Ċ } Ċ Ċ fun ĠDis posable . set To ( dis posable : ĠSerial Disposable ): ĠDis posable Ġ{ ĊĠĠĠ Ġdis posable . set ( this ) ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun Ġ< T > ĠT . to Single (): ĠSingle < T > Ġ= ĠSingle . just ( this ) Ċ