package Ġcom . bad oo . reak t ive . observable Ċ Ċ import Ġcom . bad oo . reak t ive . dis posable . Disposable Ċ import Ġcom . bad oo . reak t ive . dis posable . Disposable Wrapper Ċ import Ġcom . bad oo . reak t ive . single . Single Ċ import Ġcom . bad oo . reak t ive . single . Single Emitter Ċ import Ġcom . bad oo . reak t ive . single . single By Emitter Ċ Ċ fun Ġ< T > ĠObservable < T >. first OrDefault ( defaultValue : ĠT ): ĠSingle < T > Ġ= ĊĠĠĠ Ġfirst Or Action Ġ{ Ġemitter Ġ-> ĊĠĠĠĠĠĠĠ Ġemitter . on Success ( defaultValue ) ĊĠĠĠ Ġ} Ċ Ċ fun Ġ< T > ĠObservable < T >. first OrDefault ( defaultValue Supplier : Ġ() Ġ-> ĠT ): ĠSingle < T > Ġ= ĊĠĠĠ Ġfirst Or Action Ġ{ Ġemitter Ġ-> ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Supplier () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onError ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ first Or Action ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also ( emitter :: on Success ) ĊĠĠĠ Ġ} Ċ Ċ internal Ġinline Ġfun Ġ< T > ĠObservable < T >. first Or Action ( cross inline ĠonComplete : Ġ( emitter : ĠSingle Emitter < T >) Ġ-> ĠUnit ): ĠSingle < T > Ġ= ĊĠĠĠ Ġsingle By Emitter Ġ{ Ġemitter Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Wrapper Ġ= ĠDis posable Wrapper () ĊĠĠĠĠĠĠĠ Ġemitter . set Disposable ( dis posable Wrapper ) ĊĊĠĠĠĠĠĠĠ Ġsubscribe Safe ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠObservable Observer < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Subscribe ( dis posable : ĠDis posable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis posable Wrapper . set ( dis posable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Next ( value : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis posable Wrapper . dispose () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . on Success ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonComplete ( emitter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onError ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ}