package Ġcom . github . z ch u . bridge ĊĊ Ċ import Ġio . reactivex . rx java 3 . core . Flow able Ċ import Ġio . reactivex . rx java 3 . core . Flow able Subscriber Ċ import Ġio . reactivex . rx java 3 . core . Observable Ċ import Ġio . reactivex . rx java 3 . core . Observer Ċ import Ġio . reactivex . rx java 3 . dis pos ables . Disposable Ċ import Ġorg . reactiv est ream s . Subscription Ċ Ċ class ĠFlow able Bridge < T > Ġ: ĠFlow able Subscriber < T > Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ on Subscribe : Ġ(( s : ĠSubscription ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ onNext : Ġ(( t : ĠT ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ onComplete : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ onError : Ġ(( e : ĠThrowable ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsubscription : ĠSubscription ĊĊĊĠĠĠ Ġfun Ġ_ on Subscribe ( t : Ġ(( s : ĠSubscription ) Ġ-> ĠUnit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ on Subscribe Ġ= Ġt ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ_ onNext ( t : Ġ(( t : ĠT ) Ġ-> ĠUnit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onNext Ġ= Ġt ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ_ onComplete ( t : Ġ(() Ġ-> ĠUnit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onComplete Ġ= Ġt ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ_ onError ( t : Ġ(( e : ĠThrowable ) Ġ-> ĠUnit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onError Ġ= Ġt ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Subscription (): ĠSubscription Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsubscription ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Subscribe ( s : ĠSubscription ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsubscription Ġ= Ġs ĊĠĠĠĠĠĠĠ Ġ_ on Subscribe ?. invoke ( s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Next ( t : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onNext ?. invoke ( t ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onComplete ?. invoke () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onError ?. invoke ( e ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠFlow able < T > ._ subscribe ( func : ĠFlow able Bridge < T >. () Ġ-> ĠUnit ): ĠSubscription Ġ{ ĊĠĠĠ Ġval Ġreal Ġ= ĠFlow able Bridge < T >() ĊĠĠĠ Ġreal . func () ĊĠĠĠ Ġsubscribe ( real ) ĊĠĠĠ Ġreturn Ġreal . get Subscription () Ċ } ĊĊ Ċ class ĠObserver Bridge < T > Ġ: ĠObserver < T > Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ on Subscribe : Ġ(( dis posable : ĠDis posable ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ onNext : Ġ(( t : ĠT ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ onComplete : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ onError : Ġ(( e : ĠThrowable ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdis posable : ĠDis posable ĊĊĠĠĠ Ġfun Ġ_ on Subscribe ( t : Ġ(( dis posable : ĠDis posable ) Ġ-> ĠUnit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ on Subscribe Ġ= Ġt ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ_ onNext ( t : Ġ(( t : ĠT ) Ġ-> ĠUnit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onNext Ġ= Ġt ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ_ onComplete ( t : Ġ(() Ġ-> ĠUnit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onComplete Ġ= Ġt ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ_ onError ( t : Ġ(( e : ĠThrowable ) Ġ-> ĠUnit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onError Ġ= Ġt ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Disposable (): ĠDis posable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdis posable ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Subscribe ( d : ĠDis posable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdis posable Ġ= Ġd ĊĠĠĠĠĠĠĠ Ġ_ on Subscribe ?. invoke ( d ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Next ( t : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onNext ?. invoke ( t ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onComplete ?. invoke () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ onError ?. invoke ( e ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠObservable < T > ._ subscribe ( func : ĠObserver Bridge < T >. () Ġ-> ĠUnit ): ĠDis posable Ġ{ ĊĠĠĠ Ġval Ġreal Ġ= ĠObserver Bridge < T >() ĊĠĠĠ Ġreal . func () ĊĠĠĠ Ġsubscribe ( real ) ĊĠĠĠ Ġreturn Ġreal . get Disposable () Ċ }